Bug Summary

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

Annotated Source Code

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