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