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