xkbparse.c revision 6930ead5
16930ead5Smrg/* A Bison parser, made by GNU Bison 3.8.2.  */
2f46a6179Smrg
3c82dfdfbSmrg/* Bison implementation for Yacc-like parsers in C
4f757b1e9Smrg
56930ead5Smrg   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
66930ead5Smrg   Inc.
7f757b1e9Smrg
8c82dfdfbSmrg   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
10c82dfdfbSmrg   the Free Software Foundation, either version 3 of the License, or
11c82dfdfbSmrg   (at your option) any later version.
12f757b1e9Smrg
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.
17f757b1e9Smrg
18690143ccSmrg   You should have received a copy of the GNU General Public License
196930ead5Smrg   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
20f46a6179Smrg
21690143ccSmrg/* As a special exception, you may create a larger work that contains
22690143ccSmrg   part or all of the Bison parser skeleton and distribute that work
23690143ccSmrg   under terms of your choice, so long as that work isn't itself a
24690143ccSmrg   parser generator using the skeleton or a modified version thereof
25690143ccSmrg   as a parser skeleton.  Alternatively, if you modify or redistribute
26690143ccSmrg   the parser skeleton itself, you may (at your option) remove this
27690143ccSmrg   special exception, which will cause the skeleton and the resulting
28690143ccSmrg   Bison output files to be licensed under the GNU General Public
29690143ccSmrg   License without this special exception.
30f757b1e9Smrg
31690143ccSmrg   This special exception was added by the Free Software Foundation in
32690143ccSmrg   version 2.2 of Bison.  */
33f46a6179Smrg
34690143ccSmrg/* C LALR(1) parser skeleton written by Richard Stallman, by
35690143ccSmrg   simplifying the original so-called "semantic" parser.  */
36690143ccSmrg
376930ead5Smrg/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
386930ead5Smrg   especially those whose name start with YY_ or yy_.  They are
396930ead5Smrg   private implementation details that can be changed or removed.  */
406930ead5Smrg
41690143ccSmrg/* All symbols defined below should begin with yy or YY, to avoid
42690143ccSmrg   infringing on user name space.  This should be done even for local
43690143ccSmrg   variables, as they might otherwise be expanded by user macros.
44690143ccSmrg   There are some unavoidable exceptions within include files to
45690143ccSmrg   define necessary library symbols; they are noted "INFRINGES ON
46690143ccSmrg   USER NAME SPACE" below.  */
47690143ccSmrg
486930ead5Smrg/* Identify Bison output, and Bison version.  */
496930ead5Smrg#define YYBISON 30802
50690143ccSmrg
516930ead5Smrg/* Bison version string.  */
526930ead5Smrg#define YYBISON_VERSION "3.8.2"
53690143ccSmrg
54690143ccSmrg/* Skeleton name.  */
55690143ccSmrg#define YYSKELETON_NAME "yacc.c"
56690143ccSmrg
57690143ccSmrg/* Pure parsers.  */
58690143ccSmrg#define YYPURE 0
59690143ccSmrg
60c82dfdfbSmrg/* Push parsers.  */
61c82dfdfbSmrg#define YYPUSH 0
62c82dfdfbSmrg
63c82dfdfbSmrg/* Pull parsers.  */
64c82dfdfbSmrg#define YYPULL 1
65c82dfdfbSmrg
66c82dfdfbSmrg
67c82dfdfbSmrg
68c82dfdfbSmrg
696930ead5Smrg/* First part of user prologue.  */
706930ead5Smrg#line 91 "xkbparse.y"
71c82dfdfbSmrg
72c82dfdfbSmrg#ifdef DEBUG
73c82dfdfbSmrg#define	YYDEBUG 1
74c82dfdfbSmrg#define	DEBUG_VAR parseDebug
756930ead5Smrgunsigned int parseDebug;
766930ead5Smrg#endif
77c82dfdfbSmrg#include "parseutils.h"
78c82dfdfbSmrg#include <X11/keysym.h>
79c82dfdfbSmrg#include <X11/extensions/XKBgeom.h>
80c82dfdfbSmrg#include <stdlib.h>
81c82dfdfbSmrg
82c82dfdfbSmrg
836930ead5Smrg#line 84 "xkbparse.c"
84c82dfdfbSmrg
856930ead5Smrg# ifndef YY_CAST
866930ead5Smrg#  ifdef __cplusplus
876930ead5Smrg#   define YY_CAST(Type, Val) static_cast<Type> (Val)
886930ead5Smrg#   define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
896930ead5Smrg#  else
906930ead5Smrg#   define YY_CAST(Type, Val) ((Type) (Val))
916930ead5Smrg#   define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
926930ead5Smrg#  endif
936930ead5Smrg# endif
94f757b1e9Smrg# ifndef YY_NULLPTR
956930ead5Smrg#  if defined __cplusplus
966930ead5Smrg#   if 201103L <= __cplusplus
976930ead5Smrg#    define YY_NULLPTR nullptr
986930ead5Smrg#   else
996930ead5Smrg#    define YY_NULLPTR 0
1006930ead5Smrg#   endif
101c82dfdfbSmrg#  else
1026930ead5Smrg#   define YY_NULLPTR ((void*)0)
103c82dfdfbSmrg#  endif
104c82dfdfbSmrg# endif
105c82dfdfbSmrg
106f46a6179Smrg
107f757b1e9Smrg/* Debug traces.  */
108c82dfdfbSmrg#ifndef YYDEBUG
109c82dfdfbSmrg# define YYDEBUG 0
110c82dfdfbSmrg#endif
111c82dfdfbSmrg#if YYDEBUG
112c82dfdfbSmrgextern int yydebug;
113c82dfdfbSmrg#endif
114f46a6179Smrg
1156930ead5Smrg/* Token kinds.  */
116690143ccSmrg#ifndef YYTOKENTYPE
117690143ccSmrg# define YYTOKENTYPE
118f757b1e9Smrg  enum yytokentype
119f757b1e9Smrg  {
1206930ead5Smrg    YYEMPTY = -2,
1216930ead5Smrg    END_OF_FILE = 0,               /* END_OF_FILE  */
1226930ead5Smrg    YYerror = 256,                 /* error  */
1236930ead5Smrg    YYUNDEF = 257,                 /* "invalid token"  */
1246930ead5Smrg    ERROR_TOK = 255,               /* ERROR_TOK  */
1256930ead5Smrg    XKB_KEYMAP = 1,                /* XKB_KEYMAP  */
1266930ead5Smrg    XKB_KEYCODES = 2,              /* XKB_KEYCODES  */
1276930ead5Smrg    XKB_TYPES = 3,                 /* XKB_TYPES  */
1286930ead5Smrg    XKB_SYMBOLS = 4,               /* XKB_SYMBOLS  */
1296930ead5Smrg    XKB_COMPATMAP = 5,             /* XKB_COMPATMAP  */
1306930ead5Smrg    XKB_GEOMETRY = 6,              /* XKB_GEOMETRY  */
1316930ead5Smrg    XKB_SEMANTICS = 7,             /* XKB_SEMANTICS  */
1326930ead5Smrg    XKB_LAYOUT = 8,                /* XKB_LAYOUT  */
1336930ead5Smrg    INCLUDE = 10,                  /* INCLUDE  */
1346930ead5Smrg    OVERRIDE = 11,                 /* OVERRIDE  */
1356930ead5Smrg    AUGMENT = 12,                  /* AUGMENT  */
1366930ead5Smrg    REPLACE = 13,                  /* REPLACE  */
1376930ead5Smrg    ALTERNATE = 14,                /* ALTERNATE  */
1386930ead5Smrg    VIRTUAL_MODS = 20,             /* VIRTUAL_MODS  */
1396930ead5Smrg    TYPE = 21,                     /* TYPE  */
1406930ead5Smrg    INTERPRET = 22,                /* INTERPRET  */
1416930ead5Smrg    ACTION_TOK = 23,               /* ACTION_TOK  */
1426930ead5Smrg    KEY = 24,                      /* KEY  */
1436930ead5Smrg    ALIAS = 25,                    /* ALIAS  */
1446930ead5Smrg    GROUP = 26,                    /* GROUP  */
1456930ead5Smrg    MODIFIER_MAP = 27,             /* MODIFIER_MAP  */
1466930ead5Smrg    INDICATOR = 28,                /* INDICATOR  */
1476930ead5Smrg    SHAPE = 29,                    /* SHAPE  */
1486930ead5Smrg    KEYS = 30,                     /* KEYS  */
1496930ead5Smrg    ROW = 31,                      /* ROW  */
1506930ead5Smrg    SECTION = 32,                  /* SECTION  */
1516930ead5Smrg    OVERLAY = 33,                  /* OVERLAY  */
1526930ead5Smrg    TEXT = 34,                     /* TEXT  */
1536930ead5Smrg    OUTLINE = 35,                  /* OUTLINE  */
1546930ead5Smrg    SOLID = 36,                    /* SOLID  */
1556930ead5Smrg    LOGO = 37,                     /* LOGO  */
1566930ead5Smrg    VIRTUAL = 38,                  /* VIRTUAL  */
1576930ead5Smrg    EQUALS = 40,                   /* EQUALS  */
1586930ead5Smrg    PLUS = 41,                     /* PLUS  */
1596930ead5Smrg    MINUS = 42,                    /* MINUS  */
1606930ead5Smrg    DIVIDE = 43,                   /* DIVIDE  */
1616930ead5Smrg    TIMES = 44,                    /* TIMES  */
1626930ead5Smrg    OBRACE = 45,                   /* OBRACE  */
1636930ead5Smrg    CBRACE = 46,                   /* CBRACE  */
1646930ead5Smrg    OPAREN = 47,                   /* OPAREN  */
1656930ead5Smrg    CPAREN = 48,                   /* CPAREN  */
1666930ead5Smrg    OBRACKET = 49,                 /* OBRACKET  */
1676930ead5Smrg    CBRACKET = 50,                 /* CBRACKET  */
1686930ead5Smrg    DOT = 51,                      /* DOT  */
1696930ead5Smrg    COMMA = 52,                    /* COMMA  */
1706930ead5Smrg    SEMI = 53,                     /* SEMI  */
1716930ead5Smrg    EXCLAM = 54,                   /* EXCLAM  */
1726930ead5Smrg    INVERT = 55,                   /* INVERT  */
1736930ead5Smrg    STRING = 60,                   /* STRING  */
1746930ead5Smrg    INTEGER = 61,                  /* INTEGER  */
1756930ead5Smrg    FLOAT = 62,                    /* FLOAT  */
1766930ead5Smrg    IDENT = 63,                    /* IDENT  */
1776930ead5Smrg    KEYNAME = 64,                  /* KEYNAME  */
1786930ead5Smrg    PARTIAL = 70,                  /* PARTIAL  */
1796930ead5Smrg    DEFAULT = 71,                  /* DEFAULT  */
1806930ead5Smrg    HIDDEN = 72,                   /* HIDDEN  */
1816930ead5Smrg    ALPHANUMERIC_KEYS = 73,        /* ALPHANUMERIC_KEYS  */
1826930ead5Smrg    MODIFIER_KEYS = 74,            /* MODIFIER_KEYS  */
1836930ead5Smrg    KEYPAD_KEYS = 75,              /* KEYPAD_KEYS  */
1846930ead5Smrg    FUNCTION_KEYS = 76,            /* FUNCTION_KEYS  */
1856930ead5Smrg    ALTERNATE_GROUP = 77           /* ALTERNATE_GROUP  */
186f757b1e9Smrg  };
1876930ead5Smrg  typedef enum yytokentype yytoken_kind_t;
188690143ccSmrg#endif
1896930ead5Smrg/* Token kinds.  */
1906930ead5Smrg#define YYEMPTY -2
191f46a6179Smrg#define END_OF_FILE 0
1926930ead5Smrg#define YYerror 256
1936930ead5Smrg#define YYUNDEF 257
194f46a6179Smrg#define ERROR_TOK 255
195f46a6179Smrg#define XKB_KEYMAP 1
196f46a6179Smrg#define XKB_KEYCODES 2
197f46a6179Smrg#define XKB_TYPES 3
198f46a6179Smrg#define XKB_SYMBOLS 4
199f46a6179Smrg#define XKB_COMPATMAP 5
200f46a6179Smrg#define XKB_GEOMETRY 6
201f46a6179Smrg#define XKB_SEMANTICS 7
202f46a6179Smrg#define XKB_LAYOUT 8
203f46a6179Smrg#define INCLUDE 10
204f46a6179Smrg#define OVERRIDE 11
205f46a6179Smrg#define AUGMENT 12
206f46a6179Smrg#define REPLACE 13
207f46a6179Smrg#define ALTERNATE 14
208f46a6179Smrg#define VIRTUAL_MODS 20
209f46a6179Smrg#define TYPE 21
210f46a6179Smrg#define INTERPRET 22
211f46a6179Smrg#define ACTION_TOK 23
212f46a6179Smrg#define KEY 24
213f46a6179Smrg#define ALIAS 25
214f46a6179Smrg#define GROUP 26
215f46a6179Smrg#define MODIFIER_MAP 27
216f46a6179Smrg#define INDICATOR 28
217f46a6179Smrg#define SHAPE 29
218f46a6179Smrg#define KEYS 30
219f46a6179Smrg#define ROW 31
220f46a6179Smrg#define SECTION 32
221f46a6179Smrg#define OVERLAY 33
222f46a6179Smrg#define TEXT 34
223f46a6179Smrg#define OUTLINE 35
224f46a6179Smrg#define SOLID 36
225f46a6179Smrg#define LOGO 37
226f46a6179Smrg#define VIRTUAL 38
227f46a6179Smrg#define EQUALS 40
228f46a6179Smrg#define PLUS 41
229f46a6179Smrg#define MINUS 42
230f46a6179Smrg#define DIVIDE 43
231f46a6179Smrg#define TIMES 44
232f46a6179Smrg#define OBRACE 45
233f46a6179Smrg#define CBRACE 46
234f46a6179Smrg#define OPAREN 47
235f46a6179Smrg#define CPAREN 48
236f46a6179Smrg#define OBRACKET 49
237f46a6179Smrg#define CBRACKET 50
238f46a6179Smrg#define DOT 51
239f46a6179Smrg#define COMMA 52
240f46a6179Smrg#define SEMI 53
241f46a6179Smrg#define EXCLAM 54
242f46a6179Smrg#define INVERT 55
243f46a6179Smrg#define STRING 60
244f46a6179Smrg#define INTEGER 61
245f46a6179Smrg#define FLOAT 62
246f46a6179Smrg#define IDENT 63
247f46a6179Smrg#define KEYNAME 64
248f46a6179Smrg#define PARTIAL 70
249f46a6179Smrg#define DEFAULT 71
250f46a6179Smrg#define HIDDEN 72
251f46a6179Smrg#define ALPHANUMERIC_KEYS 73
252f46a6179Smrg#define MODIFIER_KEYS 74
253f46a6179Smrg#define KEYPAD_KEYS 75
254f46a6179Smrg#define FUNCTION_KEYS 76
255f46a6179Smrg#define ALTERNATE_GROUP 77
256690143ccSmrg
257f757b1e9Smrg/* Value type.  */
258690143ccSmrg#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
259f757b1e9Smrgunion YYSTYPE
2601d8c7986Smrg{
2616930ead5Smrg#line 109 "xkbparse.y"
262c82dfdfbSmrg
263690143ccSmrg	int		 ival;
264690143ccSmrg	unsigned	 uval;
265690143ccSmrg	char		*str;
266690143ccSmrg	Atom	 	sval;
267690143ccSmrg	ParseCommon	*any;
268690143ccSmrg	ExprDef		*expr;
269690143ccSmrg	VarDef		*var;
270690143ccSmrg	VModDef		*vmod;
271690143ccSmrg	InterpDef	*interp;
272690143ccSmrg	KeyTypeDef	*keyType;
273690143ccSmrg	SymbolsDef	*syms;
274690143ccSmrg	ModMapDef	*modMask;
275690143ccSmrg	GroupCompatDef	*groupCompat;
276690143ccSmrg	IndicatorMapDef	*ledMap;
277690143ccSmrg	IndicatorNameDef *ledName;
278690143ccSmrg	KeycodeDef	*keyName;
279690143ccSmrg	KeyAliasDef	*keyAlias;
280690143ccSmrg	ShapeDef	*shape;
281690143ccSmrg	SectionDef	*section;
282690143ccSmrg	RowDef		*row;
283690143ccSmrg	KeyDef		*key;
284690143ccSmrg	OverlayDef	*overlay;
285690143ccSmrg	OverlayKeyDef	*olKey;
286690143ccSmrg	OutlineDef	*outline;
287690143ccSmrg	DoodadDef	*doodad;
288690143ccSmrg	XkbFile		*file;
289c82dfdfbSmrg
2906930ead5Smrg#line 291 "xkbparse.c"
291a57d84feSmrg
2926930ead5Smrg};
293f757b1e9Smrgtypedef union YYSTYPE YYSTYPE;
294c82dfdfbSmrg# define YYSTYPE_IS_TRIVIAL 1
295690143ccSmrg# define YYSTYPE_IS_DECLARED 1
296690143ccSmrg#endif
297690143ccSmrg
298f757b1e9Smrg
299c82dfdfbSmrgextern YYSTYPE yylval;
300690143ccSmrg
3016930ead5Smrg
302c82dfdfbSmrgint yyparse (void);
3031d8c7986Smrg
304690143ccSmrg
305690143ccSmrg
3066930ead5Smrg/* Symbol kind.  */
3076930ead5Smrgenum yysymbol_kind_t
3086930ead5Smrg{
3096930ead5Smrg  YYSYMBOL_YYEMPTY = -2,
3106930ead5Smrg  YYSYMBOL_YYEOF = 0,                      /* END_OF_FILE  */
3116930ead5Smrg  YYSYMBOL_YYerror = 1,                    /* error  */
3126930ead5Smrg  YYSYMBOL_YYUNDEF = 2,                    /* "invalid token"  */
3136930ead5Smrg  YYSYMBOL_ERROR_TOK = 3,                  /* ERROR_TOK  */
3146930ead5Smrg  YYSYMBOL_XKB_KEYMAP = 4,                 /* XKB_KEYMAP  */
3156930ead5Smrg  YYSYMBOL_XKB_KEYCODES = 5,               /* XKB_KEYCODES  */
3166930ead5Smrg  YYSYMBOL_XKB_TYPES = 6,                  /* XKB_TYPES  */
3176930ead5Smrg  YYSYMBOL_XKB_SYMBOLS = 7,                /* XKB_SYMBOLS  */
3186930ead5Smrg  YYSYMBOL_XKB_COMPATMAP = 8,              /* XKB_COMPATMAP  */
3196930ead5Smrg  YYSYMBOL_XKB_GEOMETRY = 9,               /* XKB_GEOMETRY  */
3206930ead5Smrg  YYSYMBOL_XKB_SEMANTICS = 10,             /* XKB_SEMANTICS  */
3216930ead5Smrg  YYSYMBOL_XKB_LAYOUT = 11,                /* XKB_LAYOUT  */
3226930ead5Smrg  YYSYMBOL_INCLUDE = 12,                   /* INCLUDE  */
3236930ead5Smrg  YYSYMBOL_OVERRIDE = 13,                  /* OVERRIDE  */
3246930ead5Smrg  YYSYMBOL_AUGMENT = 14,                   /* AUGMENT  */
3256930ead5Smrg  YYSYMBOL_REPLACE = 15,                   /* REPLACE  */
3266930ead5Smrg  YYSYMBOL_ALTERNATE = 16,                 /* ALTERNATE  */
3276930ead5Smrg  YYSYMBOL_VIRTUAL_MODS = 17,              /* VIRTUAL_MODS  */
3286930ead5Smrg  YYSYMBOL_TYPE = 18,                      /* TYPE  */
3296930ead5Smrg  YYSYMBOL_INTERPRET = 19,                 /* INTERPRET  */
3306930ead5Smrg  YYSYMBOL_ACTION_TOK = 20,                /* ACTION_TOK  */
3316930ead5Smrg  YYSYMBOL_KEY = 21,                       /* KEY  */
3326930ead5Smrg  YYSYMBOL_ALIAS = 22,                     /* ALIAS  */
3336930ead5Smrg  YYSYMBOL_GROUP = 23,                     /* GROUP  */
3346930ead5Smrg  YYSYMBOL_MODIFIER_MAP = 24,              /* MODIFIER_MAP  */
3356930ead5Smrg  YYSYMBOL_INDICATOR = 25,                 /* INDICATOR  */
3366930ead5Smrg  YYSYMBOL_SHAPE = 26,                     /* SHAPE  */
3376930ead5Smrg  YYSYMBOL_KEYS = 27,                      /* KEYS  */
3386930ead5Smrg  YYSYMBOL_ROW = 28,                       /* ROW  */
3396930ead5Smrg  YYSYMBOL_SECTION = 29,                   /* SECTION  */
3406930ead5Smrg  YYSYMBOL_OVERLAY = 30,                   /* OVERLAY  */
3416930ead5Smrg  YYSYMBOL_TEXT = 31,                      /* TEXT  */
3426930ead5Smrg  YYSYMBOL_OUTLINE = 32,                   /* OUTLINE  */
3436930ead5Smrg  YYSYMBOL_SOLID = 33,                     /* SOLID  */
3446930ead5Smrg  YYSYMBOL_LOGO = 34,                      /* LOGO  */
3456930ead5Smrg  YYSYMBOL_VIRTUAL = 35,                   /* VIRTUAL  */
3466930ead5Smrg  YYSYMBOL_EQUALS = 36,                    /* EQUALS  */
3476930ead5Smrg  YYSYMBOL_PLUS = 37,                      /* PLUS  */
3486930ead5Smrg  YYSYMBOL_MINUS = 38,                     /* MINUS  */
3496930ead5Smrg  YYSYMBOL_DIVIDE = 39,                    /* DIVIDE  */
3506930ead5Smrg  YYSYMBOL_TIMES = 40,                     /* TIMES  */
3516930ead5Smrg  YYSYMBOL_OBRACE = 41,                    /* OBRACE  */
3526930ead5Smrg  YYSYMBOL_CBRACE = 42,                    /* CBRACE  */
3536930ead5Smrg  YYSYMBOL_OPAREN = 43,                    /* OPAREN  */
3546930ead5Smrg  YYSYMBOL_CPAREN = 44,                    /* CPAREN  */
3556930ead5Smrg  YYSYMBOL_OBRACKET = 45,                  /* OBRACKET  */
3566930ead5Smrg  YYSYMBOL_CBRACKET = 46,                  /* CBRACKET  */
3576930ead5Smrg  YYSYMBOL_DOT = 47,                       /* DOT  */
3586930ead5Smrg  YYSYMBOL_COMMA = 48,                     /* COMMA  */
3596930ead5Smrg  YYSYMBOL_SEMI = 49,                      /* SEMI  */
3606930ead5Smrg  YYSYMBOL_EXCLAM = 50,                    /* EXCLAM  */
3616930ead5Smrg  YYSYMBOL_INVERT = 51,                    /* INVERT  */
3626930ead5Smrg  YYSYMBOL_STRING = 52,                    /* STRING  */
3636930ead5Smrg  YYSYMBOL_INTEGER = 53,                   /* INTEGER  */
3646930ead5Smrg  YYSYMBOL_FLOAT = 54,                     /* FLOAT  */
3656930ead5Smrg  YYSYMBOL_IDENT = 55,                     /* IDENT  */
3666930ead5Smrg  YYSYMBOL_KEYNAME = 56,                   /* KEYNAME  */
3676930ead5Smrg  YYSYMBOL_PARTIAL = 57,                   /* PARTIAL  */
3686930ead5Smrg  YYSYMBOL_DEFAULT = 58,                   /* DEFAULT  */
3696930ead5Smrg  YYSYMBOL_HIDDEN = 59,                    /* HIDDEN  */
3706930ead5Smrg  YYSYMBOL_ALPHANUMERIC_KEYS = 60,         /* ALPHANUMERIC_KEYS  */
3716930ead5Smrg  YYSYMBOL_MODIFIER_KEYS = 61,             /* MODIFIER_KEYS  */
3726930ead5Smrg  YYSYMBOL_KEYPAD_KEYS = 62,               /* KEYPAD_KEYS  */
3736930ead5Smrg  YYSYMBOL_FUNCTION_KEYS = 63,             /* FUNCTION_KEYS  */
3746930ead5Smrg  YYSYMBOL_ALTERNATE_GROUP = 64,           /* ALTERNATE_GROUP  */
3756930ead5Smrg  YYSYMBOL_YYACCEPT = 65,                  /* $accept  */
3766930ead5Smrg  YYSYMBOL_XkbFile = 66,                   /* XkbFile  */
3776930ead5Smrg  YYSYMBOL_XkbCompMapList = 67,            /* XkbCompMapList  */
3786930ead5Smrg  YYSYMBOL_XkbCompositeMap = 68,           /* XkbCompositeMap  */
3796930ead5Smrg  YYSYMBOL_XkbCompositeType = 69,          /* XkbCompositeType  */
3806930ead5Smrg  YYSYMBOL_XkbMapConfigList = 70,          /* XkbMapConfigList  */
3816930ead5Smrg  YYSYMBOL_XkbMapConfig = 71,              /* XkbMapConfig  */
3826930ead5Smrg  YYSYMBOL_XkbConfig = 72,                 /* XkbConfig  */
3836930ead5Smrg  YYSYMBOL_FileType = 73,                  /* FileType  */
3846930ead5Smrg  YYSYMBOL_OptFlags = 74,                  /* OptFlags  */
3856930ead5Smrg  YYSYMBOL_Flags = 75,                     /* Flags  */
3866930ead5Smrg  YYSYMBOL_Flag = 76,                      /* Flag  */
3876930ead5Smrg  YYSYMBOL_DeclList = 77,                  /* DeclList  */
3886930ead5Smrg  YYSYMBOL_Decl = 78,                      /* Decl  */
3896930ead5Smrg  YYSYMBOL_VarDecl = 79,                   /* VarDecl  */
3906930ead5Smrg  YYSYMBOL_KeyNameDecl = 80,               /* KeyNameDecl  */
3916930ead5Smrg  YYSYMBOL_KeyAliasDecl = 81,              /* KeyAliasDecl  */
3926930ead5Smrg  YYSYMBOL_VModDecl = 82,                  /* VModDecl  */
3936930ead5Smrg  YYSYMBOL_VModDefList = 83,               /* VModDefList  */
3946930ead5Smrg  YYSYMBOL_VModDef = 84,                   /* VModDef  */
3956930ead5Smrg  YYSYMBOL_InterpretDecl = 85,             /* InterpretDecl  */
3966930ead5Smrg  YYSYMBOL_InterpretMatch = 86,            /* InterpretMatch  */
3976930ead5Smrg  YYSYMBOL_VarDeclList = 87,               /* VarDeclList  */
3986930ead5Smrg  YYSYMBOL_KeyTypeDecl = 88,               /* KeyTypeDecl  */
3996930ead5Smrg  YYSYMBOL_SymbolsDecl = 89,               /* SymbolsDecl  */
4006930ead5Smrg  YYSYMBOL_SymbolsBody = 90,               /* SymbolsBody  */
4016930ead5Smrg  YYSYMBOL_SymbolsVarDecl = 91,            /* SymbolsVarDecl  */
4026930ead5Smrg  YYSYMBOL_ArrayInit = 92,                 /* ArrayInit  */
4036930ead5Smrg  YYSYMBOL_GroupCompatDecl = 93,           /* GroupCompatDecl  */
4046930ead5Smrg  YYSYMBOL_ModMapDecl = 94,                /* ModMapDecl  */
4056930ead5Smrg  YYSYMBOL_IndicatorMapDecl = 95,          /* IndicatorMapDecl  */
4066930ead5Smrg  YYSYMBOL_IndicatorNameDecl = 96,         /* IndicatorNameDecl  */
4076930ead5Smrg  YYSYMBOL_ShapeDecl = 97,                 /* ShapeDecl  */
4086930ead5Smrg  YYSYMBOL_SectionDecl = 98,               /* SectionDecl  */
4096930ead5Smrg  YYSYMBOL_SectionBody = 99,               /* SectionBody  */
4106930ead5Smrg  YYSYMBOL_SectionBodyItem = 100,          /* SectionBodyItem  */
4116930ead5Smrg  YYSYMBOL_RowBody = 101,                  /* RowBody  */
4126930ead5Smrg  YYSYMBOL_RowBodyItem = 102,              /* RowBodyItem  */
4136930ead5Smrg  YYSYMBOL_Keys = 103,                     /* Keys  */
4146930ead5Smrg  YYSYMBOL_Key = 104,                      /* Key  */
4156930ead5Smrg  YYSYMBOL_OverlayDecl = 105,              /* OverlayDecl  */
4166930ead5Smrg  YYSYMBOL_OverlayKeyList = 106,           /* OverlayKeyList  */
4176930ead5Smrg  YYSYMBOL_OverlayKey = 107,               /* OverlayKey  */
4186930ead5Smrg  YYSYMBOL_OutlineList = 108,              /* OutlineList  */
4196930ead5Smrg  YYSYMBOL_OutlineInList = 109,            /* OutlineInList  */
4206930ead5Smrg  YYSYMBOL_CoordList = 110,                /* CoordList  */
4216930ead5Smrg  YYSYMBOL_Coord = 111,                    /* Coord  */
4226930ead5Smrg  YYSYMBOL_DoodadDecl = 112,               /* DoodadDecl  */
4236930ead5Smrg  YYSYMBOL_DoodadType = 113,               /* DoodadType  */
4246930ead5Smrg  YYSYMBOL_FieldSpec = 114,                /* FieldSpec  */
4256930ead5Smrg  YYSYMBOL_Element = 115,                  /* Element  */
4266930ead5Smrg  YYSYMBOL_OptMergeMode = 116,             /* OptMergeMode  */
4276930ead5Smrg  YYSYMBOL_MergeMode = 117,                /* MergeMode  */
4286930ead5Smrg  YYSYMBOL_OptExprList = 118,              /* OptExprList  */
4296930ead5Smrg  YYSYMBOL_ExprList = 119,                 /* ExprList  */
4306930ead5Smrg  YYSYMBOL_Expr = 120,                     /* Expr  */
4316930ead5Smrg  YYSYMBOL_Term = 121,                     /* Term  */
4326930ead5Smrg  YYSYMBOL_ActionList = 122,               /* ActionList  */
4336930ead5Smrg  YYSYMBOL_Action = 123,                   /* Action  */
4346930ead5Smrg  YYSYMBOL_Lhs = 124,                      /* Lhs  */
4356930ead5Smrg  YYSYMBOL_Terminal = 125,                 /* Terminal  */
4366930ead5Smrg  YYSYMBOL_OptKeySymList = 126,            /* OptKeySymList  */
4376930ead5Smrg  YYSYMBOL_KeySymList = 127,               /* KeySymList  */
4386930ead5Smrg  YYSYMBOL_KeySym = 128,                   /* KeySym  */
4396930ead5Smrg  YYSYMBOL_KeySyms = 129,                  /* KeySyms  */
4406930ead5Smrg  YYSYMBOL_SignedNumber = 130,             /* SignedNumber  */
4416930ead5Smrg  YYSYMBOL_Number = 131,                   /* Number  */
4426930ead5Smrg  YYSYMBOL_Float = 132,                    /* Float  */
4436930ead5Smrg  YYSYMBOL_Integer = 133,                  /* Integer  */
4446930ead5Smrg  YYSYMBOL_KeyName = 134,                  /* KeyName  */
4456930ead5Smrg  YYSYMBOL_Ident = 135,                    /* Ident  */
4466930ead5Smrg  YYSYMBOL_String = 136,                   /* String  */
4476930ead5Smrg  YYSYMBOL_OptMapName = 137,               /* OptMapName  */
4486930ead5Smrg  YYSYMBOL_MapName = 138                   /* MapName  */
4496930ead5Smrg};
4506930ead5Smrgtypedef enum yysymbol_kind_t yysymbol_kind_t;
4516930ead5Smrg
4526930ead5Smrg
453c82dfdfbSmrg
454690143ccSmrg
455690143ccSmrg#ifdef short
456690143ccSmrg# undef short
457690143ccSmrg#endif
458690143ccSmrg
4596930ead5Smrg/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
4606930ead5Smrg   <limits.h> and (if available) <stdint.h> are included
4616930ead5Smrg   so that the code can choose integer types of a good width.  */
4626930ead5Smrg
4636930ead5Smrg#ifndef __PTRDIFF_MAX__
4646930ead5Smrg# include <limits.h> /* INFRINGES ON USER NAME SPACE */
4656930ead5Smrg# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
4666930ead5Smrg#  include <stdint.h> /* INFRINGES ON USER NAME SPACE */
4676930ead5Smrg#  define YY_STDINT_H
4686930ead5Smrg# endif
469690143ccSmrg#endif
470690143ccSmrg
4716930ead5Smrg/* Narrow types that promote to a signed type and that can represent a
4726930ead5Smrg   signed or unsigned integer of at least N bits.  In tables they can
4736930ead5Smrg   save space and decrease cache pressure.  Promoting to a signed type
4746930ead5Smrg   helps avoid bugs in integer arithmetic.  */
4756930ead5Smrg
4766930ead5Smrg#ifdef __INT_LEAST8_MAX__
4776930ead5Smrgtypedef __INT_LEAST8_TYPE__ yytype_int8;
4786930ead5Smrg#elif defined YY_STDINT_H
4796930ead5Smrgtypedef int_least8_t yytype_int8;
480bfe6082cSmrg#else
481a57d84feSmrgtypedef signed char yytype_int8;
482bfe6082cSmrg#endif
483bfe6082cSmrg
4846930ead5Smrg#ifdef __INT_LEAST16_MAX__
4856930ead5Smrgtypedef __INT_LEAST16_TYPE__ yytype_int16;
4866930ead5Smrg#elif defined YY_STDINT_H
4876930ead5Smrgtypedef int_least16_t yytype_int16;
4886930ead5Smrg#else
4896930ead5Smrgtypedef short yytype_int16;
4906930ead5Smrg#endif
4916930ead5Smrg
4926930ead5Smrg/* Work around bug in HP-UX 11.23, which defines these macros
4936930ead5Smrg   incorrectly for preprocessor constants.  This workaround can likely
4946930ead5Smrg   be removed in 2023, as HPE has promised support for HP-UX 11.23
4956930ead5Smrg   (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
4966930ead5Smrg   <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>.  */
4976930ead5Smrg#ifdef __hpux
4986930ead5Smrg# undef UINT_LEAST8_MAX
4996930ead5Smrg# undef UINT_LEAST16_MAX
5006930ead5Smrg# define UINT_LEAST8_MAX 255
5016930ead5Smrg# define UINT_LEAST16_MAX 65535
5026930ead5Smrg#endif
5036930ead5Smrg
5046930ead5Smrg#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
5056930ead5Smrgtypedef __UINT_LEAST8_TYPE__ yytype_uint8;
5066930ead5Smrg#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
5076930ead5Smrg       && UINT_LEAST8_MAX <= INT_MAX)
5086930ead5Smrgtypedef uint_least8_t yytype_uint8;
5096930ead5Smrg#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
5106930ead5Smrgtypedef unsigned char yytype_uint8;
511690143ccSmrg#else
5126930ead5Smrgtypedef short yytype_uint8;
513690143ccSmrg#endif
514690143ccSmrg
5156930ead5Smrg#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
5166930ead5Smrgtypedef __UINT_LEAST16_TYPE__ yytype_uint16;
5176930ead5Smrg#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
5186930ead5Smrg       && UINT_LEAST16_MAX <= INT_MAX)
5196930ead5Smrgtypedef uint_least16_t yytype_uint16;
5206930ead5Smrg#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
5216930ead5Smrgtypedef unsigned short yytype_uint16;
522690143ccSmrg#else
5236930ead5Smrgtypedef int yytype_uint16;
5246930ead5Smrg#endif
5256930ead5Smrg
5266930ead5Smrg#ifndef YYPTRDIFF_T
5276930ead5Smrg# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
5286930ead5Smrg#  define YYPTRDIFF_T __PTRDIFF_TYPE__
5296930ead5Smrg#  define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
5306930ead5Smrg# elif defined PTRDIFF_MAX
5316930ead5Smrg#  ifndef ptrdiff_t
5326930ead5Smrg#   include <stddef.h> /* INFRINGES ON USER NAME SPACE */
5336930ead5Smrg#  endif
5346930ead5Smrg#  define YYPTRDIFF_T ptrdiff_t
5356930ead5Smrg#  define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
5366930ead5Smrg# else
5376930ead5Smrg#  define YYPTRDIFF_T long
5386930ead5Smrg#  define YYPTRDIFF_MAXIMUM LONG_MAX
5396930ead5Smrg# endif
540690143ccSmrg#endif
541690143ccSmrg
542690143ccSmrg#ifndef YYSIZE_T
543690143ccSmrg# ifdef __SIZE_TYPE__
544690143ccSmrg#  define YYSIZE_T __SIZE_TYPE__
545690143ccSmrg# elif defined size_t
546690143ccSmrg#  define YYSIZE_T size_t
5476930ead5Smrg# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
548690143ccSmrg#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
549690143ccSmrg#  define YYSIZE_T size_t
550690143ccSmrg# else
5516930ead5Smrg#  define YYSIZE_T unsigned
552690143ccSmrg# endif
553690143ccSmrg#endif
554690143ccSmrg
5556930ead5Smrg#define YYSIZE_MAXIMUM                                  \
5566930ead5Smrg  YY_CAST (YYPTRDIFF_T,                                 \
5576930ead5Smrg           (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1)  \
5586930ead5Smrg            ? YYPTRDIFF_MAXIMUM                         \
5596930ead5Smrg            : YY_CAST (YYSIZE_T, -1)))
5606930ead5Smrg
5616930ead5Smrg#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
5626930ead5Smrg
5636930ead5Smrg
5646930ead5Smrg/* Stored state numbers (used for stacks). */
5656930ead5Smrgtypedef yytype_int16 yy_state_t;
5666930ead5Smrg
5676930ead5Smrg/* State numbers in computations.  */
5686930ead5Smrgtypedef int yy_state_fast_t;
569690143ccSmrg
570690143ccSmrg#ifndef YY_
571c82dfdfbSmrg# if defined YYENABLE_NLS && YYENABLE_NLS
572690143ccSmrg#  if ENABLE_NLS
573690143ccSmrg#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
574c82dfdfbSmrg#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
575690143ccSmrg#  endif
576690143ccSmrg# endif
577690143ccSmrg# ifndef YY_
578c82dfdfbSmrg#  define YY_(Msgid) Msgid
579690143ccSmrg# endif
580690143ccSmrg#endif
581690143ccSmrg
582f757b1e9Smrg
583a57d84feSmrg#ifndef YY_ATTRIBUTE_PURE
5846930ead5Smrg# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
5856930ead5Smrg#  define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
5866930ead5Smrg# else
5876930ead5Smrg#  define YY_ATTRIBUTE_PURE
5886930ead5Smrg# endif
589a57d84feSmrg#endif
590a57d84feSmrg
591f757b1e9Smrg#ifndef YY_ATTRIBUTE_UNUSED
5926930ead5Smrg# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
5936930ead5Smrg#  define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
594f757b1e9Smrg# else
5956930ead5Smrg#  define YY_ATTRIBUTE_UNUSED
596f757b1e9Smrg# endif
597f757b1e9Smrg#endif
598f757b1e9Smrg
599690143ccSmrg/* Suppress unused-variable warnings by "using" E.  */
600690143ccSmrg#if ! defined lint || defined __GNUC__
6016930ead5Smrg# define YY_USE(E) ((void) (E))
602690143ccSmrg#else
6036930ead5Smrg# define YY_USE(E) /* empty */
604690143ccSmrg#endif
605690143ccSmrg
606f757b1e9Smrg/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
6076930ead5Smrg#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
6086930ead5Smrg# if __GNUC__ * 100 + __GNUC_MINOR__ < 407
6096930ead5Smrg#  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
6106930ead5Smrg    _Pragma ("GCC diagnostic push")                                     \
6116930ead5Smrg    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
6126930ead5Smrg# else
6136930ead5Smrg#  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
6146930ead5Smrg    _Pragma ("GCC diagnostic push")                                     \
6156930ead5Smrg    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")              \
616f757b1e9Smrg    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
6176930ead5Smrg# endif
6186930ead5Smrg# define YY_IGNORE_MAYBE_UNINITIALIZED_END      \
619f757b1e9Smrg    _Pragma ("GCC diagnostic pop")
620690143ccSmrg#else
621f757b1e9Smrg# define YY_INITIAL_VALUE(Value) Value
622690143ccSmrg#endif
623f757b1e9Smrg#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
624f757b1e9Smrg# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
625f757b1e9Smrg# define YY_IGNORE_MAYBE_UNINITIALIZED_END
626f757b1e9Smrg#endif
627f757b1e9Smrg#ifndef YY_INITIAL_VALUE
628f757b1e9Smrg# define YY_INITIAL_VALUE(Value) /* Nothing. */
629690143ccSmrg#endif
630690143ccSmrg
6316930ead5Smrg#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
6326930ead5Smrg# define YY_IGNORE_USELESS_CAST_BEGIN                          \
6336930ead5Smrg    _Pragma ("GCC diagnostic push")                            \
6346930ead5Smrg    _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
6356930ead5Smrg# define YY_IGNORE_USELESS_CAST_END            \
6366930ead5Smrg    _Pragma ("GCC diagnostic pop")
6376930ead5Smrg#endif
6386930ead5Smrg#ifndef YY_IGNORE_USELESS_CAST_BEGIN
6396930ead5Smrg# define YY_IGNORE_USELESS_CAST_BEGIN
6406930ead5Smrg# define YY_IGNORE_USELESS_CAST_END
6416930ead5Smrg#endif
6426930ead5Smrg
643f757b1e9Smrg
6446930ead5Smrg#define YY_ASSERT(E) ((void) (0 && (E)))
6456930ead5Smrg
6466930ead5Smrg#if !defined yyoverflow
647690143ccSmrg
648690143ccSmrg/* The parser invokes alloca or malloc; define the necessary symbols.  */
649690143ccSmrg
650690143ccSmrg# ifdef YYSTACK_USE_ALLOCA
651690143ccSmrg#  if YYSTACK_USE_ALLOCA
652690143ccSmrg#   ifdef __GNUC__
653690143ccSmrg#    define YYSTACK_ALLOC __builtin_alloca
654690143ccSmrg#   elif defined __BUILTIN_VA_ARG_INCR
655690143ccSmrg#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
656690143ccSmrg#   elif defined _AIX
657690143ccSmrg#    define YYSTACK_ALLOC __alloca
658690143ccSmrg#   elif defined _MSC_VER
659690143ccSmrg#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
660690143ccSmrg#    define alloca _alloca
661690143ccSmrg#   else
662690143ccSmrg#    define YYSTACK_ALLOC alloca
663f757b1e9Smrg#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
664690143ccSmrg#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
665c82dfdfbSmrg      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
666c82dfdfbSmrg#     ifndef EXIT_SUCCESS
667c82dfdfbSmrg#      define EXIT_SUCCESS 0
668690143ccSmrg#     endif
669690143ccSmrg#    endif
670690143ccSmrg#   endif
671690143ccSmrg#  endif
672690143ccSmrg# endif
673690143ccSmrg
674690143ccSmrg# ifdef YYSTACK_ALLOC
675f757b1e9Smrg   /* Pacify GCC's 'empty if-body' warning.  */
676f757b1e9Smrg#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
677690143ccSmrg#  ifndef YYSTACK_ALLOC_MAXIMUM
678690143ccSmrg    /* The OS might guarantee only one guard page at the bottom of the stack,
679690143ccSmrg       and a page size can be as small as 4096 bytes.  So we cannot safely
680690143ccSmrg       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
681690143ccSmrg       to allow for a few compiler-allocated temporary stack slots.  */
682690143ccSmrg#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
683690143ccSmrg#  endif
684690143ccSmrg# else
685690143ccSmrg#  define YYSTACK_ALLOC YYMALLOC
686690143ccSmrg#  define YYSTACK_FREE YYFREE
687690143ccSmrg#  ifndef YYSTACK_ALLOC_MAXIMUM
688690143ccSmrg#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
689690143ccSmrg#  endif
690c82dfdfbSmrg#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
691690143ccSmrg       && ! ((defined YYMALLOC || defined malloc) \
692f757b1e9Smrg             && (defined YYFREE || defined free)))
693690143ccSmrg#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
694c82dfdfbSmrg#   ifndef EXIT_SUCCESS
695c82dfdfbSmrg#    define EXIT_SUCCESS 0
696690143ccSmrg#   endif
697690143ccSmrg#  endif
698690143ccSmrg#  ifndef YYMALLOC
699690143ccSmrg#   define YYMALLOC malloc
700f757b1e9Smrg#   if ! defined malloc && ! defined EXIT_SUCCESS
701690143ccSmrgvoid *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
702690143ccSmrg#   endif
703690143ccSmrg#  endif
704690143ccSmrg#  ifndef YYFREE
705690143ccSmrg#   define YYFREE free
706f757b1e9Smrg#   if ! defined free && ! defined EXIT_SUCCESS
707690143ccSmrgvoid free (void *); /* INFRINGES ON USER NAME SPACE */
708690143ccSmrg#   endif
709690143ccSmrg#  endif
710690143ccSmrg# endif
7116930ead5Smrg#endif /* !defined yyoverflow */
712690143ccSmrg
713690143ccSmrg#if (! defined yyoverflow \
714690143ccSmrg     && (! defined __cplusplus \
715f757b1e9Smrg         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
716690143ccSmrg
717690143ccSmrg/* A type that is properly aligned for any stack member.  */
718690143ccSmrgunion yyalloc
719690143ccSmrg{
7206930ead5Smrg  yy_state_t yyss_alloc;
721c82dfdfbSmrg  YYSTYPE yyvs_alloc;
722c82dfdfbSmrg};
723690143ccSmrg
724690143ccSmrg/* The size of the maximum gap between one aligned stack and the next.  */
7256930ead5Smrg# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
726690143ccSmrg
727690143ccSmrg/* The size of an array large to enough to hold all stacks, each with
728690143ccSmrg   N elements.  */
729690143ccSmrg# define YYSTACK_BYTES(N) \
7306930ead5Smrg     ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
731690143ccSmrg      + YYSTACK_GAP_MAXIMUM)
732690143ccSmrg
733c82dfdfbSmrg# define YYCOPY_NEEDED 1
734690143ccSmrg
735690143ccSmrg/* Relocate STACK from its old location to the new one.  The
736690143ccSmrg   local variables YYSIZE and YYSTACKSIZE give the old and new number of
737690143ccSmrg   elements in the stack, and YYPTR gives the new location of the
738690143ccSmrg   stack.  Advance YYPTR to a properly aligned location for the next
739690143ccSmrg   stack.  */
740f757b1e9Smrg# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
741f757b1e9Smrg    do                                                                  \
742f757b1e9Smrg      {                                                                 \
7436930ead5Smrg        YYPTRDIFF_T yynewbytes;                                         \
744f757b1e9Smrg        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
745f757b1e9Smrg        Stack = &yyptr->Stack_alloc;                                    \
7466930ead5Smrg        yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
7476930ead5Smrg        yyptr += yynewbytes / YYSIZEOF (*yyptr);                        \
748f757b1e9Smrg      }                                                                 \
749f757b1e9Smrg    while (0)
750690143ccSmrg
751690143ccSmrg#endif
752690143ccSmrg
753c82dfdfbSmrg#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
754c82dfdfbSmrg/* Copy COUNT objects from SRC to DST.  The source and destination do
755c82dfdfbSmrg   not overlap.  */
756c82dfdfbSmrg# ifndef YYCOPY
757c82dfdfbSmrg#  if defined __GNUC__ && 1 < __GNUC__
758c82dfdfbSmrg#   define YYCOPY(Dst, Src, Count) \
7596930ead5Smrg      __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
760c82dfdfbSmrg#  else
761c82dfdfbSmrg#   define YYCOPY(Dst, Src, Count)              \
762c82dfdfbSmrg      do                                        \
763c82dfdfbSmrg        {                                       \
7646930ead5Smrg          YYPTRDIFF_T yyi;                      \
765c82dfdfbSmrg          for (yyi = 0; yyi < (Count); yyi++)   \
766c82dfdfbSmrg            (Dst)[yyi] = (Src)[yyi];            \
767c82dfdfbSmrg        }                                       \
768f757b1e9Smrg      while (0)
769c82dfdfbSmrg#  endif
770c82dfdfbSmrg# endif
771c82dfdfbSmrg#endif /* !YYCOPY_NEEDED */
772c82dfdfbSmrg
773690143ccSmrg/* YYFINAL -- State number of the termination state.  */
774690143ccSmrg#define YYFINAL  18
775690143ccSmrg/* YYLAST -- Last index in YYTABLE.  */
776c82dfdfbSmrg#define YYLAST   747
777690143ccSmrg
778690143ccSmrg/* YYNTOKENS -- Number of terminals.  */
779690143ccSmrg#define YYNTOKENS  65
780690143ccSmrg/* YYNNTS -- Number of nonterminals.  */
781c82dfdfbSmrg#define YYNNTS  74
782690143ccSmrg/* YYNRULES -- Number of rules.  */
783c82dfdfbSmrg#define YYNRULES  187
784f757b1e9Smrg/* YYNSTATES -- Number of states.  */
785c82dfdfbSmrg#define YYNSTATES  340
786690143ccSmrg
7876930ead5Smrg/* YYMAXUTOK -- Last valid token kind.  */
788690143ccSmrg#define YYMAXUTOK   257
789690143ccSmrg
7906930ead5Smrg
7916930ead5Smrg/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
7926930ead5Smrg   as returned by yylex, with out-of-bounds checking.  */
7936930ead5Smrg#define YYTRANSLATE(YYX)                                \
7946930ead5Smrg  (0 <= (YYX) && (YYX) <= YYMAXUTOK                     \
7956930ead5Smrg   ? YY_CAST (yysymbol_kind_t, yytranslate[YYX])        \
7966930ead5Smrg   : YYSYMBOL_YYUNDEF)
797690143ccSmrg
798f757b1e9Smrg/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
7996930ead5Smrg   as returned by yylex.  */
8006930ead5Smrgstatic const yytype_int8 yytranslate[] =
801690143ccSmrg{
802690143ccSmrg       0,     4,     5,     6,     7,     8,     9,    10,    11,     2,
803690143ccSmrg      12,    13,    14,    15,    16,     2,     2,     2,     2,     2,
804690143ccSmrg      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
805690143ccSmrg      27,    28,    29,    30,    31,    32,    33,    34,    35,     2,
806690143ccSmrg      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
807690143ccSmrg      46,    47,    48,    49,    50,    51,     2,     2,     2,     2,
808690143ccSmrg      52,    53,    54,    55,    56,     2,     2,     2,     2,     2,
809690143ccSmrg      57,    58,    59,    60,    61,    62,    63,    64,     2,     2,
810690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
811690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
812690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
813690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
814690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
815690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
816690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
817690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
818690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
819690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
820690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
821690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
822690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
823690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
824690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
825690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
826690143ccSmrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
827690143ccSmrg       2,     2,     2,     2,     2,     3,     1,     2
828690143ccSmrg};
829690143ccSmrg
830690143ccSmrg#if YYDEBUG
8316930ead5Smrg/* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
8326930ead5Smrgstatic const yytype_int16 yyrline[] =
833690143ccSmrg{
8346930ead5Smrg       0,   167,   167,   169,   171,   175,   177,   181,   187,   188,
8356930ead5Smrg     189,   192,   194,   198,   204,   209,   210,   211,   212,   213,
8366930ead5Smrg     216,   217,   220,   221,   224,   225,   226,   227,   228,   229,
8376930ead5Smrg     230,   231,   234,   236,   239,   244,   249,   254,   259,   264,
8386930ead5Smrg     269,   274,   279,   284,   289,   294,   299,   304,   309,   321,
8396930ead5Smrg     323,   325,   329,   340,   350,   354,   356,   360,   362,   366,
8406930ead5Smrg     375,   377,   381,   383,   387,   393,   399,   401,   403,   406,
8416930ead5Smrg     408,   410,   412,   414,   418,   420,   424,   428,   432,   436,
8426930ead5Smrg     438,   442,   444,   452,   456,   458,   462,   464,   466,   468,
8436930ead5Smrg     470,   474,   476,   480,   482,   486,   488,   492,   494,   498,
8446930ead5Smrg     502,   507,   511,   515,   517,   521,   523,   525,   529,   531,
8456930ead5Smrg     535,   545,   549,   550,   551,   552,   555,   556,   559,   561,
8466930ead5Smrg     563,   565,   567,   569,   571,   573,   575,   577,   579,   583,
8476930ead5Smrg     584,   587,   588,   589,   590,   591,   594,   595,   598,   600,
8486930ead5Smrg     604,   606,   608,   610,   612,   614,   618,   620,   622,   624,
8496930ead5Smrg     626,   628,   630,   632,   636,   638,   642,   646,   653,   661,
8506930ead5Smrg     670,   681,   688,   695,   702,   713,   714,   717,   719,   721,
8516930ead5Smrg     723,   727,   728,   729,   736,   740,   741,   744,   745,   748,
8526930ead5Smrg     751,   754,   757,   758,   761,   764,   765,   768
853690143ccSmrg};
854690143ccSmrg#endif
855690143ccSmrg
8566930ead5Smrg/** Accessing symbol of state STATE.  */
8576930ead5Smrg#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
8586930ead5Smrg
8596930ead5Smrg#if YYDEBUG || 0
8606930ead5Smrg/* The user-facing name of the symbol whose (internal) number is
8616930ead5Smrg   YYSYMBOL.  No bounds checking.  */
8626930ead5Smrgstatic const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
8636930ead5Smrg
864690143ccSmrg/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
865690143ccSmrg   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
866690143ccSmrgstatic const char *const yytname[] =
867690143ccSmrg{
8686930ead5Smrg  "END_OF_FILE", "error", "\"invalid token\"", "ERROR_TOK", "XKB_KEYMAP",
869690143ccSmrg  "XKB_KEYCODES", "XKB_TYPES", "XKB_SYMBOLS", "XKB_COMPATMAP",
870690143ccSmrg  "XKB_GEOMETRY", "XKB_SEMANTICS", "XKB_LAYOUT", "INCLUDE", "OVERRIDE",
871690143ccSmrg  "AUGMENT", "REPLACE", "ALTERNATE", "VIRTUAL_MODS", "TYPE", "INTERPRET",
872690143ccSmrg  "ACTION_TOK", "KEY", "ALIAS", "GROUP", "MODIFIER_MAP", "INDICATOR",
873690143ccSmrg  "SHAPE", "KEYS", "ROW", "SECTION", "OVERLAY", "TEXT", "OUTLINE", "SOLID",
874690143ccSmrg  "LOGO", "VIRTUAL", "EQUALS", "PLUS", "MINUS", "DIVIDE", "TIMES",
875690143ccSmrg  "OBRACE", "CBRACE", "OPAREN", "CPAREN", "OBRACKET", "CBRACKET", "DOT",
876690143ccSmrg  "COMMA", "SEMI", "EXCLAM", "INVERT", "STRING", "INTEGER", "FLOAT",
877690143ccSmrg  "IDENT", "KEYNAME", "PARTIAL", "DEFAULT", "HIDDEN", "ALPHANUMERIC_KEYS",
878690143ccSmrg  "MODIFIER_KEYS", "KEYPAD_KEYS", "FUNCTION_KEYS", "ALTERNATE_GROUP",
879690143ccSmrg  "$accept", "XkbFile", "XkbCompMapList", "XkbCompositeMap",
880690143ccSmrg  "XkbCompositeType", "XkbMapConfigList", "XkbMapConfig", "XkbConfig",
881690143ccSmrg  "FileType", "OptFlags", "Flags", "Flag", "DeclList", "Decl", "VarDecl",
882690143ccSmrg  "KeyNameDecl", "KeyAliasDecl", "VModDecl", "VModDefList", "VModDef",
883690143ccSmrg  "InterpretDecl", "InterpretMatch", "VarDeclList", "KeyTypeDecl",
884690143ccSmrg  "SymbolsDecl", "SymbolsBody", "SymbolsVarDecl", "ArrayInit",
885690143ccSmrg  "GroupCompatDecl", "ModMapDecl", "IndicatorMapDecl", "IndicatorNameDecl",
886690143ccSmrg  "ShapeDecl", "SectionDecl", "SectionBody", "SectionBodyItem", "RowBody",
887690143ccSmrg  "RowBodyItem", "Keys", "Key", "OverlayDecl", "OverlayKeyList",
888690143ccSmrg  "OverlayKey", "OutlineList", "OutlineInList", "CoordList", "Coord",
889690143ccSmrg  "DoodadDecl", "DoodadType", "FieldSpec", "Element", "OptMergeMode",
890690143ccSmrg  "MergeMode", "OptExprList", "ExprList", "Expr", "Term", "ActionList",
891690143ccSmrg  "Action", "Lhs", "Terminal", "OptKeySymList", "KeySymList", "KeySym",
892c82dfdfbSmrg  "KeySyms", "SignedNumber", "Number", "Float", "Integer", "KeyName",
893f757b1e9Smrg  "Ident", "String", "OptMapName", "MapName", YY_NULLPTR
894690143ccSmrg};
895690143ccSmrg
8966930ead5Smrgstatic const char *
8976930ead5Smrgyysymbol_name (yysymbol_kind_t yysymbol)
898690143ccSmrg{
8996930ead5Smrg  return yytname[yysymbol];
9006930ead5Smrg}
9016930ead5Smrg#endif
902690143ccSmrg
9036930ead5Smrg#define YYPACT_NINF (-179)
904690143ccSmrg
9056930ead5Smrg#define yypact_value_is_default(Yyn) \
9066930ead5Smrg  ((Yyn) == YYPACT_NINF)
907690143ccSmrg
9086930ead5Smrg#define YYTABLE_NINF (-183)
909690143ccSmrg
9106930ead5Smrg#define yytable_value_is_error(Yyn) \
911f757b1e9Smrg  0
912690143ccSmrg
9136930ead5Smrg/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
9146930ead5Smrg   STATE-NUM.  */
915690143ccSmrgstatic const yytype_int16 yypact[] =
916690143ccSmrg{
917c82dfdfbSmrg     669,  -179,  -179,  -179,  -179,  -179,  -179,  -179,  -179,    19,
918c82dfdfbSmrg     138,  -179,   185,  -179,  -179,   736,   669,  -179,  -179,  -179,
919c82dfdfbSmrg      41,  -179,   297,  -179,  -179,  -179,  -179,  -179,  -179,  -179,
920c82dfdfbSmrg    -179,    -3,    -3,  -179,    -3,  -179,    13,  -179,    31,    31,
921c82dfdfbSmrg     669,  -179,    63,   544,    53,  -179,  -179,  -179,  -179,  -179,
922c82dfdfbSmrg    -179,   266,    59,    66,   104,     1,    98,    -9,  -179,    27,
923c82dfdfbSmrg      27,    52,     1,    79,    98,  -179,    98,   109,  -179,  -179,
924c82dfdfbSmrg    -179,   140,     1,  -179,  -179,  -179,  -179,  -179,  -179,  -179,
925c82dfdfbSmrg    -179,  -179,  -179,  -179,  -179,  -179,  -179,  -179,  -179,  -179,
926c82dfdfbSmrg      98,   130,  -179,   132,   135,   125,  -179,  -179,  -179,   144,
927c82dfdfbSmrg    -179,   145,  -179,   170,  -179,  -179,  -179,   176,   189,  -179,
928c82dfdfbSmrg     186,   192,   200,   196,   202,   210,   211,   212,    52,   213,
929c82dfdfbSmrg     220,   371,   681,   371,   371,  -179,     1,  -179,   371,   667,
930c82dfdfbSmrg     667,   371,   498,    27,   371,   371,   371,   667,    16,   453,
931c82dfdfbSmrg     205,  -179,   667,  -179,  -179,  -179,  -179,  -179,  -179,  -179,
932c82dfdfbSmrg    -179,  -179,   371,   371,   371,   371,   371,  -179,   358,   194,
933c82dfdfbSmrg    -179,   224,  -179,  -179,  -179,  -179,  -179,  -179,   226,   166,
934c82dfdfbSmrg     181,  -179,    51,  -179,   513,   541,    51,   556,     1,   -27,
935c82dfdfbSmrg    -179,  -179,   233,    22,   223,   219,    38,    51,   325,   597,
936c82dfdfbSmrg     229,   -24,    54,  -179,    56,  -179,   239,    98,   236,    98,
937c82dfdfbSmrg    -179,  -179,   412,  -179,  -179,  -179,   371,   612,  -179,  -179,
938c82dfdfbSmrg    -179,   291,  -179,  -179,   371,   371,   371,   371,   371,  -179,
939c82dfdfbSmrg     371,   371,  -179,  -179,   232,  -179,   244,   253,   -16,   268,
940c82dfdfbSmrg     276,   134,  -179,   277,   285,  -179,  -179,  -179,   287,   498,
941c82dfdfbSmrg     289,  -179,  -179,   288,   371,  -179,   303,    70,   154,  -179,
942c82dfdfbSmrg    -179,   290,  -179,   308,   -17,   311,   229,   330,   653,   284,
943c82dfdfbSmrg     317,  -179,   338,   320,  -179,   302,   322,   183,   183,  -179,
944c82dfdfbSmrg    -179,    51,   227,  -179,  -179,    80,   371,  -179,   681,  -179,
945c82dfdfbSmrg     -16,  -179,  -179,  -179,    51,  -179,    51,  -179,  -179,  -179,
946c82dfdfbSmrg     -24,  -179,  -179,  -179,  -179,   229,    51,   331,  -179,   470,
947c82dfdfbSmrg    -179,    27,  -179,  -179,  -179,  -179,  -179,  -179,   335,  -179,
948c82dfdfbSmrg    -179,  -179,   347,    99,   -25,   349,  -179,   100,  -179,   368,
949c82dfdfbSmrg    -179,  -179,  -179,   371,   101,  -179,  -179,  -179,   357,    27,
950c82dfdfbSmrg      27,   116,   361,   -25,  -179,  -179,  -179,  -179,  -179,  -179
951f46a6179Smrg};
952690143ccSmrg
9536930ead5Smrg/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
9546930ead5Smrg   Performed when YYTABLE does not specify something else to do.  Zero
9556930ead5Smrg   means the default is an error.  */
956f757b1e9Smrgstatic const yytype_uint8 yydefact[] =
957f757b1e9Smrg{
958f757b1e9Smrg      21,    24,    25,    26,    27,    28,    29,    30,    31,     0,
959f757b1e9Smrg      21,     6,    21,    12,     4,     0,    20,    23,     1,     5,
960f757b1e9Smrg       0,    11,     0,     8,    15,    16,    18,    17,    19,     9,
961f757b1e9Smrg      10,   186,   186,    22,   186,   187,     0,   185,    33,     0,
962f757b1e9Smrg      21,    33,   130,    21,   130,   131,   133,   132,   134,   135,
963f757b1e9Smrg      32,     0,   129,     0,     0,     0,   120,   119,   118,   121,
964f757b1e9Smrg       0,   122,   123,   124,   125,   126,   127,   128,   113,   114,
965f757b1e9Smrg     115,     0,     0,   182,   181,   183,    34,    37,    38,    35,
966f757b1e9Smrg      36,    39,    40,    42,    41,    43,    44,    45,    46,    47,
967f757b1e9Smrg       0,   157,   117,     0,     0,   116,    48,     7,    13,     0,
968f757b1e9Smrg      56,    57,   184,     0,   172,   180,   171,     0,    61,   173,
969f757b1e9Smrg       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
970f757b1e9Smrg       0,     0,     0,     0,     0,    50,     0,    54,     0,     0,
971f757b1e9Smrg       0,     0,    68,     0,     0,     0,     0,     0,     0,     0,
972f757b1e9Smrg       0,    51,     0,   120,   119,   121,   122,   123,   124,   125,
973f757b1e9Smrg     127,   128,     0,     0,     0,     0,     0,   179,   157,     0,
974f757b1e9Smrg     145,   150,   152,   163,   162,   164,   116,   161,   158,     0,
975f757b1e9Smrg       0,    55,    58,    63,     0,     0,    60,   166,     0,     0,
976f757b1e9Smrg      67,    73,     0,   116,     0,     0,     0,   139,     0,     0,
977f757b1e9Smrg       0,     0,     0,   104,     0,   109,     0,   124,   126,     0,
978f757b1e9Smrg      87,    89,     0,    85,    90,    88,     0,     0,   147,   150,
979f757b1e9Smrg     146,     0,   148,   149,   137,     0,     0,     0,     0,   159,
980f757b1e9Smrg       0,     0,    49,    52,     0,    62,     0,   172,     0,   171,
981f757b1e9Smrg       0,     0,   155,     0,   165,   169,   170,    72,     0,     0,
982f757b1e9Smrg       0,    53,    76,     0,     0,    79,     0,     0,     0,   178,
983f757b1e9Smrg     177,     0,   176,     0,     0,     0,     0,     0,     0,     0,
984f757b1e9Smrg       0,    84,     0,     0,   153,     0,   136,   141,   142,   140,
985f757b1e9Smrg     143,   144,     0,    64,    59,     0,   137,    75,     0,    74,
986f757b1e9Smrg       0,    65,    66,    70,    69,    77,   138,    78,   105,   175,
987f757b1e9Smrg       0,    81,   103,    82,   108,     0,   107,     0,    94,     0,
988f757b1e9Smrg      92,     0,    83,    80,   111,   151,   160,   174,     0,   154,
989f757b1e9Smrg     167,   168,     0,     0,     0,     0,    91,     0,   101,     0,
990f757b1e9Smrg     156,   110,   106,     0,     0,    96,    97,    86,     0,     0,
991f757b1e9Smrg       0,     0,     0,     0,    99,   100,   102,    98,    93,    95
992f757b1e9Smrg};
993f757b1e9Smrg
9946930ead5Smrg/* YYPGOTO[NTERM-NUM].  */
995690143ccSmrgstatic const yytype_int16 yypgoto[] =
996690143ccSmrg{
997c82dfdfbSmrg    -179,  -179,  -179,   397,  -179,   372,    -8,  -179,   389,    48,
998c82dfdfbSmrg    -179,   399,   375,  -179,   -19,  -179,  -179,  -179,  -179,   292,
999c82dfdfbSmrg    -179,  -179,  -119,  -179,  -179,  -179,   174,   177,  -179,  -179,
1000c82dfdfbSmrg     369,  -179,  -179,  -179,  -179,   217,  -179,   129,  -179,   106,
1001c82dfdfbSmrg    -179,  -179,   105,  -179,   193,  -178,   195,   398,  -179,   -23,
1002c82dfdfbSmrg    -179,  -179,  -179,   172,  -132,   -81,    34,  -179,   175,   -29,
1003c82dfdfbSmrg    -179,  -179,   222,   -55,   178,   162,   207,  -179,   -56,   -51,
1004c82dfdfbSmrg     -45,   -30,   180,  -179
1005f46a6179Smrg};
1006690143ccSmrg
10076930ead5Smrg/* YYDEFGOTO[NTERM-NUM].  */
1008f757b1e9Smrgstatic const yytype_int16 yydefgoto[] =
1009f757b1e9Smrg{
10106930ead5Smrg       0,     9,    10,    11,    31,    12,    13,    14,    32,    22,
1011f757b1e9Smrg      16,    17,    42,    50,   173,    77,    78,    79,    99,   100,
1012f757b1e9Smrg      80,   107,   174,    81,    82,   179,   180,   181,    83,    84,
1013f757b1e9Smrg     201,    86,    87,    88,   202,   203,   299,   300,   324,   325,
1014f757b1e9Smrg     204,   317,   318,   192,   193,   194,   195,   205,    90,   158,
1015f757b1e9Smrg      92,    51,    52,   265,   266,   187,   160,   231,   232,   161,
1016f757b1e9Smrg     162,   233,   234,   235,   236,   251,   252,   163,   164,   165,
1017f757b1e9Smrg     166,   167,    36,    37
1018f757b1e9Smrg};
1019f757b1e9Smrg
10206930ead5Smrg/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
10216930ead5Smrg   positive, shift that token.  If negative, reduce the rule whose
10226930ead5Smrg   number is the opposite.  If YYTABLE_NINF, syntax error.  */
1023690143ccSmrgstatic const yytype_int16 yytable[] =
1024690143ccSmrg{
1025c82dfdfbSmrg      94,   109,   108,   186,    21,   112,    95,   114,   110,   111,
1026c82dfdfbSmrg     101,   175,   247,   104,   248,   238,   323,   113,   189,    18,
1027c82dfdfbSmrg     104,   239,    93,   207,   190,   228,   103,   119,    91,   249,
1028c82dfdfbSmrg     250,    74,    76,   115,   116,    21,   117,   105,    73,   106,
1029c82dfdfbSmrg     159,    75,   169,   170,   105,    23,   106,   172,    15,    35,
1030c82dfdfbSmrg     176,    29,    30,   185,    40,   188,    73,   190,    20,    75,
1031c82dfdfbSmrg     120,   191,   140,   -14,   -71,    45,    46,    47,    48,    49,
1032c82dfdfbSmrg     -71,    73,    41,   211,    75,    45,    46,    47,    48,    49,
1033c82dfdfbSmrg     243,   101,   184,    74,    95,    95,   244,   183,   215,   216,
1034c82dfdfbSmrg     217,   218,    95,   196,    95,    54,   253,    95,   255,   168,
1035c82dfdfbSmrg      93,    93,   254,   182,   256,   105,    91,    91,    93,    91,
1036c82dfdfbSmrg      93,    96,   288,    93,    91,    97,    91,   313,   256,    91,
1037c82dfdfbSmrg     200,   109,   307,   209,   209,   262,   209,   209,   280,    95,
1038c82dfdfbSmrg      95,   102,   105,   237,   267,   268,   269,   270,    -2,   271,
1039c82dfdfbSmrg     272,   322,   328,   332,    95,    93,    93,   256,   329,   333,
1040c82dfdfbSmrg     102,    91,    91,    98,   230,   225,   225,    95,   337,   284,
1041c82dfdfbSmrg      93,  -112,    95,   286,   244,   118,    91,   115,   123,   259,
1042c82dfdfbSmrg     225,   124,   109,    93,   125,   121,   296,   122,    93,    91,
1043c82dfdfbSmrg     277,   128,   278,   200,    91,    -3,   208,   210,   225,   212,
1044c82dfdfbSmrg     213,   331,   126,   127,   183,     1,     2,     3,     4,     5,
1045c82dfdfbSmrg       6,     7,     8,   215,   216,   217,   218,   249,   250,   196,
1046c82dfdfbSmrg     182,   129,    38,    95,    39,   222,    91,   130,   215,   216,
1047c82dfdfbSmrg     217,   218,   217,   218,   109,   310,   131,   132,   133,    93,
1048c82dfdfbSmrg     223,   215,   216,   217,   218,    91,   134,   135,   136,   298,
1049c82dfdfbSmrg     219,   206,     1,     2,     3,     4,     5,     6,     7,     8,
1050c82dfdfbSmrg     319,   137,   138,   139,    95,   230,   215,   216,   217,   218,
1051c82dfdfbSmrg     220,   142,   141,   326,   215,   216,   217,   218,   242,   240,
1052c82dfdfbSmrg      93,   221,   241,   306,   191,   257,    91,   258,   319,   336,
1053c82dfdfbSmrg     298,   273,   326,    55,    56,    57,    58,    59,    60,    61,
1054c82dfdfbSmrg      62,    63,    64,   274,    65,    66,  -127,    67,    68,    69,
1055c82dfdfbSmrg      70,    71,    24,    25,    26,    27,    28,   143,   144,    58,
1056c82dfdfbSmrg     145,  -182,   146,   147,   148,   149,    72,    65,   150,   276,
1057c82dfdfbSmrg     151,    73,    74,   279,    75,   301,   152,   153,   215,   216,
1058c82dfdfbSmrg     217,   218,   154,   280,   177,   264,   281,   285,   290,   155,
1059c82dfdfbSmrg     156,   102,   105,   157,    73,    74,   305,    75,   143,   144,
1060c82dfdfbSmrg      58,   145,   287,   146,   147,   148,   149,   291,    65,   150,
1061c82dfdfbSmrg     293,   151,   215,   216,   217,   218,   302,   152,   153,   304,
1062c82dfdfbSmrg     244,   295,   314,   154,   245,   215,   216,   217,   218,   320,
1063c82dfdfbSmrg     155,   156,   102,   105,   157,    73,    74,   303,    75,   143,
1064c82dfdfbSmrg     144,    58,   145,   321,   146,   147,   148,   149,   327,    65,
1065c82dfdfbSmrg     150,   214,   151,   121,   330,   122,   334,    19,   152,   153,
1066c82dfdfbSmrg     338,    34,    43,   282,   154,    33,    44,   283,   171,   261,
1067c82dfdfbSmrg      85,   155,   156,   102,   105,   157,    73,    74,   316,    75,
1068c82dfdfbSmrg     143,   144,    58,   145,   335,   146,   147,   197,   149,   339,
1069c82dfdfbSmrg     198,   150,   199,    67,    68,    69,    70,   292,   308,    89,
1070c82dfdfbSmrg     275,   294,   312,   309,   260,   289,     0,     0,   311,     0,
1071c82dfdfbSmrg       0,     0,    72,     0,     0,     0,     0,    73,     0,     0,
1072c82dfdfbSmrg      75,   143,   144,    58,   145,     0,   146,   147,   197,   149,
1073c82dfdfbSmrg       0,   198,   150,   199,    67,    68,    69,    70,   143,   144,
1074c82dfdfbSmrg      58,   145,     0,   146,   147,   148,   149,   297,    65,   150,
1075c82dfdfbSmrg       0,   151,     0,    72,     0,     0,     0,     0,    73,     0,
1076c82dfdfbSmrg       0,    75,   315,     0,     0,     0,   143,   144,    58,   145,
1077c82dfdfbSmrg      72,   146,   147,   148,   149,    73,    65,   150,    75,   151,
1078c82dfdfbSmrg       0,   143,   144,    58,   145,     0,   146,   147,   148,   149,
1079c82dfdfbSmrg       0,    65,   150,   177,   151,     0,     0,     0,   178,     0,
1080c82dfdfbSmrg       0,     0,     0,    73,     0,   224,    75,     0,     0,   143,
1081c82dfdfbSmrg     144,    58,   145,    72,   146,   147,   148,   149,    73,    65,
1082c82dfdfbSmrg     150,    75,   151,     0,   143,   144,    58,   145,     0,   146,
1083c82dfdfbSmrg     147,   148,   149,   226,    65,   227,    53,   151,     0,     0,
1084c82dfdfbSmrg       0,    72,     0,     0,     0,     0,    73,   228,     0,    75,
1085c82dfdfbSmrg       0,     1,     2,     3,     4,     5,     6,     7,     8,   105,
1086c82dfdfbSmrg       0,   229,     0,     0,    75,   143,   144,    58,   145,     0,
1087c82dfdfbSmrg     146,   147,   148,   149,     0,    65,   150,     0,   151,     0,
1088c82dfdfbSmrg     143,   144,    58,   145,     0,   146,   147,   148,   149,   246,
1089c82dfdfbSmrg      65,   150,     0,   151,     0,     0,     0,    72,     0,     0,
1090c82dfdfbSmrg       0,     0,    73,     0,   263,    75,     0,     0,     0,     0,
1091c82dfdfbSmrg       0,     0,    72,     0,     0,     0,     0,    73,     0,     0,
1092c82dfdfbSmrg      75,   143,   144,    58,   145,     0,   146,   147,   148,   149,
1093c82dfdfbSmrg     297,    65,   150,     0,   151,   143,   144,    58,   145,     0,
1094c82dfdfbSmrg     146,   147,   148,   149,     0,    65,   150,     0,   151,   143,
1095c82dfdfbSmrg     144,    58,   145,    72,   146,   147,   148,   149,    73,    65,
1096c82dfdfbSmrg     150,    75,   151,     0,     0,     0,     0,    72,     0,     0,
1097c82dfdfbSmrg       0,     0,    73,     0,     0,    75,     1,     2,     3,     4,
1098c82dfdfbSmrg       5,     6,     7,     8,     0,     0,    73,     0,     0,    75,
1099c82dfdfbSmrg      23,    24,    25,    26,    27,    28,    29,    30
1100f46a6179Smrg};
1101690143ccSmrg
1102690143ccSmrgstatic const yytype_int16 yycheck[] =
1103690143ccSmrg{
1104c82dfdfbSmrg      51,    57,    57,   135,    12,    61,    51,    63,    59,    60,
1105c82dfdfbSmrg      55,   130,   190,    29,    38,    42,    41,    62,   137,     0,
1106c82dfdfbSmrg      29,    48,    51,   142,    41,    41,    56,    72,    51,    53,
1107c82dfdfbSmrg      54,    56,    51,    63,    64,    43,    66,    53,    55,    55,
1108c82dfdfbSmrg     121,    58,   123,   124,    53,     4,    55,   128,     0,    52,
1109c82dfdfbSmrg     131,    10,    11,   134,    41,   136,    55,    41,    10,    58,
1110c82dfdfbSmrg      90,    45,   118,     0,    42,    12,    13,    14,    15,    16,
1111c82dfdfbSmrg      48,    55,    41,   154,    58,    12,    13,    14,    15,    16,
1112c82dfdfbSmrg      42,   126,   133,    56,   129,   130,    48,   132,    37,    38,
1113c82dfdfbSmrg      39,    40,   137,   138,   139,    42,    42,   142,    42,   122,
1114c82dfdfbSmrg     129,   130,    48,   132,    48,    53,   129,   130,   137,   132,
1115c82dfdfbSmrg     139,    52,    42,   142,   137,    49,   139,   295,    48,   142,
1116c82dfdfbSmrg     139,   177,    42,   152,   153,   206,   155,   156,    48,   174,
1117c82dfdfbSmrg     175,    52,    53,   178,   215,   216,   217,   218,     0,   220,
1118c82dfdfbSmrg     221,    42,    42,    42,   189,   174,   175,    48,    48,    48,
1119c82dfdfbSmrg      52,   174,   175,    49,   177,   174,   175,   202,    42,   240,
1120c82dfdfbSmrg     189,    52,   207,   244,    48,    25,   189,   197,    36,   199,
1121c82dfdfbSmrg     189,    36,   228,   202,    49,    45,   257,    47,   207,   202,
1122c82dfdfbSmrg      46,    36,    48,   202,   207,     0,   152,   153,   207,   155,
1123c82dfdfbSmrg     156,   323,    48,    49,   239,    57,    58,    59,    60,    61,
1124c82dfdfbSmrg      62,    63,    64,    37,    38,    39,    40,    53,    54,   254,
1125c82dfdfbSmrg     239,    41,    32,   258,    34,    49,   239,    41,    37,    38,
1126c82dfdfbSmrg      39,    40,    39,    40,   280,   280,    37,    41,    36,   258,
1127c82dfdfbSmrg      49,    37,    38,    39,    40,   258,    36,    41,    36,   258,
1128c82dfdfbSmrg      46,    36,    57,    58,    59,    60,    61,    62,    63,    64,
1129c82dfdfbSmrg     301,    41,    41,    41,   299,   278,    37,    38,    39,    40,
1130c82dfdfbSmrg      36,    41,    49,   314,    37,    38,    39,    40,    49,    36,
1131c82dfdfbSmrg     299,    45,    49,    46,    45,    36,   299,    41,   329,   330,
1132c82dfdfbSmrg     299,    49,   333,    17,    18,    19,    20,    21,    22,    23,
1133c82dfdfbSmrg      24,    25,    26,    49,    28,    29,    43,    31,    32,    33,
1134c82dfdfbSmrg      34,    35,     5,     6,     7,     8,     9,    18,    19,    20,
1135c82dfdfbSmrg      21,    43,    23,    24,    25,    26,    50,    28,    29,    43,
1136c82dfdfbSmrg      31,    55,    56,    46,    58,    41,    37,    38,    37,    38,
1137c82dfdfbSmrg      39,    40,    43,    48,    45,    44,    49,    49,    48,    50,
1138c82dfdfbSmrg      51,    52,    53,    54,    55,    56,    44,    58,    18,    19,
1139c82dfdfbSmrg      20,    21,    49,    23,    24,    25,    26,    49,    28,    29,
1140c82dfdfbSmrg      49,    31,    37,    38,    39,    40,    49,    37,    38,    49,
1141c82dfdfbSmrg      48,    41,    41,    43,    49,    37,    38,    39,    40,    44,
1142690143ccSmrg      50,    51,    52,    53,    54,    55,    56,    49,    58,    18,
1143c82dfdfbSmrg      19,    20,    21,    46,    23,    24,    25,    26,    49,    28,
1144c82dfdfbSmrg      29,    43,    31,    45,    36,    47,    49,    10,    37,    38,
1145c82dfdfbSmrg      49,    22,    40,   239,    43,    16,    41,   240,   126,   202,
1146c82dfdfbSmrg      51,    50,    51,    52,    53,    54,    55,    56,   299,    58,
1147c82dfdfbSmrg      18,    19,    20,    21,   329,    23,    24,    25,    26,   333,
1148c82dfdfbSmrg      28,    29,    30,    31,    32,    33,    34,   254,   276,    51,
1149c82dfdfbSmrg     228,   256,   290,   278,    42,   248,    -1,    -1,   280,    -1,
1150c82dfdfbSmrg      -1,    -1,    50,    -1,    -1,    -1,    -1,    55,    -1,    -1,
1151c82dfdfbSmrg      58,    18,    19,    20,    21,    -1,    23,    24,    25,    26,
1152c82dfdfbSmrg      -1,    28,    29,    30,    31,    32,    33,    34,    18,    19,
1153c82dfdfbSmrg      20,    21,    -1,    23,    24,    25,    26,    27,    28,    29,
1154c82dfdfbSmrg      -1,    31,    -1,    50,    -1,    -1,    -1,    -1,    55,    -1,
1155c82dfdfbSmrg      -1,    58,    42,    -1,    -1,    -1,    18,    19,    20,    21,
1156c82dfdfbSmrg      50,    23,    24,    25,    26,    55,    28,    29,    58,    31,
1157c82dfdfbSmrg      -1,    18,    19,    20,    21,    -1,    23,    24,    25,    26,
1158c82dfdfbSmrg      -1,    28,    29,    45,    31,    -1,    -1,    -1,    50,    -1,
1159c82dfdfbSmrg      -1,    -1,    -1,    55,    -1,    42,    58,    -1,    -1,    18,
1160c82dfdfbSmrg      19,    20,    21,    50,    23,    24,    25,    26,    55,    28,
1161c82dfdfbSmrg      29,    58,    31,    -1,    18,    19,    20,    21,    -1,    23,
1162c82dfdfbSmrg      24,    25,    26,    42,    28,    29,    42,    31,    -1,    -1,
1163c82dfdfbSmrg      -1,    50,    -1,    -1,    -1,    -1,    55,    41,    -1,    58,
1164c82dfdfbSmrg      -1,    57,    58,    59,    60,    61,    62,    63,    64,    53,
1165c82dfdfbSmrg      -1,    55,    -1,    -1,    58,    18,    19,    20,    21,    -1,
1166c82dfdfbSmrg      23,    24,    25,    26,    -1,    28,    29,    -1,    31,    -1,
1167c82dfdfbSmrg      18,    19,    20,    21,    -1,    23,    24,    25,    26,    42,
1168c82dfdfbSmrg      28,    29,    -1,    31,    -1,    -1,    -1,    50,    -1,    -1,
1169c82dfdfbSmrg      -1,    -1,    55,    -1,    42,    58,    -1,    -1,    -1,    -1,
1170c82dfdfbSmrg      -1,    -1,    50,    -1,    -1,    -1,    -1,    55,    -1,    -1,
1171c82dfdfbSmrg      58,    18,    19,    20,    21,    -1,    23,    24,    25,    26,
1172c82dfdfbSmrg      27,    28,    29,    -1,    31,    18,    19,    20,    21,    -1,
1173c82dfdfbSmrg      23,    24,    25,    26,    -1,    28,    29,    -1,    31,    18,
1174c82dfdfbSmrg      19,    20,    21,    50,    23,    24,    25,    26,    55,    28,
1175c82dfdfbSmrg      29,    58,    31,    -1,    -1,    -1,    -1,    50,    -1,    -1,
1176c82dfdfbSmrg      -1,    -1,    55,    -1,    -1,    58,    57,    58,    59,    60,
1177c82dfdfbSmrg      61,    62,    63,    64,    -1,    -1,    55,    -1,    -1,    58,
1178c82dfdfbSmrg       4,     5,     6,     7,     8,     9,    10,    11
1179f46a6179Smrg};
1180f46a6179Smrg
11816930ead5Smrg/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
11826930ead5Smrg   state STATE-NUM.  */
1183690143ccSmrgstatic const yytype_uint8 yystos[] =
1184690143ccSmrg{
1185690143ccSmrg       0,    57,    58,    59,    60,    61,    62,    63,    64,    66,
1186690143ccSmrg      67,    68,    70,    71,    72,    74,    75,    76,     0,    68,
1187690143ccSmrg      74,    71,    74,     4,     5,     6,     7,     8,     9,    10,
1188c82dfdfbSmrg      11,    69,    73,    76,    73,    52,   137,   138,   137,   137,
1189690143ccSmrg      41,    41,    77,    70,    77,    12,    13,    14,    15,    16,
1190690143ccSmrg      78,   116,   117,    42,    42,    17,    18,    19,    20,    21,
1191690143ccSmrg      22,    23,    24,    25,    26,    28,    29,    31,    32,    33,
1192690143ccSmrg      34,    35,    50,    55,    56,    58,    79,    80,    81,    82,
1193690143ccSmrg      85,    88,    89,    93,    94,    95,    96,    97,    98,   112,
1194c82dfdfbSmrg     113,   114,   115,   124,   134,   135,    52,    49,    49,    83,
1195c82dfdfbSmrg      84,   135,    52,   136,    29,    53,    55,    86,   128,   133,
1196c82dfdfbSmrg     134,   134,   133,   135,   133,   136,   136,   136,    25,   135,
1197c82dfdfbSmrg     136,    45,    47,    36,    36,    49,    48,    49,    36,    41,
1198690143ccSmrg      41,    37,    41,    36,    36,    41,    36,    41,    41,    41,
1199c82dfdfbSmrg     133,    49,    41,    18,    19,    21,    23,    24,    25,    26,
1200690143ccSmrg      29,    31,    37,    38,    43,    50,    51,    54,   114,   120,
1201c82dfdfbSmrg     121,   124,   125,   132,   133,   134,   135,   136,   114,   120,
1202690143ccSmrg     120,    84,   120,    79,    87,    87,   120,    45,    50,    90,
1203c82dfdfbSmrg      91,    92,   124,   135,   134,   120,   119,   120,   120,    87,
1204c82dfdfbSmrg      41,    45,   108,   109,   110,   111,   135,    25,    28,    30,
1205690143ccSmrg      79,    95,    99,   100,   105,   112,    36,    87,   121,   124,
1206690143ccSmrg     121,   120,   121,   121,    43,    37,    38,    39,    40,    46,
1207c82dfdfbSmrg      36,    45,    49,    49,    42,    79,    42,    29,    41,    55,
1208c82dfdfbSmrg     114,   122,   123,   126,   127,   128,   129,   135,    42,    48,
1209c82dfdfbSmrg      36,    49,    49,    42,    48,    49,    42,   110,    38,    53,
1210c82dfdfbSmrg      54,   130,   131,    42,    48,    42,    48,    36,    41,   136,
1211c82dfdfbSmrg      42,   100,   120,    42,    44,   118,   119,   120,   120,   120,
1212c82dfdfbSmrg     120,   120,   120,    49,    49,   127,    43,    46,    48,    46,
1213c82dfdfbSmrg      48,    49,    91,    92,   120,    49,   120,    49,    42,   131,
1214c82dfdfbSmrg      48,    49,   109,    49,   111,    41,   120,    27,    79,   101,
1215c82dfdfbSmrg     102,    41,    49,    49,    49,    44,    46,    42,   118,   123,
1216c82dfdfbSmrg     128,   129,   130,   110,    41,    42,   102,   106,   107,   134,
1217c82dfdfbSmrg      44,    46,    42,    41,   103,   104,   134,    49,    42,    48,
1218c82dfdfbSmrg      36,   119,    42,    48,    49,   107,   134,    42,    49,   104
1219f46a6179Smrg};
1220690143ccSmrg
12216930ead5Smrg/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.  */
1222f757b1e9Smrgstatic const yytype_uint8 yyr1[] =
1223f757b1e9Smrg{
1224f757b1e9Smrg       0,    65,    66,    66,    66,    67,    67,    68,    69,    69,
1225f757b1e9Smrg      69,    70,    70,    71,    72,    73,    73,    73,    73,    73,
1226f757b1e9Smrg      74,    74,    75,    75,    76,    76,    76,    76,    76,    76,
1227f757b1e9Smrg      76,    76,    77,    77,    78,    78,    78,    78,    78,    78,
1228f757b1e9Smrg      78,    78,    78,    78,    78,    78,    78,    78,    78,    79,
1229f757b1e9Smrg      79,    79,    80,    81,    82,    83,    83,    84,    84,    85,
1230f757b1e9Smrg      86,    86,    87,    87,    88,    89,    90,    90,    90,    91,
1231f757b1e9Smrg      91,    91,    91,    91,    92,    92,    93,    94,    95,    96,
1232f757b1e9Smrg      96,    97,    97,    98,    99,    99,   100,   100,   100,   100,
1233f757b1e9Smrg     100,   101,   101,   102,   102,   103,   103,   104,   104,   105,
1234f757b1e9Smrg     106,   106,   107,   108,   108,   109,   109,   109,   110,   110,
1235f757b1e9Smrg     111,   112,   113,   113,   113,   113,   114,   114,   115,   115,
1236f757b1e9Smrg     115,   115,   115,   115,   115,   115,   115,   115,   115,   116,
1237f757b1e9Smrg     116,   117,   117,   117,   117,   117,   118,   118,   119,   119,
1238f757b1e9Smrg     120,   120,   120,   120,   120,   120,   121,   121,   121,   121,
1239f757b1e9Smrg     121,   121,   121,   121,   122,   122,   123,   124,   124,   124,
1240f757b1e9Smrg     124,   125,   125,   125,   125,   126,   126,   127,   127,   127,
1241f757b1e9Smrg     127,   128,   128,   128,   129,   130,   130,   131,   131,   132,
1242f757b1e9Smrg     133,   134,   135,   135,   136,   137,   137,   138
1243f757b1e9Smrg};
1244f757b1e9Smrg
12456930ead5Smrg/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.  */
12466930ead5Smrgstatic const yytype_int8 yyr2[] =
1247f757b1e9Smrg{
1248f757b1e9Smrg       0,     2,     1,     1,     1,     2,     1,     7,     1,     1,
1249f757b1e9Smrg       1,     2,     1,     7,     4,     1,     1,     1,     1,     1,
1250f757b1e9Smrg       1,     0,     2,     1,     1,     1,     1,     1,     1,     1,
1251f757b1e9Smrg       1,     1,     2,     0,     2,     2,     2,     2,     2,     2,
1252f757b1e9Smrg       2,     2,     2,     2,     2,     2,     2,     2,     2,     4,
1253f757b1e9Smrg       2,     3,     4,     5,     3,     3,     1,     1,     3,     6,
1254f757b1e9Smrg       3,     1,     2,     1,     6,     6,     3,     1,     0,     3,
1255f757b1e9Smrg       3,     1,     2,     1,     3,     3,     5,     6,     6,     5,
1256f757b1e9Smrg       6,     6,     6,     6,     2,     1,     5,     1,     1,     1,
1257f757b1e9Smrg       1,     2,     1,     5,     1,     3,     1,     1,     3,     6,
1258f757b1e9Smrg       3,     1,     3,     3,     1,     3,     5,     3,     3,     1,
1259f757b1e9Smrg       5,     6,     1,     1,     1,     1,     1,     1,     1,     1,
1260f757b1e9Smrg       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1261f757b1e9Smrg       0,     1,     1,     1,     1,     1,     1,     0,     3,     1,
1262f757b1e9Smrg       3,     3,     3,     3,     3,     1,     2,     2,     2,     2,
1263f757b1e9Smrg       1,     4,     1,     3,     3,     1,     4,     1,     3,     4,
1264f757b1e9Smrg       6,     1,     1,     1,     1,     1,     0,     3,     3,     1,
1265f757b1e9Smrg       1,     1,     1,     1,     3,     2,     1,     1,     1,     1,
1266f757b1e9Smrg       1,     1,     1,     1,     1,     1,     0,     1
1267f757b1e9Smrg};
1268f757b1e9Smrg
1269f757b1e9Smrg
12706930ead5Smrgenum { YYENOMEM = -2 };
12716930ead5Smrg
1272f757b1e9Smrg#define yyerrok         (yyerrstatus = 0)
1273f757b1e9Smrg#define yyclearin       (yychar = YYEMPTY)
1274f757b1e9Smrg
1275f757b1e9Smrg#define YYACCEPT        goto yyacceptlab
1276f757b1e9Smrg#define YYABORT         goto yyabortlab
1277f757b1e9Smrg#define YYERROR         goto yyerrorlab
12786930ead5Smrg#define YYNOMEM         goto yyexhaustedlab
1279f757b1e9Smrg
1280690143ccSmrg
1281690143ccSmrg#define YYRECOVERING()  (!!yyerrstatus)
1282690143ccSmrg
12836930ead5Smrg#define YYBACKUP(Token, Value)                                    \
12846930ead5Smrg  do                                                              \
12856930ead5Smrg    if (yychar == YYEMPTY)                                        \
12866930ead5Smrg      {                                                           \
12876930ead5Smrg        yychar = (Token);                                         \
12886930ead5Smrg        yylval = (Value);                                         \
12896930ead5Smrg        YYPOPSTACK (yylen);                                       \
12906930ead5Smrg        yystate = *yyssp;                                         \
12916930ead5Smrg        goto yybackup;                                            \
12926930ead5Smrg      }                                                           \
12936930ead5Smrg    else                                                          \
12946930ead5Smrg      {                                                           \
12956930ead5Smrg        yyerror (YY_("syntax error: cannot back up")); \
12966930ead5Smrg        YYERROR;                                                  \
12976930ead5Smrg      }                                                           \
12986930ead5Smrg  while (0)
12996930ead5Smrg
13006930ead5Smrg/* Backward compatibility with an undocumented macro.
13016930ead5Smrg   Use YYerror or YYUNDEF. */
13026930ead5Smrg#define YYERRCODE YYUNDEF
1303690143ccSmrg
1304f46a6179Smrg
1305690143ccSmrg/* Enable debugging if requested.  */
1306690143ccSmrg#if YYDEBUG
1307f46a6179Smrg
1308690143ccSmrg# ifndef YYFPRINTF
1309690143ccSmrg#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1310690143ccSmrg#  define YYFPRINTF fprintf
1311690143ccSmrg# endif
1312f46a6179Smrg
1313f757b1e9Smrg# define YYDPRINTF(Args)                        \
1314f757b1e9Smrgdo {                                            \
1315f757b1e9Smrg  if (yydebug)                                  \
1316f757b1e9Smrg    YYFPRINTF Args;                             \
1317f757b1e9Smrg} while (0)
1318f757b1e9Smrg
1319f46a6179Smrg
1320f46a6179Smrg
13216930ead5Smrg
13226930ead5Smrg# define YY_SYMBOL_PRINT(Title, Kind, Value, Location)                    \
1323f757b1e9Smrgdo {                                                                      \
1324f757b1e9Smrg  if (yydebug)                                                            \
1325f757b1e9Smrg    {                                                                     \
1326f757b1e9Smrg      YYFPRINTF (stderr, "%s ", Title);                                   \
1327f757b1e9Smrg      yy_symbol_print (stderr,                                            \
13286930ead5Smrg                  Kind, Value); \
1329f757b1e9Smrg      YYFPRINTF (stderr, "\n");                                           \
1330f757b1e9Smrg    }                                                                     \
1331f757b1e9Smrg} while (0)
1332f46a6179Smrg
1333690143ccSmrg
13346930ead5Smrg/*-----------------------------------.
13356930ead5Smrg| Print this symbol's value on YYO.  |
13366930ead5Smrg`-----------------------------------*/
1337f757b1e9Smrg
1338690143ccSmrgstatic void
13396930ead5Smrgyy_symbol_value_print (FILE *yyo,
13406930ead5Smrg                       yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
1341f46a6179Smrg{
13426930ead5Smrg  FILE *yyoutput = yyo;
13436930ead5Smrg  YY_USE (yyoutput);
1344690143ccSmrg  if (!yyvaluep)
134507d2e718Smrg    return;
13466930ead5Smrg  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
13476930ead5Smrg  YY_USE (yykind);
13486930ead5Smrg  YY_IGNORE_MAYBE_UNINITIALIZED_END
1349f46a6179Smrg}
1350f46a6179Smrg
1351f46a6179Smrg
13526930ead5Smrg/*---------------------------.
13536930ead5Smrg| Print this symbol on YYO.  |
13546930ead5Smrg`---------------------------*/
1355f46a6179Smrg
1356690143ccSmrgstatic void
13576930ead5Smrgyy_symbol_print (FILE *yyo,
13586930ead5Smrg                 yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
1359f46a6179Smrg{
13606930ead5Smrg  YYFPRINTF (yyo, "%s %s (",
13616930ead5Smrg             yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
1362f46a6179Smrg
13636930ead5Smrg  yy_symbol_value_print (yyo, yykind, yyvaluep);
13646930ead5Smrg  YYFPRINTF (yyo, ")");
1365f46a6179Smrg}
1366f46a6179Smrg
1367690143ccSmrg/*------------------------------------------------------------------.
1368690143ccSmrg| yy_stack_print -- Print the state stack from its BOTTOM up to its |
1369690143ccSmrg| TOP (included).                                                   |
1370690143ccSmrg`------------------------------------------------------------------*/
1371f46a6179Smrg
1372690143ccSmrgstatic void
13736930ead5Smrgyy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
1374f46a6179Smrg{
1375690143ccSmrg  YYFPRINTF (stderr, "Stack now");
1376c82dfdfbSmrg  for (; yybottom <= yytop; yybottom++)
1377c82dfdfbSmrg    {
1378c82dfdfbSmrg      int yybot = *yybottom;
1379c82dfdfbSmrg      YYFPRINTF (stderr, " %d", yybot);
1380c82dfdfbSmrg    }
1381690143ccSmrg  YYFPRINTF (stderr, "\n");
1382690143ccSmrg}
1383f46a6179Smrg
1384f757b1e9Smrg# define YY_STACK_PRINT(Bottom, Top)                            \
1385f757b1e9Smrgdo {                                                            \
1386f757b1e9Smrg  if (yydebug)                                                  \
1387f757b1e9Smrg    yy_stack_print ((Bottom), (Top));                           \
1388f757b1e9Smrg} while (0)
1389f46a6179Smrg
1390f46a6179Smrg
1391690143ccSmrg/*------------------------------------------------.
1392690143ccSmrg| Report that the YYRULE is going to be reduced.  |
1393690143ccSmrg`------------------------------------------------*/
1394f46a6179Smrg
1395690143ccSmrgstatic void
13966930ead5Smrgyy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
13976930ead5Smrg                 int yyrule)
1398690143ccSmrg{
13996930ead5Smrg  int yylno = yyrline[yyrule];
1400690143ccSmrg  int yynrhs = yyr2[yyrule];
1401690143ccSmrg  int yyi;
14026930ead5Smrg  YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
1403f757b1e9Smrg             yyrule - 1, yylno);
1404690143ccSmrg  /* The symbols being reduced.  */
1405690143ccSmrg  for (yyi = 0; yyi < yynrhs; yyi++)
1406f46a6179Smrg    {
1407c82dfdfbSmrg      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
1408f757b1e9Smrg      yy_symbol_print (stderr,
14096930ead5Smrg                       YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
14106930ead5Smrg                       &yyvsp[(yyi + 1) - (yynrhs)]);
1411c82dfdfbSmrg      YYFPRINTF (stderr, "\n");
1412f46a6179Smrg    }
1413690143ccSmrg}
1414f46a6179Smrg
1415f757b1e9Smrg# define YY_REDUCE_PRINT(Rule)          \
1416f757b1e9Smrgdo {                                    \
1417f757b1e9Smrg  if (yydebug)                          \
1418f757b1e9Smrg    yy_reduce_print (yyssp, yyvsp, Rule); \
1419f757b1e9Smrg} while (0)
1420f46a6179Smrg
1421690143ccSmrg/* Nonzero means print parse trace.  It is left uninitialized so that
1422690143ccSmrg   multiple parsers can coexist.  */
1423690143ccSmrgint yydebug;
1424690143ccSmrg#else /* !YYDEBUG */
14256930ead5Smrg# define YYDPRINTF(Args) ((void) 0)
14266930ead5Smrg# define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
1427690143ccSmrg# define YY_STACK_PRINT(Bottom, Top)
1428690143ccSmrg# define YY_REDUCE_PRINT(Rule)
1429690143ccSmrg#endif /* !YYDEBUG */
1430f46a6179Smrg
1431f46a6179Smrg
1432690143ccSmrg/* YYINITDEPTH -- initial size of the parser's stacks.  */
1433f757b1e9Smrg#ifndef YYINITDEPTH
1434690143ccSmrg# define YYINITDEPTH 200
143507d2e718Smrg#endif
1436690143ccSmrg
1437690143ccSmrg/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1438690143ccSmrg   if the built-in stack extension method is used).
1439690143ccSmrg
1440690143ccSmrg   Do not make this value too large; the results are undefined if
1441690143ccSmrg   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1442690143ccSmrg   evaluated with infinite-precision integer arithmetic.  */
1443690143ccSmrg
1444690143ccSmrg#ifndef YYMAXDEPTH
1445690143ccSmrg# define YYMAXDEPTH 10000
1446690143ccSmrg#endif
1447690143ccSmrg
1448690143ccSmrg
1449690143ccSmrg
1450690143ccSmrg
1451a57d84feSmrg
1452690143ccSmrg
1453690143ccSmrg/*-----------------------------------------------.
1454690143ccSmrg| Release the memory associated to this symbol.  |
1455690143ccSmrg`-----------------------------------------------*/
1456690143ccSmrg
1457690143ccSmrgstatic void
14586930ead5Smrgyydestruct (const char *yymsg,
14596930ead5Smrg            yysymbol_kind_t yykind, YYSTYPE *yyvaluep)
1460690143ccSmrg{
14616930ead5Smrg  YY_USE (yyvaluep);
1462690143ccSmrg  if (!yymsg)
1463690143ccSmrg    yymsg = "Deleting";
14646930ead5Smrg  YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
1465690143ccSmrg
1466f757b1e9Smrg  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
14676930ead5Smrg  YY_USE (yykind);
1468f757b1e9Smrg  YY_IGNORE_MAYBE_UNINITIALIZED_END
1469690143ccSmrg}
14701d8c7986Smrg
1471690143ccSmrg
14726930ead5Smrg/* Lookahead token kind.  */
1473690143ccSmrgint yychar;
1474690143ccSmrg
1475c82dfdfbSmrg/* The semantic value of the lookahead symbol.  */
1476690143ccSmrgYYSTYPE yylval;
1477690143ccSmrg/* Number of syntax errors so far.  */
1478690143ccSmrgint yynerrs;
1479690143ccSmrg
1480690143ccSmrg
14816930ead5Smrg
14826930ead5Smrg
14831d8c7986Smrg/*----------.
14841d8c7986Smrg| yyparse.  |
14851d8c7986Smrg`----------*/
1486690143ccSmrg
1487690143ccSmrgint
1488690143ccSmrgyyparse (void)
1489690143ccSmrg{
14906930ead5Smrg    yy_state_fast_t yystate = 0;
1491c82dfdfbSmrg    /* Number of tokens to shift before error messages enabled.  */
14926930ead5Smrg    int yyerrstatus = 0;
1493c82dfdfbSmrg
14946930ead5Smrg    /* Refer to the stacks through separate pointers, to allow yyoverflow
1495c82dfdfbSmrg       to reallocate them elsewhere.  */
1496c82dfdfbSmrg
14976930ead5Smrg    /* Their size.  */
14986930ead5Smrg    YYPTRDIFF_T yystacksize = YYINITDEPTH;
1499c82dfdfbSmrg
15006930ead5Smrg    /* The state stack: array, bottom, top.  */
15016930ead5Smrg    yy_state_t yyssa[YYINITDEPTH];
15026930ead5Smrg    yy_state_t *yyss = yyssa;
15036930ead5Smrg    yy_state_t *yyssp = yyss;
1504c82dfdfbSmrg
15056930ead5Smrg    /* The semantic value stack: array, bottom, top.  */
15066930ead5Smrg    YYSTYPE yyvsa[YYINITDEPTH];
15076930ead5Smrg    YYSTYPE *yyvs = yyvsa;
15086930ead5Smrg    YYSTYPE *yyvsp = yyvs;
1509a57d84feSmrg
15101d8c7986Smrg  int yyn;
15116930ead5Smrg  /* The return value of yyparse.  */
15121d8c7986Smrg  int yyresult;
15136930ead5Smrg  /* Lookahead symbol kind.  */
15146930ead5Smrg  yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
1515c82dfdfbSmrg  /* The variables used to return semantic value and location from the
1516c82dfdfbSmrg     action routines.  */
1517c82dfdfbSmrg  YYSTYPE yyval;
1518c82dfdfbSmrg
15196930ead5Smrg
1520690143ccSmrg
15211d8c7986Smrg#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
15221d8c7986Smrg
1523690143ccSmrg  /* The number of symbols on the RHS of the reduced rule.
1524690143ccSmrg     Keep to zero when no symbol should be popped.  */
1525690143ccSmrg  int yylen = 0;
1526690143ccSmrg
1527690143ccSmrg  YYDPRINTF ((stderr, "Starting parse\n"));
1528690143ccSmrg
1529c82dfdfbSmrg  yychar = YYEMPTY; /* Cause a token to be read.  */
15306930ead5Smrg
1531690143ccSmrg  goto yysetstate;
1532690143ccSmrg
15336930ead5Smrg
1534690143ccSmrg/*------------------------------------------------------------.
15356930ead5Smrg| yynewstate -- push a new state, which is found in yystate.  |
1536690143ccSmrg`------------------------------------------------------------*/
15376930ead5Smrgyynewstate:
1538690143ccSmrg  /* In all cases, when you get here, the value and location stacks
1539690143ccSmrg     have just been pushed.  So pushing a state here evens the stacks.  */
1540690143ccSmrg  yyssp++;
1541690143ccSmrg
15426930ead5Smrg
15436930ead5Smrg/*--------------------------------------------------------------------.
15446930ead5Smrg| yysetstate -- set current state (the top of the stack) to yystate.  |
15456930ead5Smrg`--------------------------------------------------------------------*/
15466930ead5Smrgyysetstate:
15476930ead5Smrg  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
15486930ead5Smrg  YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
15496930ead5Smrg  YY_IGNORE_USELESS_CAST_BEGIN
15506930ead5Smrg  *yyssp = YY_CAST (yy_state_t, yystate);
15516930ead5Smrg  YY_IGNORE_USELESS_CAST_END
15526930ead5Smrg  YY_STACK_PRINT (yyss, yyssp);
1553690143ccSmrg
1554690143ccSmrg  if (yyss + yystacksize - 1 <= yyssp)
15556930ead5Smrg#if !defined yyoverflow && !defined YYSTACK_RELOCATE
15566930ead5Smrg    YYNOMEM;
15576930ead5Smrg#else
1558690143ccSmrg    {
1559690143ccSmrg      /* Get the current used size of the three stacks, in elements.  */
15606930ead5Smrg      YYPTRDIFF_T yysize = yyssp - yyss + 1;
1561690143ccSmrg
15626930ead5Smrg# if defined yyoverflow
1563690143ccSmrg      {
1564f757b1e9Smrg        /* Give user a chance to reallocate the stack.  Use copies of
1565f757b1e9Smrg           these so that the &'s don't force the real ones into
1566f757b1e9Smrg           memory.  */
15676930ead5Smrg        yy_state_t *yyss1 = yyss;
1568f757b1e9Smrg        YYSTYPE *yyvs1 = yyvs;
1569f757b1e9Smrg
1570f757b1e9Smrg        /* Each stack pointer address is followed by the size of the
1571f757b1e9Smrg           data in use in that stack, in bytes.  This used to be a
1572f757b1e9Smrg           conditional around just the two extra args, but that might
1573f757b1e9Smrg           be undefined if yyoverflow is a macro.  */
1574f757b1e9Smrg        yyoverflow (YY_("memory exhausted"),
15756930ead5Smrg                    &yyss1, yysize * YYSIZEOF (*yyssp),
15766930ead5Smrg                    &yyvs1, yysize * YYSIZEOF (*yyvsp),
1577f757b1e9Smrg                    &yystacksize);
1578f757b1e9Smrg        yyss = yyss1;
1579f757b1e9Smrg        yyvs = yyvs1;
1580690143ccSmrg      }
15816930ead5Smrg# else /* defined YYSTACK_RELOCATE */
1582690143ccSmrg      /* Extend the stack our own way.  */
1583690143ccSmrg      if (YYMAXDEPTH <= yystacksize)
15846930ead5Smrg        YYNOMEM;
1585690143ccSmrg      yystacksize *= 2;
1586690143ccSmrg      if (YYMAXDEPTH < yystacksize)
1587f757b1e9Smrg        yystacksize = YYMAXDEPTH;
1588690143ccSmrg
1589690143ccSmrg      {
15906930ead5Smrg        yy_state_t *yyss1 = yyss;
1591f757b1e9Smrg        union yyalloc *yyptr =
15926930ead5Smrg          YY_CAST (union yyalloc *,
15936930ead5Smrg                   YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
1594f757b1e9Smrg        if (! yyptr)
15956930ead5Smrg          YYNOMEM;
1596f757b1e9Smrg        YYSTACK_RELOCATE (yyss_alloc, yyss);
1597f757b1e9Smrg        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1598690143ccSmrg#  undef YYSTACK_RELOCATE
1599f757b1e9Smrg        if (yyss1 != yyssa)
1600f757b1e9Smrg          YYSTACK_FREE (yyss1);
1601690143ccSmrg      }
1602690143ccSmrg# endif
1603690143ccSmrg
1604690143ccSmrg      yyssp = yyss + yysize - 1;
1605690143ccSmrg      yyvsp = yyvs + yysize - 1;
1606690143ccSmrg
16076930ead5Smrg      YY_IGNORE_USELESS_CAST_BEGIN
16086930ead5Smrg      YYDPRINTF ((stderr, "Stack size increased to %ld\n",
16096930ead5Smrg                  YY_CAST (long, yystacksize)));
16106930ead5Smrg      YY_IGNORE_USELESS_CAST_END
1611690143ccSmrg
1612690143ccSmrg      if (yyss + yystacksize - 1 <= yyssp)
1613f757b1e9Smrg        YYABORT;
1614690143ccSmrg    }
16156930ead5Smrg#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
1616a57d84feSmrg
1617690143ccSmrg
1618c82dfdfbSmrg  if (yystate == YYFINAL)
1619c82dfdfbSmrg    YYACCEPT;
1620c82dfdfbSmrg
1621690143ccSmrg  goto yybackup;
1622690143ccSmrg
16236930ead5Smrg
1624690143ccSmrg/*-----------.
1625690143ccSmrg| yybackup.  |
1626690143ccSmrg`-----------*/
1627690143ccSmrgyybackup:
1628690143ccSmrg  /* Do appropriate processing given the current state.  Read a
1629c82dfdfbSmrg     lookahead token if we need one and don't already have one.  */
1630690143ccSmrg
1631c82dfdfbSmrg  /* First try to decide what to do without reference to lookahead token.  */
1632690143ccSmrg  yyn = yypact[yystate];
1633c82dfdfbSmrg  if (yypact_value_is_default (yyn))
1634690143ccSmrg    goto yydefault;
1635690143ccSmrg
1636c82dfdfbSmrg  /* Not known => get a lookahead token if don't already have one.  */
1637690143ccSmrg
16386930ead5Smrg  /* YYCHAR is either empty, or end-of-input, or a valid lookahead.  */
1639690143ccSmrg  if (yychar == YYEMPTY)
1640690143ccSmrg    {
16416930ead5Smrg      YYDPRINTF ((stderr, "Reading a token\n"));
1642f757b1e9Smrg      yychar = yylex ();
1643690143ccSmrg    }
1644690143ccSmrg
16456930ead5Smrg  if (yychar <= END_OF_FILE)
1646690143ccSmrg    {
16476930ead5Smrg      yychar = END_OF_FILE;
16486930ead5Smrg      yytoken = YYSYMBOL_YYEOF;
1649690143ccSmrg      YYDPRINTF ((stderr, "Now at end of input.\n"));
1650690143ccSmrg    }
16516930ead5Smrg  else if (yychar == YYerror)
16526930ead5Smrg    {
16536930ead5Smrg      /* The scanner already issued an error message, process directly
16546930ead5Smrg         to error recovery.  But do not keep the error token as
16556930ead5Smrg         lookahead, it is too special and may lead us to an endless
16566930ead5Smrg         loop in error recovery. */
16576930ead5Smrg      yychar = YYUNDEF;
16586930ead5Smrg      yytoken = YYSYMBOL_YYerror;
16596930ead5Smrg      goto yyerrlab1;
16606930ead5Smrg    }
1661690143ccSmrg  else
1662690143ccSmrg    {
1663690143ccSmrg      yytoken = YYTRANSLATE (yychar);
1664690143ccSmrg      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1665690143ccSmrg    }
1666690143ccSmrg
1667690143ccSmrg  /* If the proper action on seeing token YYTOKEN is to reduce or to
1668690143ccSmrg     detect an error, take that action.  */
1669690143ccSmrg  yyn += yytoken;
1670690143ccSmrg  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1671690143ccSmrg    goto yydefault;
1672690143ccSmrg  yyn = yytable[yyn];
1673690143ccSmrg  if (yyn <= 0)
1674690143ccSmrg    {
1675c82dfdfbSmrg      if (yytable_value_is_error (yyn))
1676c82dfdfbSmrg        goto yyerrlab;
1677690143ccSmrg      yyn = -yyn;
1678690143ccSmrg      goto yyreduce;
1679690143ccSmrg    }
1680690143ccSmrg
1681690143ccSmrg  /* Count tokens shifted since error; after three, turn off error
1682690143ccSmrg     status.  */
1683690143ccSmrg  if (yyerrstatus)
1684690143ccSmrg    yyerrstatus--;
1685690143ccSmrg
1686c82dfdfbSmrg  /* Shift the lookahead token.  */
1687690143ccSmrg  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1688690143ccSmrg  yystate = yyn;
1689c82dfdfbSmrg  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1690690143ccSmrg  *++yyvsp = yylval;
1691c82dfdfbSmrg  YY_IGNORE_MAYBE_UNINITIALIZED_END
1692690143ccSmrg
16936930ead5Smrg  /* Discard the shifted token.  */
16946930ead5Smrg  yychar = YYEMPTY;
1695690143ccSmrg  goto yynewstate;
1696690143ccSmrg
1697690143ccSmrg
1698690143ccSmrg/*-----------------------------------------------------------.
1699690143ccSmrg| yydefault -- do the default action for the current state.  |
1700690143ccSmrg`-----------------------------------------------------------*/
1701690143ccSmrgyydefault:
1702690143ccSmrg  yyn = yydefact[yystate];
1703690143ccSmrg  if (yyn == 0)
1704690143ccSmrg    goto yyerrlab;
1705690143ccSmrg  goto yyreduce;
1706690143ccSmrg
1707690143ccSmrg
1708690143ccSmrg/*-----------------------------.
17096930ead5Smrg| yyreduce -- do a reduction.  |
1710690143ccSmrg`-----------------------------*/
1711690143ccSmrgyyreduce:
1712690143ccSmrg  /* yyn is the number of a rule to reduce with.  */
1713690143ccSmrg  yylen = yyr2[yyn];
1714690143ccSmrg
1715690143ccSmrg  /* If YYLEN is nonzero, implement the default value of the action:
1716f757b1e9Smrg     '$$ = $1'.
1717690143ccSmrg
1718690143ccSmrg     Otherwise, the following line sets YYVAL to garbage.
1719690143ccSmrg     This behavior is undocumented and Bison
1720690143ccSmrg     users should not rely upon it.  Assigning to YYVAL
1721690143ccSmrg     unconditionally makes the parser a bit smaller, and it avoids a
1722690143ccSmrg     GCC warning that YYVAL may be used uninitialized.  */
1723690143ccSmrg  yyval = yyvsp[1-yylen];
1724690143ccSmrg
1725690143ccSmrg
1726690143ccSmrg  YY_REDUCE_PRINT (yyn);
1727690143ccSmrg  switch (yyn)
1728f46a6179Smrg    {
17296930ead5Smrg  case 2: /* XkbFile: XkbCompMapList  */
17306930ead5Smrg#line 168 "xkbparse.y"
17316930ead5Smrg                        { (yyval.file)= rtrnValue= (yyvsp[0].file); }
17326930ead5Smrg#line 1733 "xkbparse.c"
1733690143ccSmrg    break;
1734690143ccSmrg
17356930ead5Smrg  case 3: /* XkbFile: XkbMapConfigList  */
17366930ead5Smrg#line 170 "xkbparse.y"
17376930ead5Smrg                        { (yyval.file)= rtrnValue= (yyvsp[0].file);  }
17386930ead5Smrg#line 1739 "xkbparse.c"
1739690143ccSmrg    break;
1740690143ccSmrg
17416930ead5Smrg  case 4: /* XkbFile: XkbConfig  */
17426930ead5Smrg#line 172 "xkbparse.y"
17436930ead5Smrg                        { (yyval.file)= rtrnValue= (yyvsp[0].file); }
17446930ead5Smrg#line 1745 "xkbparse.c"
1745690143ccSmrg    break;
1746690143ccSmrg
17476930ead5Smrg  case 5: /* XkbCompMapList: XkbCompMapList XkbCompositeMap  */
17486930ead5Smrg#line 176 "xkbparse.y"
17496930ead5Smrg                        { (yyval.file)= (XkbFile *)AppendStmt(&(yyvsp[-1].file)->common,&(yyvsp[0].file)->common); }
17506930ead5Smrg#line 1751 "xkbparse.c"
1751690143ccSmrg    break;
1752690143ccSmrg
17536930ead5Smrg  case 6: /* XkbCompMapList: XkbCompositeMap  */
17546930ead5Smrg#line 178 "xkbparse.y"
17556930ead5Smrg                        { (yyval.file)= (yyvsp[0].file); }
17566930ead5Smrg#line 1757 "xkbparse.c"
1757690143ccSmrg    break;
1758690143ccSmrg
17596930ead5Smrg  case 7: /* XkbCompositeMap: OptFlags XkbCompositeType OptMapName OBRACE XkbMapConfigList CBRACE SEMI  */
17606930ead5Smrg#line 184 "xkbparse.y"
17616930ead5Smrg                        { (yyval.file)= CreateXKBFile((yyvsp[-5].uval),(yyvsp[-4].str),&(yyvsp[-2].file)->common,(yyvsp[-6].uval)); }
17626930ead5Smrg#line 1763 "xkbparse.c"
1763690143ccSmrg    break;
1764690143ccSmrg
17656930ead5Smrg  case 8: /* XkbCompositeType: XKB_KEYMAP  */
17666930ead5Smrg#line 187 "xkbparse.y"
17676930ead5Smrg                                        { (yyval.uval)= XkmKeymapFile; }
17686930ead5Smrg#line 1769 "xkbparse.c"
1769690143ccSmrg    break;
1770690143ccSmrg
17716930ead5Smrg  case 9: /* XkbCompositeType: XKB_SEMANTICS  */
17726930ead5Smrg#line 188 "xkbparse.y"
17736930ead5Smrg                                        { (yyval.uval)= XkmSemanticsFile; }
17746930ead5Smrg#line 1775 "xkbparse.c"
1775690143ccSmrg    break;
1776690143ccSmrg
17776930ead5Smrg  case 10: /* XkbCompositeType: XKB_LAYOUT  */
17786930ead5Smrg#line 189 "xkbparse.y"
17796930ead5Smrg                                        { (yyval.uval)= XkmLayoutFile; }
17806930ead5Smrg#line 1781 "xkbparse.c"
1781690143ccSmrg    break;
1782690143ccSmrg
17836930ead5Smrg  case 11: /* XkbMapConfigList: XkbMapConfigList XkbMapConfig  */
17846930ead5Smrg#line 193 "xkbparse.y"
17856930ead5Smrg                        { (yyval.file)= (XkbFile *)AppendStmt(&(yyvsp[-1].file)->common,&(yyvsp[0].file)->common); }
17866930ead5Smrg#line 1787 "xkbparse.c"
1787690143ccSmrg    break;
1788690143ccSmrg
17896930ead5Smrg  case 12: /* XkbMapConfigList: XkbMapConfig  */
17906930ead5Smrg#line 195 "xkbparse.y"
17916930ead5Smrg                        { (yyval.file)= (yyvsp[0].file); }
17926930ead5Smrg#line 1793 "xkbparse.c"
1793690143ccSmrg    break;
1794690143ccSmrg
17956930ead5Smrg  case 13: /* XkbMapConfig: OptFlags FileType OptMapName OBRACE DeclList CBRACE SEMI  */
17966930ead5Smrg#line 201 "xkbparse.y"
17976930ead5Smrg                        { (yyval.file)= CreateXKBFile((yyvsp[-5].uval),(yyvsp[-4].str),(yyvsp[-2].any),(yyvsp[-6].uval)); }
17986930ead5Smrg#line 1799 "xkbparse.c"
1799690143ccSmrg    break;
1800690143ccSmrg
18016930ead5Smrg  case 14: /* XkbConfig: OptFlags FileType OptMapName DeclList  */
18026930ead5Smrg#line 205 "xkbparse.y"
18036930ead5Smrg                        { (yyval.file)= CreateXKBFile((yyvsp[-2].uval),(yyvsp[-1].str),(yyvsp[0].any),(yyvsp[-3].uval)); }
18046930ead5Smrg#line 1805 "xkbparse.c"
1805690143ccSmrg    break;
1806690143ccSmrg
18076930ead5Smrg  case 15: /* FileType: XKB_KEYCODES  */
18086930ead5Smrg#line 209 "xkbparse.y"
18096930ead5Smrg                                                { (yyval.uval)= XkmKeyNamesIndex; }
18106930ead5Smrg#line 1811 "xkbparse.c"
1811690143ccSmrg    break;
1812690143ccSmrg
18136930ead5Smrg  case 16: /* FileType: XKB_TYPES  */
18146930ead5Smrg#line 210 "xkbparse.y"
18156930ead5Smrg                                                { (yyval.uval)= XkmTypesIndex; }
18166930ead5Smrg#line 1817 "xkbparse.c"
1817690143ccSmrg    break;
1818690143ccSmrg
18196930ead5Smrg  case 17: /* FileType: XKB_COMPATMAP  */
18206930ead5Smrg#line 211 "xkbparse.y"
18216930ead5Smrg                                                { (yyval.uval)= XkmCompatMapIndex; }
18226930ead5Smrg#line 1823 "xkbparse.c"
1823690143ccSmrg    break;
1824690143ccSmrg
18256930ead5Smrg  case 18: /* FileType: XKB_SYMBOLS  */
18266930ead5Smrg#line 212 "xkbparse.y"
18276930ead5Smrg                                                { (yyval.uval)= XkmSymbolsIndex; }
18286930ead5Smrg#line 1829 "xkbparse.c"
1829690143ccSmrg    break;
1830690143ccSmrg
18316930ead5Smrg  case 19: /* FileType: XKB_GEOMETRY  */
18326930ead5Smrg#line 213 "xkbparse.y"
18336930ead5Smrg                                                { (yyval.uval)= XkmGeometryIndex; }
18346930ead5Smrg#line 1835 "xkbparse.c"
1835690143ccSmrg    break;
1836690143ccSmrg
18376930ead5Smrg  case 20: /* OptFlags: Flags  */
18386930ead5Smrg#line 216 "xkbparse.y"
18396930ead5Smrg                                                { (yyval.uval)= (yyvsp[0].uval); }
18406930ead5Smrg#line 1841 "xkbparse.c"
1841690143ccSmrg    break;
1842690143ccSmrg
18436930ead5Smrg  case 21: /* OptFlags: %empty  */
18446930ead5Smrg#line 217 "xkbparse.y"
18456930ead5Smrg                                                { (yyval.uval)= 0; }
18466930ead5Smrg#line 1847 "xkbparse.c"
1847690143ccSmrg    break;
1848690143ccSmrg
18496930ead5Smrg  case 22: /* Flags: Flags Flag  */
18506930ead5Smrg#line 220 "xkbparse.y"
18516930ead5Smrg                                                { (yyval.uval)= (((yyvsp[-1].uval))|((yyvsp[0].uval))); }
18526930ead5Smrg#line 1853 "xkbparse.c"
1853690143ccSmrg    break;
1854690143ccSmrg
18556930ead5Smrg  case 23: /* Flags: Flag  */
18566930ead5Smrg#line 221 "xkbparse.y"
18576930ead5Smrg                                                { (yyval.uval)= (yyvsp[0].uval); }
18586930ead5Smrg#line 1859 "xkbparse.c"
1859690143ccSmrg    break;
1860690143ccSmrg
18616930ead5Smrg  case 24: /* Flag: PARTIAL  */
18626930ead5Smrg#line 224 "xkbparse.y"
18636930ead5Smrg                                                { (yyval.uval)= XkbLC_Partial; }
18646930ead5Smrg#line 1865 "xkbparse.c"
1865690143ccSmrg    break;
1866690143ccSmrg
18676930ead5Smrg  case 25: /* Flag: DEFAULT  */
18686930ead5Smrg#line 225 "xkbparse.y"
18696930ead5Smrg                                                { (yyval.uval)= XkbLC_Default; }
18706930ead5Smrg#line 1871 "xkbparse.c"
1871690143ccSmrg    break;
1872690143ccSmrg
18736930ead5Smrg  case 26: /* Flag: HIDDEN  */
18746930ead5Smrg#line 226 "xkbparse.y"
18756930ead5Smrg                                                { (yyval.uval)= XkbLC_Hidden; }
18766930ead5Smrg#line 1877 "xkbparse.c"
1877690143ccSmrg    break;
1878690143ccSmrg
18796930ead5Smrg  case 27: /* Flag: ALPHANUMERIC_KEYS  */
18806930ead5Smrg#line 227 "xkbparse.y"
18816930ead5Smrg                                                { (yyval.uval)= XkbLC_AlphanumericKeys; }
18826930ead5Smrg#line 1883 "xkbparse.c"
1883690143ccSmrg    break;
1884690143ccSmrg
18856930ead5Smrg  case 28: /* Flag: MODIFIER_KEYS  */
18866930ead5Smrg#line 228 "xkbparse.y"
18876930ead5Smrg                                                { (yyval.uval)= XkbLC_ModifierKeys; }
18886930ead5Smrg#line 1889 "xkbparse.c"
1889690143ccSmrg    break;
1890690143ccSmrg
18916930ead5Smrg  case 29: /* Flag: KEYPAD_KEYS  */
18926930ead5Smrg#line 229 "xkbparse.y"
18936930ead5Smrg                                                { (yyval.uval)= XkbLC_KeypadKeys; }
18946930ead5Smrg#line 1895 "xkbparse.c"
1895690143ccSmrg    break;
1896690143ccSmrg
18976930ead5Smrg  case 30: /* Flag: FUNCTION_KEYS  */
18986930ead5Smrg#line 230 "xkbparse.y"
18996930ead5Smrg                                                { (yyval.uval)= XkbLC_FunctionKeys; }
19006930ead5Smrg#line 1901 "xkbparse.c"
1901690143ccSmrg    break;
1902690143ccSmrg
19036930ead5Smrg  case 31: /* Flag: ALTERNATE_GROUP  */
19046930ead5Smrg#line 231 "xkbparse.y"
19056930ead5Smrg                                                { (yyval.uval)= XkbLC_AlternateGroup; }
19066930ead5Smrg#line 1907 "xkbparse.c"
1907690143ccSmrg    break;
1908690143ccSmrg
19096930ead5Smrg  case 32: /* DeclList: DeclList Decl  */
19106930ead5Smrg#line 235 "xkbparse.y"
19116930ead5Smrg                        { (yyval.any)= AppendStmt((yyvsp[-1].any),(yyvsp[0].any)); }
19126930ead5Smrg#line 1913 "xkbparse.c"
1913690143ccSmrg    break;
1914690143ccSmrg
19156930ead5Smrg  case 33: /* DeclList: %empty  */
19166930ead5Smrg#line 236 "xkbparse.y"
19176930ead5Smrg                        { (yyval.any)= NULL; }
19186930ead5Smrg#line 1919 "xkbparse.c"
1919690143ccSmrg    break;
1920690143ccSmrg
19216930ead5Smrg  case 34: /* Decl: OptMergeMode VarDecl  */
19226930ead5Smrg#line 240 "xkbparse.y"
19236930ead5Smrg                        {
1924f757b1e9Smrg			    (yyvsp[0].var)->merge= StmtSetMerge(&(yyvsp[0].var)->common,(yyvsp[-1].uval));
1925f757b1e9Smrg			    (yyval.any)= &(yyvsp[0].var)->common;
1926f46a6179Smrg			}
19276930ead5Smrg#line 1928 "xkbparse.c"
1928690143ccSmrg    break;
1929690143ccSmrg
19306930ead5Smrg  case 35: /* Decl: OptMergeMode VModDecl  */
19316930ead5Smrg#line 245 "xkbparse.y"
19326930ead5Smrg                        {
1933f757b1e9Smrg			    (yyvsp[0].vmod)->merge= StmtSetMerge(&(yyvsp[0].vmod)->common,(yyvsp[-1].uval));
1934f757b1e9Smrg			    (yyval.any)= &(yyvsp[0].vmod)->common;
1935f46a6179Smrg			}
19366930ead5Smrg#line 1937 "xkbparse.c"
1937690143ccSmrg    break;
1938690143ccSmrg
19396930ead5Smrg  case 36: /* Decl: OptMergeMode InterpretDecl  */
19406930ead5Smrg#line 250 "xkbparse.y"
19416930ead5Smrg                        {
1942f757b1e9Smrg			    (yyvsp[0].interp)->merge= StmtSetMerge(&(yyvsp[0].interp)->common,(yyvsp[-1].uval));
1943f757b1e9Smrg			    (yyval.any)= &(yyvsp[0].interp)->common;
1944f46a6179Smrg			}
19456930ead5Smrg#line 1946 "xkbparse.c"
1946690143ccSmrg    break;
1947690143ccSmrg
19486930ead5Smrg  case 37: /* Decl: OptMergeMode KeyNameDecl  */
19496930ead5Smrg#line 255 "xkbparse.y"
19506930ead5Smrg                        {
1951f757b1e9Smrg			    (yyvsp[0].keyName)->merge= StmtSetMerge(&(yyvsp[0].keyName)->common,(yyvsp[-1].uval));
1952f757b1e9Smrg			    (yyval.any)= &(yyvsp[0].keyName)->common;
1953f46a6179Smrg			}
19546930ead5Smrg#line 1955 "xkbparse.c"
1955690143ccSmrg    break;
1956690143ccSmrg
19576930ead5Smrg  case 38: /* Decl: OptMergeMode KeyAliasDecl  */
19586930ead5Smrg#line 260 "xkbparse.y"
19596930ead5Smrg                        {
1960f757b1e9Smrg			    (yyvsp[0].keyAlias)->merge= StmtSetMerge(&(yyvsp[0].keyAlias)->common,(yyvsp[-1].uval));
1961f757b1e9Smrg			    (yyval.any)= &(yyvsp[0].keyAlias)->common;
1962f46a6179Smrg			}
19636930ead5Smrg#line 1964 "xkbparse.c"
1964690143ccSmrg    break;
1965690143ccSmrg
19666930ead5Smrg  case 39: /* Decl: OptMergeMode KeyTypeDecl  */
19676930ead5Smrg#line 265 "xkbparse.y"
19686930ead5Smrg                        {
1969f757b1e9Smrg			    (yyvsp[0].keyType)->merge= StmtSetMerge(&(yyvsp[0].keyType)->common,(yyvsp[-1].uval));
1970f757b1e9Smrg			    (yyval.any)= &(yyvsp[0].keyType)->common;
1971f46a6179Smrg			}
19726930ead5Smrg#line 1973 "xkbparse.c"
1973690143ccSmrg    break;
1974690143ccSmrg
19756930ead5Smrg  case 40: /* Decl: OptMergeMode SymbolsDecl  */
19766930ead5Smrg#line 270 "xkbparse.y"
19776930ead5Smrg                        {
1978f757b1e9Smrg			    (yyvsp[0].syms)->merge= StmtSetMerge(&(yyvsp[0].syms)->common,(yyvsp[-1].uval));
1979f757b1e9Smrg			    (yyval.any)= &(yyvsp[0].syms)->common;
1980f46a6179Smrg			}
19816930ead5Smrg#line 1982 "xkbparse.c"
1982690143ccSmrg    break;
1983690143ccSmrg
19846930ead5Smrg  case 41: /* Decl: OptMergeMode ModMapDecl  */
19856930ead5Smrg#line 275 "xkbparse.y"
19866930ead5Smrg                        {
1987f757b1e9Smrg			    (yyvsp[0].modMask)->merge= StmtSetMerge(&(yyvsp[0].modMask)->common,(yyvsp[-1].uval));
1988f757b1e9Smrg			    (yyval.any)= &(yyvsp[0].modMask)->common;
1989f46a6179Smrg			}
19906930ead5Smrg#line 1991 "xkbparse.c"
1991690143ccSmrg    break;
1992690143ccSmrg
19936930ead5Smrg  case 42: /* Decl: OptMergeMode GroupCompatDecl  */
19946930ead5Smrg#line 280 "xkbparse.y"
19956930ead5Smrg                        {
1996f757b1e9Smrg			    (yyvsp[0].groupCompat)->merge= StmtSetMerge(&(yyvsp[0].groupCompat)->common,(yyvsp[-1].uval));
1997f757b1e9Smrg			    (yyval.any)= &(yyvsp[0].groupCompat)->common;
1998f46a6179Smrg			}
19996930ead5Smrg#line 2000 "xkbparse.c"
2000690143ccSmrg    break;
2001690143ccSmrg
20026930ead5Smrg  case 43: /* Decl: OptMergeMode IndicatorMapDecl  */
20036930ead5Smrg#line 285 "xkbparse.y"
20046930ead5Smrg                        {
2005f757b1e9Smrg			    (yyvsp[0].ledMap)->merge= StmtSetMerge(&(yyvsp[0].ledMap)->common,(yyvsp[-1].uval));
2006f757b1e9Smrg			    (yyval.any)= &(yyvsp[0].ledMap)->common;
2007f46a6179Smrg			}
20086930ead5Smrg#line 2009 "xkbparse.c"
2009690143ccSmrg    break;
2010690143ccSmrg
20116930ead5Smrg  case 44: /* Decl: OptMergeMode IndicatorNameDecl  */
20126930ead5Smrg#line 290 "xkbparse.y"
20136930ead5Smrg                        {
2014f757b1e9Smrg			    (yyvsp[0].ledName)->merge= StmtSetMerge(&(yyvsp[0].ledName)->common,(yyvsp[-1].uval));
2015f757b1e9Smrg			    (yyval.any)= &(yyvsp[0].ledName)->common;
2016f46a6179Smrg			}
20176930ead5Smrg#line 2018 "xkbparse.c"
2018690143ccSmrg    break;
2019690143ccSmrg
20206930ead5Smrg  case 45: /* Decl: OptMergeMode ShapeDecl  */
20216930ead5Smrg#line 295 "xkbparse.y"
20226930ead5Smrg                        {
2023f757b1e9Smrg			    (yyvsp[0].shape)->merge= StmtSetMerge(&(yyvsp[0].shape)->common,(yyvsp[-1].uval));
2024f757b1e9Smrg			    (yyval.any)= &(yyvsp[0].shape)->common;
2025f46a6179Smrg			}
20266930ead5Smrg#line 2027 "xkbparse.c"
2027690143ccSmrg    break;
2028690143ccSmrg
20296930ead5Smrg  case 46: /* Decl: OptMergeMode SectionDecl  */
20306930ead5Smrg#line 300 "xkbparse.y"
20316930ead5Smrg                        {
2032f757b1e9Smrg			    (yyvsp[0].section)->merge= StmtSetMerge(&(yyvsp[0].section)->common,(yyvsp[-1].uval));
2033f757b1e9Smrg			    (yyval.any)= &(yyvsp[0].section)->common;
2034f46a6179Smrg			}
20356930ead5Smrg#line 2036 "xkbparse.c"
2036690143ccSmrg    break;
2037690143ccSmrg
20386930ead5Smrg  case 47: /* Decl: OptMergeMode DoodadDecl  */
20396930ead5Smrg#line 305 "xkbparse.y"
20406930ead5Smrg                        {
2041f757b1e9Smrg			    (yyvsp[0].doodad)->merge= StmtSetMerge(&(yyvsp[0].doodad)->common,(yyvsp[-1].uval));
2042f757b1e9Smrg			    (yyval.any)= &(yyvsp[0].doodad)->common;
2043f46a6179Smrg			}
20446930ead5Smrg#line 2045 "xkbparse.c"
2045690143ccSmrg    break;
2046690143ccSmrg
20476930ead5Smrg  case 48: /* Decl: MergeMode STRING  */
20486930ead5Smrg#line 310 "xkbparse.y"
20496930ead5Smrg                        {
2050f757b1e9Smrg			    if ((yyvsp[-1].uval)==MergeAltForm) {
2051f46a6179Smrg				yyerror("cannot use 'alternate' to include other maps");
2052690143ccSmrg				(yyval.any)= &IncludeCreate(scanBuf,MergeDefault)->common;
2053f46a6179Smrg			    }
2054f46a6179Smrg			    else {
2055f757b1e9Smrg				(yyval.any)= &IncludeCreate(scanBuf,(yyvsp[-1].uval))->common;
2056f46a6179Smrg			    }
2057f46a6179Smrg                        }
20586930ead5Smrg#line 2059 "xkbparse.c"
2059690143ccSmrg    break;
2060690143ccSmrg
20616930ead5Smrg  case 49: /* VarDecl: Lhs EQUALS Expr SEMI  */
20626930ead5Smrg#line 322 "xkbparse.y"
20636930ead5Smrg                        { (yyval.var)= VarCreate((yyvsp[-3].expr),(yyvsp[-1].expr)); }
20646930ead5Smrg#line 2065 "xkbparse.c"
2065690143ccSmrg    break;
2066690143ccSmrg
20676930ead5Smrg  case 50: /* VarDecl: Ident SEMI  */
20686930ead5Smrg#line 324 "xkbparse.y"
20696930ead5Smrg                        { (yyval.var)= BoolVarCreate((yyvsp[-1].sval),1); }
20706930ead5Smrg#line 2071 "xkbparse.c"
2071690143ccSmrg    break;
2072690143ccSmrg
20736930ead5Smrg  case 51: /* VarDecl: EXCLAM Ident SEMI  */
20746930ead5Smrg#line 326 "xkbparse.y"
20756930ead5Smrg                        { (yyval.var)= BoolVarCreate((yyvsp[-1].sval),0); }
20766930ead5Smrg#line 2077 "xkbparse.c"
2077690143ccSmrg    break;
2078690143ccSmrg
20796930ead5Smrg  case 52: /* KeyNameDecl: KeyName EQUALS Expr SEMI  */
20806930ead5Smrg#line 330 "xkbparse.y"
20816930ead5Smrg                        {
2082f46a6179Smrg			    KeycodeDef *def;
2083f46a6179Smrg
2084f757b1e9Smrg			    def= KeycodeCreate((yyvsp[-3].str),(yyvsp[-1].expr));
2085f757b1e9Smrg			    if ((yyvsp[-3].str))
2086f757b1e9Smrg				free((yyvsp[-3].str));
2087690143ccSmrg			    (yyval.keyName)= def;
2088f46a6179Smrg			}
20896930ead5Smrg#line 2090 "xkbparse.c"
2090690143ccSmrg    break;
2091690143ccSmrg
20926930ead5Smrg  case 53: /* KeyAliasDecl: ALIAS KeyName EQUALS KeyName SEMI  */
20936930ead5Smrg#line 341 "xkbparse.y"
20946930ead5Smrg                        {
2095f46a6179Smrg			    KeyAliasDef	*def;
2096bfe6082cSmrg			    def= KeyAliasCreate((yyvsp[-3].str),(yyvsp[-1].str));
2097f757b1e9Smrg			    if ((yyvsp[-3].str))	free((yyvsp[-3].str));
2098f757b1e9Smrg			    if ((yyvsp[-1].str))	free((yyvsp[-1].str));
2099690143ccSmrg			    (yyval.keyAlias)= def;
2100f46a6179Smrg			}
21016930ead5Smrg#line 2102 "xkbparse.c"
2102690143ccSmrg    break;
2103690143ccSmrg
21046930ead5Smrg  case 54: /* VModDecl: VIRTUAL_MODS VModDefList SEMI  */
21056930ead5Smrg#line 351 "xkbparse.y"
21066930ead5Smrg                        { (yyval.vmod)= (yyvsp[-1].vmod); }
21076930ead5Smrg#line 2108 "xkbparse.c"
2108690143ccSmrg    break;
2109690143ccSmrg
21106930ead5Smrg  case 55: /* VModDefList: VModDefList COMMA VModDef  */
21116930ead5Smrg#line 355 "xkbparse.y"
21126930ead5Smrg                        { (yyval.vmod)= (VModDef *)AppendStmt(&(yyvsp[-2].vmod)->common,&(yyvsp[0].vmod)->common); }
21136930ead5Smrg#line 2114 "xkbparse.c"
2114690143ccSmrg    break;
2115690143ccSmrg
21166930ead5Smrg  case 56: /* VModDefList: VModDef  */
21176930ead5Smrg#line 357 "xkbparse.y"
21186930ead5Smrg                        { (yyval.vmod)= (yyvsp[0].vmod); }
21196930ead5Smrg#line 2120 "xkbparse.c"
2120690143ccSmrg    break;
2121690143ccSmrg
21226930ead5Smrg  case 57: /* VModDef: Ident  */
21236930ead5Smrg#line 361 "xkbparse.y"
21246930ead5Smrg                        { (yyval.vmod)= VModCreate((yyvsp[0].sval),NULL); }
21256930ead5Smrg#line 2126 "xkbparse.c"
2126690143ccSmrg    break;
2127690143ccSmrg
21286930ead5Smrg  case 58: /* VModDef: Ident EQUALS Expr  */
21296930ead5Smrg#line 363 "xkbparse.y"
21306930ead5Smrg                        { (yyval.vmod)= VModCreate((yyvsp[-2].sval),(yyvsp[0].expr)); }
21316930ead5Smrg#line 2132 "xkbparse.c"
2132690143ccSmrg    break;
2133690143ccSmrg
21346930ead5Smrg  case 59: /* InterpretDecl: INTERPRET InterpretMatch OBRACE VarDeclList CBRACE SEMI  */
21356930ead5Smrg#line 369 "xkbparse.y"
21366930ead5Smrg                        {
2137f757b1e9Smrg			    (yyvsp[-4].interp)->def= (yyvsp[-2].var);
2138f757b1e9Smrg			    (yyval.interp)= (yyvsp[-4].interp);
2139f46a6179Smrg			}
21406930ead5Smrg#line 2141 "xkbparse.c"
2141690143ccSmrg    break;
2142690143ccSmrg
21436930ead5Smrg  case 60: /* InterpretMatch: KeySym PLUS Expr  */
21446930ead5Smrg#line 376 "xkbparse.y"
21456930ead5Smrg                        { (yyval.interp)= InterpCreate((yyvsp[-2].str), (yyvsp[0].expr)); }
21466930ead5Smrg#line 2147 "xkbparse.c"
2147690143ccSmrg    break;
2148690143ccSmrg
21496930ead5Smrg  case 61: /* InterpretMatch: KeySym  */
21506930ead5Smrg#line 378 "xkbparse.y"
21516930ead5Smrg                        { (yyval.interp)= InterpCreate((yyvsp[0].str), NULL); }
21526930ead5Smrg#line 2153 "xkbparse.c"
2153690143ccSmrg    break;
2154690143ccSmrg
21556930ead5Smrg  case 62: /* VarDeclList: VarDeclList VarDecl  */
21566930ead5Smrg#line 382 "xkbparse.y"
21576930ead5Smrg                        { (yyval.var)= (VarDef *)AppendStmt(&(yyvsp[-1].var)->common,&(yyvsp[0].var)->common); }
21586930ead5Smrg#line 2159 "xkbparse.c"
2159690143ccSmrg    break;
2160690143ccSmrg
21616930ead5Smrg  case 63: /* VarDeclList: VarDecl  */
21626930ead5Smrg#line 384 "xkbparse.y"
21636930ead5Smrg                        { (yyval.var)= (yyvsp[0].var); }
21646930ead5Smrg#line 2165 "xkbparse.c"
2165690143ccSmrg    break;
2166690143ccSmrg
21676930ead5Smrg  case 64: /* KeyTypeDecl: TYPE String OBRACE VarDeclList CBRACE SEMI  */
21686930ead5Smrg#line 390 "xkbparse.y"
21696930ead5Smrg                        { (yyval.keyType)= KeyTypeCreate((yyvsp[-4].sval),(yyvsp[-2].var)); }
21706930ead5Smrg#line 2171 "xkbparse.c"
2171690143ccSmrg    break;
2172690143ccSmrg
21736930ead5Smrg  case 65: /* SymbolsDecl: KEY KeyName OBRACE SymbolsBody CBRACE SEMI  */
21746930ead5Smrg#line 396 "xkbparse.y"
21756930ead5Smrg                        { (yyval.syms)= SymbolsCreate((yyvsp[-4].str),(ExprDef *)(yyvsp[-2].var)); }
21766930ead5Smrg#line 2177 "xkbparse.c"
2177690143ccSmrg    break;
2178690143ccSmrg
21796930ead5Smrg  case 66: /* SymbolsBody: SymbolsBody COMMA SymbolsVarDecl  */
21806930ead5Smrg#line 400 "xkbparse.y"
21816930ead5Smrg                        { (yyval.var)= (VarDef *)AppendStmt(&(yyvsp[-2].var)->common,&(yyvsp[0].var)->common); }
21826930ead5Smrg#line 2183 "xkbparse.c"
2183690143ccSmrg    break;
2184690143ccSmrg
21856930ead5Smrg  case 67: /* SymbolsBody: SymbolsVarDecl  */
21866930ead5Smrg#line 402 "xkbparse.y"
21876930ead5Smrg                        { (yyval.var)= (yyvsp[0].var); }
21886930ead5Smrg#line 2189 "xkbparse.c"
2189690143ccSmrg    break;
2190690143ccSmrg
21916930ead5Smrg  case 68: /* SymbolsBody: %empty  */
21926930ead5Smrg#line 403 "xkbparse.y"
21936930ead5Smrg                        { (yyval.var)= NULL; }
21946930ead5Smrg#line 2195 "xkbparse.c"
2195690143ccSmrg    break;
2196690143ccSmrg
21976930ead5Smrg  case 69: /* SymbolsVarDecl: Lhs EQUALS Expr  */
21986930ead5Smrg#line 407 "xkbparse.y"
21996930ead5Smrg                        { (yyval.var)= VarCreate((yyvsp[-2].expr),(yyvsp[0].expr)); }
22006930ead5Smrg#line 2201 "xkbparse.c"
2201690143ccSmrg    break;
2202690143ccSmrg
22036930ead5Smrg  case 70: /* SymbolsVarDecl: Lhs EQUALS ArrayInit  */
22046930ead5Smrg#line 409 "xkbparse.y"
22056930ead5Smrg                        { (yyval.var)= VarCreate((yyvsp[-2].expr),(yyvsp[0].expr)); }
22066930ead5Smrg#line 2207 "xkbparse.c"
2207690143ccSmrg    break;
2208690143ccSmrg
22096930ead5Smrg  case 71: /* SymbolsVarDecl: Ident  */
22106930ead5Smrg#line 411 "xkbparse.y"
22116930ead5Smrg                        { (yyval.var)= BoolVarCreate((yyvsp[0].sval),1); }
22126930ead5Smrg#line 2213 "xkbparse.c"
2213690143ccSmrg    break;
2214690143ccSmrg
22156930ead5Smrg  case 72: /* SymbolsVarDecl: EXCLAM Ident  */
22166930ead5Smrg#line 413 "xkbparse.y"
22176930ead5Smrg                        { (yyval.var)= BoolVarCreate((yyvsp[0].sval),0); }
22186930ead5Smrg#line 2219 "xkbparse.c"
2219690143ccSmrg    break;
2220690143ccSmrg
22216930ead5Smrg  case 73: /* SymbolsVarDecl: ArrayInit  */
22226930ead5Smrg#line 415 "xkbparse.y"
22236930ead5Smrg                        { (yyval.var)= VarCreate(NULL,(yyvsp[0].expr)); }
22246930ead5Smrg#line 2225 "xkbparse.c"
2225690143ccSmrg    break;
2226690143ccSmrg
22276930ead5Smrg  case 74: /* ArrayInit: OBRACKET OptKeySymList CBRACKET  */
22286930ead5Smrg#line 419 "xkbparse.y"
22296930ead5Smrg                        { (yyval.expr)= (yyvsp[-1].expr); }
22306930ead5Smrg#line 2231 "xkbparse.c"
2231690143ccSmrg    break;
2232690143ccSmrg
22336930ead5Smrg  case 75: /* ArrayInit: OBRACKET ActionList CBRACKET  */
22346930ead5Smrg#line 421 "xkbparse.y"
22356930ead5Smrg                        { (yyval.expr)= ExprCreateUnary(ExprActionList,TypeAction,(yyvsp[-1].expr)); }
22366930ead5Smrg#line 2237 "xkbparse.c"
2237690143ccSmrg    break;
2238690143ccSmrg
22396930ead5Smrg  case 76: /* GroupCompatDecl: GROUP Integer EQUALS Expr SEMI  */
22406930ead5Smrg#line 425 "xkbparse.y"
22416930ead5Smrg                        { (yyval.groupCompat)= GroupCompatCreate((yyvsp[-3].ival),(yyvsp[-1].expr)); }
22426930ead5Smrg#line 2243 "xkbparse.c"
2243690143ccSmrg    break;
2244690143ccSmrg
22456930ead5Smrg  case 77: /* ModMapDecl: MODIFIER_MAP Ident OBRACE ExprList CBRACE SEMI  */
22466930ead5Smrg#line 429 "xkbparse.y"
22476930ead5Smrg                        { (yyval.modMask)= ModMapCreate((yyvsp[-4].sval),(yyvsp[-2].expr)); }
22486930ead5Smrg#line 2249 "xkbparse.c"
2249690143ccSmrg    break;
2250690143ccSmrg
22516930ead5Smrg  case 78: /* IndicatorMapDecl: INDICATOR String OBRACE VarDeclList CBRACE SEMI  */
22526930ead5Smrg#line 433 "xkbparse.y"
22536930ead5Smrg                        { (yyval.ledMap)= IndicatorMapCreate((yyvsp[-4].sval),(yyvsp[-2].var)); }
22546930ead5Smrg#line 2255 "xkbparse.c"
2255690143ccSmrg    break;
2256690143ccSmrg
22576930ead5Smrg  case 79: /* IndicatorNameDecl: INDICATOR Integer EQUALS Expr SEMI  */
22586930ead5Smrg#line 437 "xkbparse.y"
22596930ead5Smrg                        { (yyval.ledName)= IndicatorNameCreate((yyvsp[-3].ival),(yyvsp[-1].expr),False); }
22606930ead5Smrg#line 2261 "xkbparse.c"
2261690143ccSmrg    break;
2262690143ccSmrg
22636930ead5Smrg  case 80: /* IndicatorNameDecl: VIRTUAL INDICATOR Integer EQUALS Expr SEMI  */
22646930ead5Smrg#line 439 "xkbparse.y"
22656930ead5Smrg                        { (yyval.ledName)= IndicatorNameCreate((yyvsp[-3].ival),(yyvsp[-1].expr),True); }
22666930ead5Smrg#line 2267 "xkbparse.c"
2267690143ccSmrg    break;
2268690143ccSmrg
22696930ead5Smrg  case 81: /* ShapeDecl: SHAPE String OBRACE OutlineList CBRACE SEMI  */
22706930ead5Smrg#line 443 "xkbparse.y"
22716930ead5Smrg                        { (yyval.shape)= ShapeDeclCreate((yyvsp[-4].sval),(OutlineDef *)&(yyvsp[-2].outline)->common); }
22726930ead5Smrg#line 2273 "xkbparse.c"
2273690143ccSmrg    break;
2274690143ccSmrg
22756930ead5Smrg  case 82: /* ShapeDecl: SHAPE String OBRACE CoordList CBRACE SEMI  */
22766930ead5Smrg#line 445 "xkbparse.y"
22776930ead5Smrg                        {
2278f46a6179Smrg			    OutlineDef *outlines;
2279f757b1e9Smrg			    outlines= OutlineCreate(None,(yyvsp[-2].expr));
2280f757b1e9Smrg			    (yyval.shape)= ShapeDeclCreate((yyvsp[-4].sval),outlines);
2281f46a6179Smrg			}
22826930ead5Smrg#line 2283 "xkbparse.c"
2283690143ccSmrg    break;
2284690143ccSmrg
22856930ead5Smrg  case 83: /* SectionDecl: SECTION String OBRACE SectionBody CBRACE SEMI  */
22866930ead5Smrg#line 453 "xkbparse.y"
22876930ead5Smrg                        { (yyval.section)= SectionDeclCreate((yyvsp[-4].sval),(yyvsp[-2].row)); }
22886930ead5Smrg#line 2289 "xkbparse.c"
2289690143ccSmrg    break;
2290690143ccSmrg
22916930ead5Smrg  case 84: /* SectionBody: SectionBody SectionBodyItem  */
22926930ead5Smrg#line 457 "xkbparse.y"
22936930ead5Smrg                        { (yyval.row)=(RowDef *)AppendStmt(&(yyvsp[-1].row)->common,&(yyvsp[0].row)->common);}
22946930ead5Smrg#line 2295 "xkbparse.c"
2295690143ccSmrg    break;
2296690143ccSmrg
22976930ead5Smrg  case 85: /* SectionBody: SectionBodyItem  */
22986930ead5Smrg#line 459 "xkbparse.y"
22996930ead5Smrg                        { (yyval.row)= (yyvsp[0].row); }
23006930ead5Smrg#line 2301 "xkbparse.c"
2301690143ccSmrg    break;
2302690143ccSmrg
23036930ead5Smrg  case 86: /* SectionBodyItem: ROW OBRACE RowBody CBRACE SEMI  */
23046930ead5Smrg#line 463 "xkbparse.y"
23056930ead5Smrg                        { (yyval.row)= RowDeclCreate((yyvsp[-2].key)); }
23066930ead5Smrg#line 2307 "xkbparse.c"
2307690143ccSmrg    break;
2308690143ccSmrg
23096930ead5Smrg  case 87: /* SectionBodyItem: VarDecl  */
23106930ead5Smrg#line 465 "xkbparse.y"
23116930ead5Smrg                        { (yyval.row)= (RowDef *)(yyvsp[0].var); }
23126930ead5Smrg#line 2313 "xkbparse.c"
2313690143ccSmrg    break;
2314690143ccSmrg
23156930ead5Smrg  case 88: /* SectionBodyItem: DoodadDecl  */
23166930ead5Smrg#line 467 "xkbparse.y"
23176930ead5Smrg                        { (yyval.row)= (RowDef *)(yyvsp[0].doodad); }
23186930ead5Smrg#line 2319 "xkbparse.c"
2319690143ccSmrg    break;
2320690143ccSmrg
23216930ead5Smrg  case 89: /* SectionBodyItem: IndicatorMapDecl  */
23226930ead5Smrg#line 469 "xkbparse.y"
23236930ead5Smrg                        { (yyval.row)= (RowDef *)(yyvsp[0].ledMap); }
23246930ead5Smrg#line 2325 "xkbparse.c"
2325690143ccSmrg    break;
2326690143ccSmrg
23276930ead5Smrg  case 90: /* SectionBodyItem: OverlayDecl  */
23286930ead5Smrg#line 471 "xkbparse.y"
23296930ead5Smrg                        { (yyval.row)= (RowDef *)(yyvsp[0].overlay); }
23306930ead5Smrg#line 2331 "xkbparse.c"
2331690143ccSmrg    break;
2332690143ccSmrg
23336930ead5Smrg  case 91: /* RowBody: RowBody RowBodyItem  */
23346930ead5Smrg#line 475 "xkbparse.y"
23356930ead5Smrg                        { (yyval.key)=(KeyDef *)AppendStmt(&(yyvsp[-1].key)->common,&(yyvsp[0].key)->common);}
23366930ead5Smrg#line 2337 "xkbparse.c"
2337690143ccSmrg    break;
2338690143ccSmrg
23396930ead5Smrg  case 92: /* RowBody: RowBodyItem  */
23406930ead5Smrg#line 477 "xkbparse.y"
23416930ead5Smrg                        { (yyval.key)= (yyvsp[0].key); }
23426930ead5Smrg#line 2343 "xkbparse.c"
2343690143ccSmrg    break;
2344690143ccSmrg
23456930ead5Smrg  case 93: /* RowBodyItem: KEYS OBRACE Keys CBRACE SEMI  */
23466930ead5Smrg#line 481 "xkbparse.y"
23476930ead5Smrg                        { (yyval.key)= (yyvsp[-2].key); }
23486930ead5Smrg#line 2349 "xkbparse.c"
2349690143ccSmrg    break;
2350690143ccSmrg
23516930ead5Smrg  case 94: /* RowBodyItem: VarDecl  */
23526930ead5Smrg#line 483 "xkbparse.y"
23536930ead5Smrg                        { (yyval.key)= (KeyDef *)(yyvsp[0].var); }
23546930ead5Smrg#line 2355 "xkbparse.c"
2355690143ccSmrg    break;
2356690143ccSmrg
23576930ead5Smrg  case 95: /* Keys: Keys COMMA Key  */
23586930ead5Smrg#line 487 "xkbparse.y"
23596930ead5Smrg                        { (yyval.key)=(KeyDef *)AppendStmt(&(yyvsp[-2].key)->common,&(yyvsp[0].key)->common);}
23606930ead5Smrg#line 2361 "xkbparse.c"
2361690143ccSmrg    break;
2362690143ccSmrg
23636930ead5Smrg  case 96: /* Keys: Key  */
23646930ead5Smrg#line 489 "xkbparse.y"
23656930ead5Smrg                        { (yyval.key)= (yyvsp[0].key); }
23666930ead5Smrg#line 2367 "xkbparse.c"
2367690143ccSmrg    break;
2368690143ccSmrg
23696930ead5Smrg  case 97: /* Key: KeyName  */
23706930ead5Smrg#line 493 "xkbparse.y"
23716930ead5Smrg                        { (yyval.key)= KeyDeclCreate((yyvsp[0].str),NULL); }
23726930ead5Smrg#line 2373 "xkbparse.c"
2373690143ccSmrg    break;
2374690143ccSmrg
23756930ead5Smrg  case 98: /* Key: OBRACE ExprList CBRACE  */
23766930ead5Smrg#line 495 "xkbparse.y"
23776930ead5Smrg                        { (yyval.key)= KeyDeclCreate(NULL,(yyvsp[-1].expr)); }
23786930ead5Smrg#line 2379 "xkbparse.c"
2379690143ccSmrg    break;
2380690143ccSmrg
23816930ead5Smrg  case 99: /* OverlayDecl: OVERLAY String OBRACE OverlayKeyList CBRACE SEMI  */
23826930ead5Smrg#line 499 "xkbparse.y"
23836930ead5Smrg                        { (yyval.overlay)= OverlayDeclCreate((yyvsp[-4].sval),(yyvsp[-2].olKey)); }
23846930ead5Smrg#line 2385 "xkbparse.c"
2385690143ccSmrg    break;
2386690143ccSmrg
23876930ead5Smrg  case 100: /* OverlayKeyList: OverlayKeyList COMMA OverlayKey  */
23886930ead5Smrg#line 503 "xkbparse.y"
23896930ead5Smrg                        {
2390690143ccSmrg			    (yyval.olKey)= (OverlayKeyDef *)
2391f757b1e9Smrg				AppendStmt(&(yyvsp[-2].olKey)->common,&(yyvsp[0].olKey)->common);
2392f46a6179Smrg			}
23936930ead5Smrg#line 2394 "xkbparse.c"
2394690143ccSmrg    break;
2395690143ccSmrg
23966930ead5Smrg  case 101: /* OverlayKeyList: OverlayKey  */
23976930ead5Smrg#line 508 "xkbparse.y"
23986930ead5Smrg                        { (yyval.olKey)= (yyvsp[0].olKey); }
23996930ead5Smrg#line 2400 "xkbparse.c"
2400690143ccSmrg    break;
2401690143ccSmrg
24026930ead5Smrg  case 102: /* OverlayKey: KeyName EQUALS KeyName  */
24036930ead5Smrg#line 512 "xkbparse.y"
24046930ead5Smrg                        { (yyval.olKey)= OverlayKeyCreate((yyvsp[-2].str),(yyvsp[0].str)); }
24056930ead5Smrg#line 2406 "xkbparse.c"
2406690143ccSmrg    break;
2407690143ccSmrg
24086930ead5Smrg  case 103: /* OutlineList: OutlineList COMMA OutlineInList  */
24096930ead5Smrg#line 516 "xkbparse.y"
24106930ead5Smrg                        { (yyval.outline)=(OutlineDef *)AppendStmt(&(yyvsp[-2].outline)->common,&(yyvsp[0].outline)->common);}
24116930ead5Smrg#line 2412 "xkbparse.c"
2412690143ccSmrg    break;
2413690143ccSmrg
24146930ead5Smrg  case 104: /* OutlineList: OutlineInList  */
24156930ead5Smrg#line 518 "xkbparse.y"
24166930ead5Smrg                        { (yyval.outline)= (yyvsp[0].outline); }
24176930ead5Smrg#line 2418 "xkbparse.c"
2418690143ccSmrg    break;
2419690143ccSmrg
24206930ead5Smrg  case 105: /* OutlineInList: OBRACE CoordList CBRACE  */
24216930ead5Smrg#line 522 "xkbparse.y"
24226930ead5Smrg                        { (yyval.outline)= OutlineCreate(None,(yyvsp[-1].expr)); }
24236930ead5Smrg#line 2424 "xkbparse.c"
2424690143ccSmrg    break;
2425690143ccSmrg
24266930ead5Smrg  case 106: /* OutlineInList: Ident EQUALS OBRACE CoordList CBRACE  */
24276930ead5Smrg#line 524 "xkbparse.y"
24286930ead5Smrg                        { (yyval.outline)= OutlineCreate((yyvsp[-4].sval),(yyvsp[-1].expr)); }
24296930ead5Smrg#line 2430 "xkbparse.c"
2430690143ccSmrg    break;
2431690143ccSmrg
24326930ead5Smrg  case 107: /* OutlineInList: Ident EQUALS Expr  */
24336930ead5Smrg#line 526 "xkbparse.y"
24346930ead5Smrg                        { (yyval.outline)= OutlineCreate((yyvsp[-2].sval),(yyvsp[0].expr)); }
24356930ead5Smrg#line 2436 "xkbparse.c"
2436690143ccSmrg    break;
2437690143ccSmrg
24386930ead5Smrg  case 108: /* CoordList: CoordList COMMA Coord  */
24396930ead5Smrg#line 530 "xkbparse.y"
24406930ead5Smrg                        { (yyval.expr)= (ExprDef *)AppendStmt(&(yyvsp[-2].expr)->common,&(yyvsp[0].expr)->common); }
24416930ead5Smrg#line 2442 "xkbparse.c"
2442690143ccSmrg    break;
2443690143ccSmrg
24446930ead5Smrg  case 109: /* CoordList: Coord  */
24456930ead5Smrg#line 532 "xkbparse.y"
24466930ead5Smrg                        { (yyval.expr)= (yyvsp[0].expr); }
24476930ead5Smrg#line 2448 "xkbparse.c"
2448690143ccSmrg    break;
2449690143ccSmrg
24506930ead5Smrg  case 110: /* Coord: OBRACKET SignedNumber COMMA SignedNumber CBRACKET  */
24516930ead5Smrg#line 536 "xkbparse.y"
24526930ead5Smrg                        {
2453f46a6179Smrg			    ExprDef *expr;
2454f46a6179Smrg			    expr= ExprCreate(ExprCoord,TypeUnknown);
2455f757b1e9Smrg			    expr->value.coord.x= (yyvsp[-3].ival);
2456f757b1e9Smrg			    expr->value.coord.y= (yyvsp[-1].ival);
2457690143ccSmrg			    (yyval.expr)= expr;
2458f46a6179Smrg			}
24596930ead5Smrg#line 2460 "xkbparse.c"
2460690143ccSmrg    break;
2461690143ccSmrg
24626930ead5Smrg  case 111: /* DoodadDecl: DoodadType String OBRACE VarDeclList CBRACE SEMI  */
24636930ead5Smrg#line 546 "xkbparse.y"
24646930ead5Smrg                        { (yyval.doodad)= DoodadCreate((yyvsp[-5].uval),(yyvsp[-4].sval),(yyvsp[-2].var)); }
24656930ead5Smrg#line 2466 "xkbparse.c"
2466690143ccSmrg    break;
2467690143ccSmrg
24686930ead5Smrg  case 112: /* DoodadType: TEXT  */
24696930ead5Smrg#line 549 "xkbparse.y"
24706930ead5Smrg                                                { (yyval.uval)= XkbTextDoodad; }
24716930ead5Smrg#line 2472 "xkbparse.c"
2472690143ccSmrg    break;
2473690143ccSmrg
24746930ead5Smrg  case 113: /* DoodadType: OUTLINE  */
24756930ead5Smrg#line 550 "xkbparse.y"
24766930ead5Smrg                                                { (yyval.uval)= XkbOutlineDoodad; }
24776930ead5Smrg#line 2478 "xkbparse.c"
2478690143ccSmrg    break;
2479690143ccSmrg
24806930ead5Smrg  case 114: /* DoodadType: SOLID  */
24816930ead5Smrg#line 551 "xkbparse.y"
24826930ead5Smrg                                                { (yyval.uval)= XkbSolidDoodad; }
24836930ead5Smrg#line 2484 "xkbparse.c"
2484690143ccSmrg    break;
2485690143ccSmrg
24866930ead5Smrg  case 115: /* DoodadType: LOGO  */
24876930ead5Smrg#line 552 "xkbparse.y"
24886930ead5Smrg                                                { (yyval.uval)= XkbLogoDoodad; }
24896930ead5Smrg#line 2490 "xkbparse.c"
2490690143ccSmrg    break;
2491690143ccSmrg
24926930ead5Smrg  case 116: /* FieldSpec: Ident  */
24936930ead5Smrg#line 555 "xkbparse.y"
24946930ead5Smrg                                                { (yyval.sval)= (yyvsp[0].sval); }
24956930ead5Smrg#line 2496 "xkbparse.c"
2496690143ccSmrg    break;
2497690143ccSmrg
24986930ead5Smrg  case 117: /* FieldSpec: Element  */
24996930ead5Smrg#line 556 "xkbparse.y"
25006930ead5Smrg                                                { (yyval.sval)= (yyvsp[0].sval); }
25016930ead5Smrg#line 2502 "xkbparse.c"
2502690143ccSmrg    break;
2503690143ccSmrg
25046930ead5Smrg  case 118: /* Element: ACTION_TOK  */
25056930ead5Smrg#line 560 "xkbparse.y"
25066930ead5Smrg                        { (yyval.sval)= XkbInternAtom(NULL,"action",False); }
25076930ead5Smrg#line 2508 "xkbparse.c"
2508690143ccSmrg    break;
2509690143ccSmrg
25106930ead5Smrg  case 119: /* Element: INTERPRET  */
25116930ead5Smrg#line 562 "xkbparse.y"
25126930ead5Smrg                        { (yyval.sval)= XkbInternAtom(NULL,"interpret",False); }
25136930ead5Smrg#line 2514 "xkbparse.c"
2514690143ccSmrg    break;
2515690143ccSmrg
25166930ead5Smrg  case 120: /* Element: TYPE  */
25176930ead5Smrg#line 564 "xkbparse.y"
25186930ead5Smrg                        { (yyval.sval)= XkbInternAtom(NULL,"type",False); }
25196930ead5Smrg#line 2520 "xkbparse.c"
2520690143ccSmrg    break;
2521690143ccSmrg
25226930ead5Smrg  case 121: /* Element: KEY  */
25236930ead5Smrg#line 566 "xkbparse.y"
25246930ead5Smrg                        { (yyval.sval)= XkbInternAtom(NULL,"key",False); }
25256930ead5Smrg#line 2526 "xkbparse.c"
2526690143ccSmrg    break;
2527690143ccSmrg
25286930ead5Smrg  case 122: /* Element: GROUP  */
25296930ead5Smrg#line 568 "xkbparse.y"
25306930ead5Smrg                        { (yyval.sval)= XkbInternAtom(NULL,"group",False); }
25316930ead5Smrg#line 2532 "xkbparse.c"
2532690143ccSmrg    break;
2533690143ccSmrg
25346930ead5Smrg  case 123: /* Element: MODIFIER_MAP  */
25356930ead5Smrg#line 570 "xkbparse.y"
25366930ead5Smrg                        {(yyval.sval)=XkbInternAtom(NULL,"modifier_map",False);}
25376930ead5Smrg#line 2538 "xkbparse.c"
2538690143ccSmrg    break;
2539690143ccSmrg
25406930ead5Smrg  case 124: /* Element: INDICATOR  */
25416930ead5Smrg#line 572 "xkbparse.y"
25426930ead5Smrg                        { (yyval.sval)= XkbInternAtom(NULL,"indicator",False); }
25436930ead5Smrg#line 2544 "xkbparse.c"
2544690143ccSmrg    break;
2545690143ccSmrg
25466930ead5Smrg  case 125: /* Element: SHAPE  */
25476930ead5Smrg#line 574 "xkbparse.y"
25486930ead5Smrg                        { (yyval.sval)= XkbInternAtom(NULL,"shape",False); }
25496930ead5Smrg#line 2550 "xkbparse.c"
2550690143ccSmrg    break;
2551690143ccSmrg
25526930ead5Smrg  case 126: /* Element: ROW  */
25536930ead5Smrg#line 576 "xkbparse.y"
25546930ead5Smrg                        { (yyval.sval)= XkbInternAtom(NULL,"row",False); }
25556930ead5Smrg#line 2556 "xkbparse.c"
2556690143ccSmrg    break;
2557690143ccSmrg
25586930ead5Smrg  case 127: /* Element: SECTION  */
25596930ead5Smrg#line 578 "xkbparse.y"
25606930ead5Smrg                        { (yyval.sval)= XkbInternAtom(NULL,"section",False); }
25616930ead5Smrg#line 2562 "xkbparse.c"
2562690143ccSmrg    break;
2563690143ccSmrg
25646930ead5Smrg  case 128: /* Element: TEXT  */
25656930ead5Smrg#line 580 "xkbparse.y"
25666930ead5Smrg                        { (yyval.sval)= XkbInternAtom(NULL,"text",False); }
25676930ead5Smrg#line 2568 "xkbparse.c"
2568690143ccSmrg    break;
2569690143ccSmrg
25706930ead5Smrg  case 129: /* OptMergeMode: MergeMode  */
25716930ead5Smrg#line 583 "xkbparse.y"
25726930ead5Smrg                                                { (yyval.uval)= (yyvsp[0].uval); }
25736930ead5Smrg#line 2574 "xkbparse.c"
2574690143ccSmrg    break;
2575690143ccSmrg
25766930ead5Smrg  case 130: /* OptMergeMode: %empty  */
25776930ead5Smrg#line 584 "xkbparse.y"
25786930ead5Smrg                                                { (yyval.uval)= MergeDefault; }
25796930ead5Smrg#line 2580 "xkbparse.c"
2580690143ccSmrg    break;
2581690143ccSmrg
25826930ead5Smrg  case 131: /* MergeMode: INCLUDE  */
25836930ead5Smrg#line 587 "xkbparse.y"
25846930ead5Smrg                                                { (yyval.uval)= MergeDefault; }
25856930ead5Smrg#line 2586 "xkbparse.c"
2586690143ccSmrg    break;
2587690143ccSmrg
25886930ead5Smrg  case 132: /* MergeMode: AUGMENT  */
25896930ead5Smrg#line 588 "xkbparse.y"
25906930ead5Smrg                                                { (yyval.uval)= MergeAugment; }
25916930ead5Smrg#line 2592 "xkbparse.c"
2592690143ccSmrg    break;
2593690143ccSmrg
25946930ead5Smrg  case 133: /* MergeMode: OVERRIDE  */
25956930ead5Smrg#line 589 "xkbparse.y"
25966930ead5Smrg                                                { (yyval.uval)= MergeOverride; }
25976930ead5Smrg#line 2598 "xkbparse.c"
2598690143ccSmrg    break;
2599690143ccSmrg
26006930ead5Smrg  case 134: /* MergeMode: REPLACE  */
26016930ead5Smrg#line 590 "xkbparse.y"
26026930ead5Smrg                                                { (yyval.uval)= MergeReplace; }
26036930ead5Smrg#line 2604 "xkbparse.c"
2604690143ccSmrg    break;
2605690143ccSmrg
26066930ead5Smrg  case 135: /* MergeMode: ALTERNATE  */
26076930ead5Smrg#line 591 "xkbparse.y"
26086930ead5Smrg                                                { (yyval.uval)= MergeAltForm; }
26096930ead5Smrg#line 2610 "xkbparse.c"
2610690143ccSmrg    break;
2611690143ccSmrg
26126930ead5Smrg  case 136: /* OptExprList: ExprList  */
26136930ead5Smrg#line 594 "xkbparse.y"
26146930ead5Smrg                                                        { (yyval.expr)= (yyvsp[0].expr); }
26156930ead5Smrg#line 2616 "xkbparse.c"
2616690143ccSmrg    break;
2617690143ccSmrg
26186930ead5Smrg  case 137: /* OptExprList: %empty  */
26196930ead5Smrg#line 595 "xkbparse.y"
26206930ead5Smrg                                                { (yyval.expr)= NULL; }
26216930ead5Smrg#line 2622 "xkbparse.c"
2622690143ccSmrg    break;
2623690143ccSmrg
26246930ead5Smrg  case 138: /* ExprList: ExprList COMMA Expr  */
26256930ead5Smrg#line 599 "xkbparse.y"
26266930ead5Smrg                        { (yyval.expr)= (ExprDef *)AppendStmt(&(yyvsp[-2].expr)->common,&(yyvsp[0].expr)->common); }
26276930ead5Smrg#line 2628 "xkbparse.c"
2628690143ccSmrg    break;
2629690143ccSmrg
26306930ead5Smrg  case 139: /* ExprList: Expr  */
26316930ead5Smrg#line 601 "xkbparse.y"
26326930ead5Smrg                        { (yyval.expr)= (yyvsp[0].expr); }
26336930ead5Smrg#line 2634 "xkbparse.c"
2634690143ccSmrg    break;
2635690143ccSmrg
26366930ead5Smrg  case 140: /* Expr: Expr DIVIDE Expr  */
26376930ead5Smrg#line 605 "xkbparse.y"
26386930ead5Smrg                        { (yyval.expr)= ExprCreateBinary(OpDivide,(yyvsp[-2].expr),(yyvsp[0].expr)); }
26396930ead5Smrg#line 2640 "xkbparse.c"
2640690143ccSmrg    break;
2641690143ccSmrg
26426930ead5Smrg  case 141: /* Expr: Expr PLUS Expr  */
26436930ead5Smrg#line 607 "xkbparse.y"
26446930ead5Smrg                        { (yyval.expr)= ExprCreateBinary(OpAdd,(yyvsp[-2].expr),(yyvsp[0].expr)); }
26456930ead5Smrg#line 2646 "xkbparse.c"
2646690143ccSmrg    break;
2647690143ccSmrg
26486930ead5Smrg  case 142: /* Expr: Expr MINUS Expr  */
26496930ead5Smrg#line 609 "xkbparse.y"
26506930ead5Smrg                        { (yyval.expr)= ExprCreateBinary(OpSubtract,(yyvsp[-2].expr),(yyvsp[0].expr)); }
26516930ead5Smrg#line 2652 "xkbparse.c"
2652690143ccSmrg    break;
2653690143ccSmrg
26546930ead5Smrg  case 143: /* Expr: Expr TIMES Expr  */
26556930ead5Smrg#line 611 "xkbparse.y"
26566930ead5Smrg                        { (yyval.expr)= ExprCreateBinary(OpMultiply,(yyvsp[-2].expr),(yyvsp[0].expr)); }
26576930ead5Smrg#line 2658 "xkbparse.c"
2658690143ccSmrg    break;
2659690143ccSmrg
26606930ead5Smrg  case 144: /* Expr: Lhs EQUALS Expr  */
26616930ead5Smrg#line 613 "xkbparse.y"
26626930ead5Smrg                        { (yyval.expr)= ExprCreateBinary(OpAssign,(yyvsp[-2].expr),(yyvsp[0].expr)); }
26636930ead5Smrg#line 2664 "xkbparse.c"
2664690143ccSmrg    break;
2665690143ccSmrg
26666930ead5Smrg  case 145: /* Expr: Term  */
26676930ead5Smrg#line 615 "xkbparse.y"
26686930ead5Smrg                        { (yyval.expr)= (yyvsp[0].expr); }
26696930ead5Smrg#line 2670 "xkbparse.c"
2670690143ccSmrg    break;
2671690143ccSmrg
26726930ead5Smrg  case 146: /* Term: MINUS Term  */
26736930ead5Smrg#line 619 "xkbparse.y"
26746930ead5Smrg                        { (yyval.expr)= ExprCreateUnary(OpNegate,(yyvsp[0].expr)->type,(yyvsp[0].expr)); }
26756930ead5Smrg#line 2676 "xkbparse.c"
2676690143ccSmrg    break;
2677690143ccSmrg
26786930ead5Smrg  case 147: /* Term: PLUS Term  */
26796930ead5Smrg#line 621 "xkbparse.y"
26806930ead5Smrg                        { (yyval.expr)= ExprCreateUnary(OpUnaryPlus,(yyvsp[0].expr)->type,(yyvsp[0].expr)); }
26816930ead5Smrg#line 2682 "xkbparse.c"
2682690143ccSmrg    break;
2683690143ccSmrg
26846930ead5Smrg  case 148: /* Term: EXCLAM Term  */
26856930ead5Smrg#line 623 "xkbparse.y"
26866930ead5Smrg                        { (yyval.expr)= ExprCreateUnary(OpNot,TypeBoolean,(yyvsp[0].expr)); }
26876930ead5Smrg#line 2688 "xkbparse.c"
2688690143ccSmrg    break;
2689690143ccSmrg
26906930ead5Smrg  case 149: /* Term: INVERT Term  */
26916930ead5Smrg#line 625 "xkbparse.y"
26926930ead5Smrg                        { (yyval.expr)= ExprCreateUnary(OpInvert,(yyvsp[0].expr)->type,(yyvsp[0].expr)); }
26936930ead5Smrg#line 2694 "xkbparse.c"
2694690143ccSmrg    break;
2695690143ccSmrg
26966930ead5Smrg  case 150: /* Term: Lhs  */
26976930ead5Smrg#line 627 "xkbparse.y"
26986930ead5Smrg                        { (yyval.expr)= (yyvsp[0].expr);  }
26996930ead5Smrg#line 2700 "xkbparse.c"
2700690143ccSmrg    break;
2701690143ccSmrg
27026930ead5Smrg  case 151: /* Term: FieldSpec OPAREN OptExprList CPAREN  */
27036930ead5Smrg#line 629 "xkbparse.y"
27046930ead5Smrg                        { (yyval.expr)= ActionCreate((yyvsp[-3].sval),(yyvsp[-1].expr)); }
27056930ead5Smrg#line 2706 "xkbparse.c"
2706690143ccSmrg    break;
2707690143ccSmrg
27086930ead5Smrg  case 152: /* Term: Terminal  */
27096930ead5Smrg#line 631 "xkbparse.y"
27106930ead5Smrg                        { (yyval.expr)= (yyvsp[0].expr);  }
27116930ead5Smrg#line 2712 "xkbparse.c"
2712690143ccSmrg    break;
2713690143ccSmrg
27146930ead5Smrg  case 153: /* Term: OPAREN Expr CPAREN  */
27156930ead5Smrg#line 633 "xkbparse.y"
27166930ead5Smrg                        { (yyval.expr)= (yyvsp[-1].expr);  }
27176930ead5Smrg#line 2718 "xkbparse.c"
2718690143ccSmrg    break;
2719690143ccSmrg
27206930ead5Smrg  case 154: /* ActionList: ActionList COMMA Action  */
27216930ead5Smrg#line 637 "xkbparse.y"
27226930ead5Smrg                        { (yyval.expr)= (ExprDef *)AppendStmt(&(yyvsp[-2].expr)->common,&(yyvsp[0].expr)->common); }
27236930ead5Smrg#line 2724 "xkbparse.c"
2724690143ccSmrg    break;
2725690143ccSmrg
27266930ead5Smrg  case 155: /* ActionList: Action  */
27276930ead5Smrg#line 639 "xkbparse.y"
27286930ead5Smrg                        { (yyval.expr)= (yyvsp[0].expr); }
27296930ead5Smrg#line 2730 "xkbparse.c"
2730690143ccSmrg    break;
2731690143ccSmrg
27326930ead5Smrg  case 156: /* Action: FieldSpec OPAREN OptExprList CPAREN  */
27336930ead5Smrg#line 643 "xkbparse.y"
27346930ead5Smrg                        { (yyval.expr)= ActionCreate((yyvsp[-3].sval),(yyvsp[-1].expr)); }
27356930ead5Smrg#line 2736 "xkbparse.c"
2736690143ccSmrg    break;
2737690143ccSmrg
27386930ead5Smrg  case 157: /* Lhs: FieldSpec  */
27396930ead5Smrg#line 647 "xkbparse.y"
27406930ead5Smrg                        {
2741f46a6179Smrg			    ExprDef *expr;
2742f46a6179Smrg                            expr= ExprCreate(ExprIdent,TypeUnknown);
2743f757b1e9Smrg                            expr->value.str= (yyvsp[0].sval);
2744690143ccSmrg                            (yyval.expr)= expr;
2745f46a6179Smrg			}
27466930ead5Smrg#line 2747 "xkbparse.c"
2747690143ccSmrg    break;
2748690143ccSmrg
27496930ead5Smrg  case 158: /* Lhs: FieldSpec DOT FieldSpec  */
27506930ead5Smrg#line 654 "xkbparse.y"
27516930ead5Smrg                        {
2752f46a6179Smrg                            ExprDef *expr;
2753f46a6179Smrg                            expr= ExprCreate(ExprFieldRef,TypeUnknown);
2754f757b1e9Smrg                            expr->value.field.element= (yyvsp[-2].sval);
2755f757b1e9Smrg                            expr->value.field.field= (yyvsp[0].sval);
2756690143ccSmrg                            (yyval.expr)= expr;
2757f46a6179Smrg			}
27586930ead5Smrg#line 2759 "xkbparse.c"
2759690143ccSmrg    break;
2760690143ccSmrg
27616930ead5Smrg  case 159: /* Lhs: FieldSpec OBRACKET Expr CBRACKET  */
27626930ead5Smrg#line 662 "xkbparse.y"
27636930ead5Smrg                        {
2764f46a6179Smrg			    ExprDef *expr;
2765f46a6179Smrg			    expr= ExprCreate(ExprArrayRef,TypeUnknown);
2766f46a6179Smrg			    expr->value.array.element= None;
2767f757b1e9Smrg			    expr->value.array.field= (yyvsp[-3].sval);
2768f757b1e9Smrg			    expr->value.array.entry= (yyvsp[-1].expr);
2769690143ccSmrg			    (yyval.expr)= expr;
2770f46a6179Smrg			}
27716930ead5Smrg#line 2772 "xkbparse.c"
2772690143ccSmrg    break;
2773690143ccSmrg
27746930ead5Smrg  case 160: /* Lhs: FieldSpec DOT FieldSpec OBRACKET Expr CBRACKET  */
27756930ead5Smrg#line 671 "xkbparse.y"
27766930ead5Smrg                        {
2777f46a6179Smrg			    ExprDef *expr;
2778f46a6179Smrg			    expr= ExprCreate(ExprArrayRef,TypeUnknown);
2779f757b1e9Smrg			    expr->value.array.element= (yyvsp[-5].sval);
2780f757b1e9Smrg			    expr->value.array.field= (yyvsp[-3].sval);
2781f757b1e9Smrg			    expr->value.array.entry= (yyvsp[-1].expr);
2782690143ccSmrg			    (yyval.expr)= expr;
2783f46a6179Smrg			}
27846930ead5Smrg#line 2785 "xkbparse.c"
2785690143ccSmrg    break;
2786690143ccSmrg
27876930ead5Smrg  case 161: /* Terminal: String  */
27886930ead5Smrg#line 682 "xkbparse.y"
27896930ead5Smrg                        {
2790f46a6179Smrg			    ExprDef *expr;
2791f46a6179Smrg                            expr= ExprCreate(ExprValue,TypeString);
2792f757b1e9Smrg                            expr->value.str= (yyvsp[0].sval);
2793690143ccSmrg                            (yyval.expr)= expr;
2794f46a6179Smrg			}
27956930ead5Smrg#line 2796 "xkbparse.c"
2796690143ccSmrg    break;
2797690143ccSmrg
27986930ead5Smrg  case 162: /* Terminal: Integer  */
27996930ead5Smrg#line 689 "xkbparse.y"
28006930ead5Smrg                        {
2801f46a6179Smrg			    ExprDef *expr;
2802f46a6179Smrg                            expr= ExprCreate(ExprValue,TypeInt);
2803f757b1e9Smrg                            expr->value.ival= (yyvsp[0].ival);
2804690143ccSmrg                            (yyval.expr)= expr;
2805f46a6179Smrg			}
28066930ead5Smrg#line 2807 "xkbparse.c"
2807690143ccSmrg    break;
2808690143ccSmrg
28096930ead5Smrg  case 163: /* Terminal: Float  */
28106930ead5Smrg#line 696 "xkbparse.y"
28116930ead5Smrg                        {
2812f46a6179Smrg			    ExprDef *expr;
2813f46a6179Smrg			    expr= ExprCreate(ExprValue,TypeFloat);
2814f757b1e9Smrg			    expr->value.ival= (yyvsp[0].ival);
2815690143ccSmrg			    (yyval.expr)= expr;
2816f46a6179Smrg			}
28176930ead5Smrg#line 2818 "xkbparse.c"
2818690143ccSmrg    break;
2819690143ccSmrg
28206930ead5Smrg  case 164: /* Terminal: KeyName  */
28216930ead5Smrg#line 703 "xkbparse.y"
28226930ead5Smrg                        {
2823f46a6179Smrg			    ExprDef *expr;
2824f46a6179Smrg			    expr= ExprCreate(ExprValue,TypeKeyName);
2825f46a6179Smrg			    memset(expr->value.keyName,0,5);
2826f757b1e9Smrg			    strncpy(expr->value.keyName,(yyvsp[0].str),4);
2827f757b1e9Smrg			    free((yyvsp[0].str));
2828690143ccSmrg			    (yyval.expr)= expr;
2829f46a6179Smrg			}
28306930ead5Smrg#line 2831 "xkbparse.c"
2831690143ccSmrg    break;
2832690143ccSmrg
28336930ead5Smrg  case 165: /* OptKeySymList: KeySymList  */
28346930ead5Smrg#line 713 "xkbparse.y"
28356930ead5Smrg                                                        { (yyval.expr)= (yyvsp[0].expr); }
28366930ead5Smrg#line 2837 "xkbparse.c"
2837690143ccSmrg    break;
2838690143ccSmrg
28396930ead5Smrg  case 166: /* OptKeySymList: %empty  */
28406930ead5Smrg#line 714 "xkbparse.y"
28416930ead5Smrg                                                        { (yyval.expr)= NULL; }
28426930ead5Smrg#line 2843 "xkbparse.c"
2843690143ccSmrg    break;
2844690143ccSmrg
28456930ead5Smrg  case 167: /* KeySymList: KeySymList COMMA KeySym  */
28466930ead5Smrg#line 718 "xkbparse.y"
28476930ead5Smrg                        { (yyval.expr)= AppendKeysymList((yyvsp[-2].expr),(yyvsp[0].str)); }
28486930ead5Smrg#line 2849 "xkbparse.c"
2849690143ccSmrg    break;
2850690143ccSmrg
28516930ead5Smrg  case 168: /* KeySymList: KeySymList COMMA KeySyms  */
28526930ead5Smrg#line 720 "xkbparse.y"
28536930ead5Smrg                        { (yyval.expr)= AppendKeysymList((yyvsp[-2].expr),strdup("NoSymbol")); }
28546930ead5Smrg#line 2855 "xkbparse.c"
2855690143ccSmrg    break;
2856690143ccSmrg
28576930ead5Smrg  case 169: /* KeySymList: KeySym  */
28586930ead5Smrg#line 722 "xkbparse.y"
28596930ead5Smrg                        { (yyval.expr)= CreateKeysymList((yyvsp[0].str)); }
28606930ead5Smrg#line 2861 "xkbparse.c"
2861690143ccSmrg    break;
2862690143ccSmrg
28636930ead5Smrg  case 170: /* KeySymList: KeySyms  */
28646930ead5Smrg#line 724 "xkbparse.y"
28656930ead5Smrg                        { (yyval.expr)= CreateKeysymList(strdup("NoSymbol")); }
28666930ead5Smrg#line 2867 "xkbparse.c"
2867690143ccSmrg    break;
2868690143ccSmrg
28696930ead5Smrg  case 171: /* KeySym: IDENT  */
28706930ead5Smrg#line 727 "xkbparse.y"
28716930ead5Smrg                                        { (yyval.str)= strdup(scanBuf); }
28726930ead5Smrg#line 2873 "xkbparse.c"
2873c82dfdfbSmrg    break;
2874c82dfdfbSmrg
28756930ead5Smrg  case 172: /* KeySym: SECTION  */
28766930ead5Smrg#line 728 "xkbparse.y"
28776930ead5Smrg                                        { (yyval.str)= strdup("section"); }
28786930ead5Smrg#line 2879 "xkbparse.c"
2879c82dfdfbSmrg    break;
2880c82dfdfbSmrg
28816930ead5Smrg  case 173: /* KeySym: Integer  */
28826930ead5Smrg#line 730 "xkbparse.y"
28836930ead5Smrg                        {
2884f757b1e9Smrg			    if ((yyvsp[0].ival)<10)	{ (yyval.str)= malloc(2); (yyval.str)[0]= '0' + (yyvsp[0].ival); (yyval.str)[1]= '\0'; }
2885f757b1e9Smrg			    else	{ (yyval.str)= malloc(19); snprintf((yyval.str), 19, "0x%x", (yyvsp[0].ival)); }
2886f46a6179Smrg			}
28876930ead5Smrg#line 2888 "xkbparse.c"
2888690143ccSmrg    break;
2889690143ccSmrg
28906930ead5Smrg  case 174: /* KeySyms: OBRACE KeySymList CBRACE  */
28916930ead5Smrg#line 737 "xkbparse.y"
28926930ead5Smrg                        { (yyval.expr)= (yyvsp[-1].expr); }
28936930ead5Smrg#line 2894 "xkbparse.c"
2894c82dfdfbSmrg    break;
2895c82dfdfbSmrg
28966930ead5Smrg  case 175: /* SignedNumber: MINUS Number  */
28976930ead5Smrg#line 740 "xkbparse.y"
28986930ead5Smrg                                        { (yyval.ival)= -(yyvsp[0].ival); }
28996930ead5Smrg#line 2900 "xkbparse.c"
2900690143ccSmrg    break;
2901690143ccSmrg
29026930ead5Smrg  case 176: /* SignedNumber: Number  */
29036930ead5Smrg#line 741 "xkbparse.y"
29046930ead5Smrg                                            { (yyval.ival)= (yyvsp[0].ival); }
29056930ead5Smrg#line 2906 "xkbparse.c"
2906690143ccSmrg    break;
2907690143ccSmrg
29086930ead5Smrg  case 177: /* Number: FLOAT  */
29096930ead5Smrg#line 744 "xkbparse.y"
29106930ead5Smrg                                        { (yyval.ival)= scanInt; }
29116930ead5Smrg#line 2912 "xkbparse.c"
2912690143ccSmrg    break;
2913690143ccSmrg
29146930ead5Smrg  case 178: /* Number: INTEGER  */
29156930ead5Smrg#line 745 "xkbparse.y"
29166930ead5Smrg                                        { (yyval.ival)= scanInt*XkbGeomPtsPerMM; }
29176930ead5Smrg#line 2918 "xkbparse.c"
2918690143ccSmrg    break;
2919690143ccSmrg
29206930ead5Smrg  case 179: /* Float: FLOAT  */
29216930ead5Smrg#line 748 "xkbparse.y"
29226930ead5Smrg                                        { (yyval.ival)= scanInt; }
29236930ead5Smrg#line 2924 "xkbparse.c"
2924690143ccSmrg    break;
2925690143ccSmrg
29266930ead5Smrg  case 180: /* Integer: INTEGER  */
29276930ead5Smrg#line 751 "xkbparse.y"
29286930ead5Smrg                                        { (yyval.ival)= scanInt; }
29296930ead5Smrg#line 2930 "xkbparse.c"
2930690143ccSmrg    break;
2931690143ccSmrg
29326930ead5Smrg  case 181: /* KeyName: KEYNAME  */
29336930ead5Smrg#line 754 "xkbparse.y"
29346930ead5Smrg                                        { (yyval.str)= strdup(scanBuf); }
29356930ead5Smrg#line 2936 "xkbparse.c"
2936690143ccSmrg    break;
2937690143ccSmrg
29386930ead5Smrg  case 182: /* Ident: IDENT  */
29396930ead5Smrg#line 757 "xkbparse.y"
29406930ead5Smrg                                { (yyval.sval)= XkbInternAtom(NULL,scanBuf,False); }
29416930ead5Smrg#line 2942 "xkbparse.c"
2942690143ccSmrg    break;
2943690143ccSmrg
29446930ead5Smrg  case 183: /* Ident: DEFAULT  */
29456930ead5Smrg#line 758 "xkbparse.y"
29466930ead5Smrg                                { (yyval.sval)= XkbInternAtom(NULL,"default",False); }
29476930ead5Smrg#line 2948 "xkbparse.c"
2948690143ccSmrg    break;
2949690143ccSmrg
29506930ead5Smrg  case 184: /* String: STRING  */
29516930ead5Smrg#line 761 "xkbparse.y"
29526930ead5Smrg                                { (yyval.sval)= XkbInternAtom(NULL,scanBuf,False); }
29536930ead5Smrg#line 2954 "xkbparse.c"
2954690143ccSmrg    break;
2955690143ccSmrg
29566930ead5Smrg  case 185: /* OptMapName: MapName  */
29576930ead5Smrg#line 764 "xkbparse.y"
29586930ead5Smrg                                { (yyval.str)= (yyvsp[0].str); }
29596930ead5Smrg#line 2960 "xkbparse.c"
2960690143ccSmrg    break;
2961690143ccSmrg
29626930ead5Smrg  case 186: /* OptMapName: %empty  */
29636930ead5Smrg#line 765 "xkbparse.y"
29646930ead5Smrg                                { (yyval.str)= NULL; }
29656930ead5Smrg#line 2966 "xkbparse.c"
2966690143ccSmrg    break;
2967690143ccSmrg
29686930ead5Smrg  case 187: /* MapName: STRING  */
29696930ead5Smrg#line 768 "xkbparse.y"
29706930ead5Smrg                                { (yyval.str)= strdup(scanBuf); }
29716930ead5Smrg#line 2972 "xkbparse.c"
2972690143ccSmrg    break;
2973690143ccSmrg
2974690143ccSmrg
29756930ead5Smrg#line 2976 "xkbparse.c"
29766930ead5Smrg
2977690143ccSmrg      default: break;
2978f46a6179Smrg    }
2979c82dfdfbSmrg  /* User semantic actions sometimes alter yychar, and that requires
2980c82dfdfbSmrg     that yytoken be updated with the new translation.  We take the
2981c82dfdfbSmrg     approach of translating immediately before every use of yytoken.
2982c82dfdfbSmrg     One alternative is translating here after every semantic action,
2983c82dfdfbSmrg     but that translation would be missed if the semantic action invokes
2984c82dfdfbSmrg     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
2985c82dfdfbSmrg     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
2986c82dfdfbSmrg     incorrect destructor might then be invoked immediately.  In the
2987c82dfdfbSmrg     case of YYERROR or YYBACKUP, subsequent parser actions might lead
2988c82dfdfbSmrg     to an incorrect destructor call or verbose syntax error message
2989c82dfdfbSmrg     before the lookahead is translated.  */
29906930ead5Smrg  YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
2991690143ccSmrg
2992690143ccSmrg  YYPOPSTACK (yylen);
2993690143ccSmrg  yylen = 0;
2994690143ccSmrg
2995690143ccSmrg  *++yyvsp = yyval;
2996690143ccSmrg
2997f757b1e9Smrg  /* Now 'shift' the result of the reduction.  Determine what state
2998690143ccSmrg     that goes to, based on the state we popped back to and the rule
2999690143ccSmrg     number reduced by.  */
30006930ead5Smrg  {
30016930ead5Smrg    const int yylhs = yyr1[yyn] - YYNTOKENS;
30026930ead5Smrg    const int yyi = yypgoto[yylhs] + *yyssp;
30036930ead5Smrg    yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
30046930ead5Smrg               ? yytable[yyi]
30056930ead5Smrg               : yydefgoto[yylhs]);
30066930ead5Smrg  }
3007690143ccSmrg
3008690143ccSmrg  goto yynewstate;
3009690143ccSmrg
3010690143ccSmrg
3011f757b1e9Smrg/*--------------------------------------.
3012f757b1e9Smrg| yyerrlab -- here on detecting error.  |
3013f757b1e9Smrg`--------------------------------------*/
3014690143ccSmrgyyerrlab:
3015c82dfdfbSmrg  /* Make sure we have latest lookahead translation.  See comments at
3016c82dfdfbSmrg     user semantic actions for why this is necessary.  */
30176930ead5Smrg  yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
3018690143ccSmrg  /* If not already recovering from an error, report this error.  */
3019690143ccSmrg  if (!yyerrstatus)
3020f46a6179Smrg    {
3021690143ccSmrg      ++yynerrs;
3022690143ccSmrg      yyerror (YY_("syntax error"));
3023f46a6179Smrg    }
3024690143ccSmrg
3025690143ccSmrg  if (yyerrstatus == 3)
3026690143ccSmrg    {
3027c82dfdfbSmrg      /* If just tried and failed to reuse lookahead token after an
3028f757b1e9Smrg         error, discard it.  */
3029690143ccSmrg
30306930ead5Smrg      if (yychar <= END_OF_FILE)
3031f757b1e9Smrg        {
3032f757b1e9Smrg          /* Return failure if at end of input.  */
30336930ead5Smrg          if (yychar == END_OF_FILE)
3034f757b1e9Smrg            YYABORT;
3035f757b1e9Smrg        }
3036690143ccSmrg      else
3037f757b1e9Smrg        {
3038f757b1e9Smrg          yydestruct ("Error: discarding",
3039f757b1e9Smrg                      yytoken, &yylval);
3040f757b1e9Smrg          yychar = YYEMPTY;
3041f757b1e9Smrg        }
3042690143ccSmrg    }
3043690143ccSmrg
3044c82dfdfbSmrg  /* Else will try to reuse lookahead token after shifting the error
3045690143ccSmrg     token.  */
3046690143ccSmrg  goto yyerrlab1;
3047690143ccSmrg
3048690143ccSmrg
3049690143ccSmrg/*---------------------------------------------------.
3050690143ccSmrg| yyerrorlab -- error raised explicitly by YYERROR.  |
3051690143ccSmrg`---------------------------------------------------*/
3052690143ccSmrgyyerrorlab:
30536930ead5Smrg  /* Pacify compilers when the user code never invokes YYERROR and the
30546930ead5Smrg     label yyerrorlab therefore never appears in user code.  */
30556930ead5Smrg  if (0)
30566930ead5Smrg    YYERROR;
30576930ead5Smrg  ++yynerrs;
3058690143ccSmrg
3059f757b1e9Smrg  /* Do not reclaim the symbols of the rule whose action triggered
3060690143ccSmrg     this YYERROR.  */
3061690143ccSmrg  YYPOPSTACK (yylen);
3062690143ccSmrg  yylen = 0;
3063690143ccSmrg  YY_STACK_PRINT (yyss, yyssp);
3064690143ccSmrg  yystate = *yyssp;
3065690143ccSmrg  goto yyerrlab1;
3066690143ccSmrg
3067690143ccSmrg
3068690143ccSmrg/*-------------------------------------------------------------.
3069690143ccSmrg| yyerrlab1 -- common code for both syntax error and YYERROR.  |
3070690143ccSmrg`-------------------------------------------------------------*/
3071690143ccSmrgyyerrlab1:
3072f757b1e9Smrg  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
3073690143ccSmrg
30746930ead5Smrg  /* Pop stack until we find a state that shifts the error token.  */
3075690143ccSmrg  for (;;)
3076690143ccSmrg    {
3077690143ccSmrg      yyn = yypact[yystate];
3078c82dfdfbSmrg      if (!yypact_value_is_default (yyn))
3079f757b1e9Smrg        {
30806930ead5Smrg          yyn += YYSYMBOL_YYerror;
30816930ead5Smrg          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
3082f757b1e9Smrg            {
3083f757b1e9Smrg              yyn = yytable[yyn];
3084f757b1e9Smrg              if (0 < yyn)
3085f757b1e9Smrg                break;
3086f757b1e9Smrg            }
3087f757b1e9Smrg        }
3088690143ccSmrg
3089690143ccSmrg      /* Pop the current state because it cannot handle the error token.  */
3090690143ccSmrg      if (yyssp == yyss)
3091f757b1e9Smrg        YYABORT;
3092690143ccSmrg
3093690143ccSmrg
3094690143ccSmrg      yydestruct ("Error: popping",
30956930ead5Smrg                  YY_ACCESSING_SYMBOL (yystate), yyvsp);
3096690143ccSmrg      YYPOPSTACK (1);
3097690143ccSmrg      yystate = *yyssp;
3098690143ccSmrg      YY_STACK_PRINT (yyss, yyssp);
3099690143ccSmrg    }
3100690143ccSmrg
3101c82dfdfbSmrg  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3102690143ccSmrg  *++yyvsp = yylval;
3103c82dfdfbSmrg  YY_IGNORE_MAYBE_UNINITIALIZED_END
3104690143ccSmrg
3105690143ccSmrg
3106690143ccSmrg  /* Shift the error token.  */
31076930ead5Smrg  YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
3108690143ccSmrg
3109690143ccSmrg  yystate = yyn;
3110690143ccSmrg  goto yynewstate;
3111690143ccSmrg
3112690143ccSmrg
3113690143ccSmrg/*-------------------------------------.
3114690143ccSmrg| yyacceptlab -- YYACCEPT comes here.  |
3115690143ccSmrg`-------------------------------------*/
3116690143ccSmrgyyacceptlab:
3117690143ccSmrg  yyresult = 0;
31186930ead5Smrg  goto yyreturnlab;
31196930ead5Smrg
3120690143ccSmrg
3121690143ccSmrg/*-----------------------------------.
3122690143ccSmrg| yyabortlab -- YYABORT comes here.  |
3123690143ccSmrg`-----------------------------------*/
3124690143ccSmrgyyabortlab:
3125690143ccSmrg  yyresult = 1;
31266930ead5Smrg  goto yyreturnlab;
31276930ead5Smrg
3128690143ccSmrg
31296930ead5Smrg/*-----------------------------------------------------------.
31306930ead5Smrg| yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here.  |
31316930ead5Smrg`-----------------------------------------------------------*/
3132690143ccSmrgyyexhaustedlab:
3133690143ccSmrg  yyerror (YY_("memory exhausted"));
3134690143ccSmrg  yyresult = 2;
31356930ead5Smrg  goto yyreturnlab;
31366930ead5Smrg
3137690143ccSmrg
31386930ead5Smrg/*----------------------------------------------------------.
31396930ead5Smrg| yyreturnlab -- parsing is finished, clean up and return.  |
31406930ead5Smrg`----------------------------------------------------------*/
31416930ead5Smrgyyreturnlab:
3142c82dfdfbSmrg  if (yychar != YYEMPTY)
3143c82dfdfbSmrg    {
3144c82dfdfbSmrg      /* Make sure we have latest lookahead translation.  See comments at
3145c82dfdfbSmrg         user semantic actions for why this is necessary.  */
3146c82dfdfbSmrg      yytoken = YYTRANSLATE (yychar);
3147c82dfdfbSmrg      yydestruct ("Cleanup: discarding lookahead",
3148c82dfdfbSmrg                  yytoken, &yylval);
3149c82dfdfbSmrg    }
3150f757b1e9Smrg  /* Do not reclaim the symbols of the rule whose action triggered
3151690143ccSmrg     this YYABORT or YYACCEPT.  */
3152690143ccSmrg  YYPOPSTACK (yylen);
3153690143ccSmrg  YY_STACK_PRINT (yyss, yyssp);
3154690143ccSmrg  while (yyssp != yyss)
3155f46a6179Smrg    {
3156690143ccSmrg      yydestruct ("Cleanup: popping",
31576930ead5Smrg                  YY_ACCESSING_SYMBOL (+*yyssp), yyvsp);
3158690143ccSmrg      YYPOPSTACK (1);
3159f46a6179Smrg    }
3160690143ccSmrg#ifndef yyoverflow
3161690143ccSmrg  if (yyss != yyssa)
3162690143ccSmrg    YYSTACK_FREE (yyss);
3163690143ccSmrg#endif
31646930ead5Smrg
3165f757b1e9Smrg  return yyresult;
3166690143ccSmrg}
31676930ead5Smrg
31686930ead5Smrg#line 770 "xkbparse.y"
3169690143ccSmrg
3170690143ccSmrgvoid
3171690143ccSmrgyyerror(const char *s)
3172690143ccSmrg{
3173690143ccSmrg    if (warningLevel>0) {
3174690143ccSmrg	(void)fprintf(stderr,"%s: line %d of %s\n",s,lineNum,
3175690143ccSmrg					(scanFile?scanFile:"(unknown)"));
3176690143ccSmrg	if ((warningLevel>3))
3177690143ccSmrg	    (void)fprintf(stderr,"last scanned symbol is: %s\n",scanBuf);
3178690143ccSmrg    }
3179690143ccSmrg    return;
3180690143ccSmrg}
3181690143ccSmrg
3182690143ccSmrg
3183690143ccSmrgint
3184690143ccSmrgyywrap(void)
3185690143ccSmrg{
3186690143ccSmrg   return 1;
3187f46a6179Smrg}
3188690143ccSmrg
3189