Bug Summary

File:xkbparse.c
Location:line 1576, column 5
Description:Value stored to 'yymsg' is never read

Annotated Source Code

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