1/* A Bison parser, made by GNU Bison 3.8.2.  */
2
3/* Bison implementation for Yacc-like parsers in C
4
5   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
6   Inc.
7
8   This program is free software: you can redistribute it and/or modify
9   it under the terms of the GNU General Public License as published by
10   the Free Software Foundation, either version 3 of the License, or
11   (at your option) any later version.
12
13   This program is distributed in the hope that it will be useful,
14   but WITHOUT ANY WARRANTY; without even the implied warranty of
15   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16   GNU General Public License for more details.
17
18   You should have received a copy of the GNU General Public License
19   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
20
21/* As a special exception, you may create a larger work that contains
22   part or all of the Bison parser skeleton and distribute that work
23   under terms of your choice, so long as that work isn't itself a
24   parser generator using the skeleton or a modified version thereof
25   as a parser skeleton.  Alternatively, if you modify or redistribute
26   the parser skeleton itself, you may (at your option) remove this
27   special exception, which will cause the skeleton and the resulting
28   Bison output files to be licensed under the GNU General Public
29   License without this special exception.
30
31   This special exception was added by the Free Software Foundation in
32   version 2.2 of Bison.  */
33
34/* C LALR(1) parser skeleton written by Richard Stallman, by
35   simplifying the original so-called "semantic" parser.  */
36
37/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
38   especially those whose name start with YY_ or yy_.  They are
39   private implementation details that can be changed or removed.  */
40
41/* All symbols defined below should begin with yy or YY, to avoid
42   infringing on user name space.  This should be done even for local
43   variables, as they might otherwise be expanded by user macros.
44   There are some unavoidable exceptions within include files to
45   define necessary library symbols; they are noted "INFRINGES ON
46   USER NAME SPACE" below.  */
47
48/* Identify Bison output, and Bison version.  */
49#define YYBISON 30802
50
51/* Bison version string.  */
52#define YYBISON_VERSION "3.8.2"
53
54/* Skeleton name.  */
55#define YYSKELETON_NAME "yacc.c"
56
57/* Pure parsers.  */
58#define YYPURE 0
59
60/* Push parsers.  */
61#define YYPUSH 0
62
63/* Pull parsers.  */
64#define YYPULL 1
65
66
67
68
69/* First part of user prologue.  */
70#line 23 "gram.y"
71
72#include "ctwm.h"
73
74#include <stdio.h>
75#include <string.h>
76#include <strings.h>
77
78#include "otp.h"
79#include "iconmgr.h"
80#include "icons.h"
81#ifdef WINBOX
82#include "windowbox.h"
83#endif
84#include "functions_defs.h"
85#include "list.h"
86#include "util.h"
87#include "occupation.h"
88#include "screen.h"
89#include "parse.h"
90#include "parse_be.h"
91#include "parse_yacc.h"
92#include "cursor.h"
93#include "win_decorations_init.h"
94#include "win_regions.h"
95#include "workspace_config.h"
96#ifdef SOUNDS
97#	include "sound.h"
98#endif
99
100static char *curWorkSpc = NULL;
101static char *client = NULL;
102static char *workspace = NULL;
103static MenuItem *lastmenuitem = NULL;
104static name_list **curplist = NULL;
105static int color = 0;
106extern char *yytext; // Have to manually pull this in
107
108int yylex(void);
109
110#line 111 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
111
112# ifndef YY_CAST
113#  ifdef __cplusplus
114#   define YY_CAST(Type, Val) static_cast<Type> (Val)
115#   define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
116#  else
117#   define YY_CAST(Type, Val) ((Type) (Val))
118#   define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
119#  endif
120# endif
121# ifndef YY_NULLPTR
122#  if defined __cplusplus
123#   if 201103L <= __cplusplus
124#    define YY_NULLPTR nullptr
125#   else
126#    define YY_NULLPTR 0
127#   endif
128#  else
129#   define YY_NULLPTR ((void*)0)
130#  endif
131# endif
132
133#include "gram.tab.h"
134/* Symbol kind.  */
135enum yysymbol_kind_t
136{
137  YYSYMBOL_YYEMPTY = -2,
138  YYSYMBOL_YYEOF = 0,                      /* "end of file"  */
139  YYSYMBOL_YYerror = 1,                    /* error  */
140  YYSYMBOL_YYUNDEF = 2,                    /* "invalid token"  */
141  YYSYMBOL_LB = 3,                         /* LB  */
142  YYSYMBOL_RB = 4,                         /* RB  */
143  YYSYMBOL_LP = 5,                         /* LP  */
144  YYSYMBOL_RP = 6,                         /* RP  */
145  YYSYMBOL_MENUS = 7,                      /* MENUS  */
146  YYSYMBOL_MENU = 8,                       /* MENU  */
147  YYSYMBOL_BUTTON = 9,                     /* BUTTON  */
148  YYSYMBOL_DEFAULT_FUNCTION = 10,          /* DEFAULT_FUNCTION  */
149  YYSYMBOL_PLUS = 11,                      /* PLUS  */
150  YYSYMBOL_MINUS = 12,                     /* MINUS  */
151  YYSYMBOL_ALL = 13,                       /* ALL  */
152  YYSYMBOL_OR = 14,                        /* OR  */
153  YYSYMBOL_CURSORS = 15,                   /* CURSORS  */
154  YYSYMBOL_PIXMAPS = 16,                   /* PIXMAPS  */
155  YYSYMBOL_ICONS = 17,                     /* ICONS  */
156  YYSYMBOL_COLOR = 18,                     /* COLOR  */
157  YYSYMBOL_SAVECOLOR = 19,                 /* SAVECOLOR  */
158  YYSYMBOL_MONOCHROME = 20,                /* MONOCHROME  */
159  YYSYMBOL_FUNCTION = 21,                  /* FUNCTION  */
160  YYSYMBOL_ICONMGR_SHOW = 22,              /* ICONMGR_SHOW  */
161  YYSYMBOL_ICONMGR = 23,                   /* ICONMGR  */
162  YYSYMBOL_ALTER = 24,                     /* ALTER  */
163  YYSYMBOL_WINDOW_FUNCTION = 25,           /* WINDOW_FUNCTION  */
164  YYSYMBOL_ZOOM = 26,                      /* ZOOM  */
165  YYSYMBOL_ICONMGRS = 27,                  /* ICONMGRS  */
166  YYSYMBOL_ICONMGR_GEOMETRY = 28,          /* ICONMGR_GEOMETRY  */
167  YYSYMBOL_ICONMGR_NOSHOW = 29,            /* ICONMGR_NOSHOW  */
168  YYSYMBOL_MAKE_TITLE = 30,                /* MAKE_TITLE  */
169  YYSYMBOL_ICONIFY_BY_UNMAPPING = 31,      /* ICONIFY_BY_UNMAPPING  */
170  YYSYMBOL_DONT_ICONIFY_BY_UNMAPPING = 32, /* DONT_ICONIFY_BY_UNMAPPING  */
171  YYSYMBOL_AUTO_POPUP = 33,                /* AUTO_POPUP  */
172  YYSYMBOL_NO_BORDER = 34,                 /* NO_BORDER  */
173  YYSYMBOL_NO_ICON_TITLE = 35,             /* NO_ICON_TITLE  */
174  YYSYMBOL_NO_TITLE = 36,                  /* NO_TITLE  */
175  YYSYMBOL_AUTO_RAISE = 37,                /* AUTO_RAISE  */
176  YYSYMBOL_NO_HILITE = 38,                 /* NO_HILITE  */
177  YYSYMBOL_ICON_REGION = 39,               /* ICON_REGION  */
178  YYSYMBOL_WINDOW_REGION = 40,             /* WINDOW_REGION  */
179  YYSYMBOL_META = 41,                      /* META  */
180  YYSYMBOL_SHIFT = 42,                     /* SHIFT  */
181  YYSYMBOL_LOCK = 43,                      /* LOCK  */
182  YYSYMBOL_CONTROL = 44,                   /* CONTROL  */
183  YYSYMBOL_WINDOW = 45,                    /* WINDOW  */
184  YYSYMBOL_TITLE = 46,                     /* TITLE  */
185  YYSYMBOL_ICON = 47,                      /* ICON  */
186  YYSYMBOL_ROOT = 48,                      /* ROOT  */
187  YYSYMBOL_FRAME = 49,                     /* FRAME  */
188  YYSYMBOL_COLON = 50,                     /* COLON  */
189  YYSYMBOL_EQUALS = 51,                    /* EQUALS  */
190  YYSYMBOL_SQUEEZE_TITLE = 52,             /* SQUEEZE_TITLE  */
191  YYSYMBOL_DONT_SQUEEZE_TITLE = 53,        /* DONT_SQUEEZE_TITLE  */
192  YYSYMBOL_WARP_ON_DEICONIFY = 54,         /* WARP_ON_DEICONIFY  */
193  YYSYMBOL_START_ICONIFIED = 55,           /* START_ICONIFIED  */
194  YYSYMBOL_NO_TITLE_HILITE = 56,           /* NO_TITLE_HILITE  */
195  YYSYMBOL_TITLE_HILITE = 57,              /* TITLE_HILITE  */
196  YYSYMBOL_MOVE = 58,                      /* MOVE  */
197  YYSYMBOL_RESIZE = 59,                    /* RESIZE  */
198  YYSYMBOL_WAITC = 60,                     /* WAITC  */
199  YYSYMBOL_SELECT = 61,                    /* SELECT  */
200  YYSYMBOL_KILL = 62,                      /* KILL  */
201  YYSYMBOL_LEFT_TITLEBUTTON = 63,          /* LEFT_TITLEBUTTON  */
202  YYSYMBOL_RIGHT_TITLEBUTTON = 64,         /* RIGHT_TITLEBUTTON  */
203  YYSYMBOL_NUMBER = 65,                    /* NUMBER  */
204  YYSYMBOL_KEYWORD = 66,                   /* KEYWORD  */
205  YYSYMBOL_NKEYWORD = 67,                  /* NKEYWORD  */
206  YYSYMBOL_CKEYWORD = 68,                  /* CKEYWORD  */
207  YYSYMBOL_CLKEYWORD = 69,                 /* CLKEYWORD  */
208  YYSYMBOL_FKEYWORD = 70,                  /* FKEYWORD  */
209  YYSYMBOL_FSKEYWORD = 71,                 /* FSKEYWORD  */
210  YYSYMBOL_FNKEYWORD = 72,                 /* FNKEYWORD  */
211  YYSYMBOL_PRIORITY_SWITCHING = 73,        /* PRIORITY_SWITCHING  */
212  YYSYMBOL_PRIORITY_NOT_SWITCHING = 74,    /* PRIORITY_NOT_SWITCHING  */
213  YYSYMBOL_SKEYWORD = 75,                  /* SKEYWORD  */
214  YYSYMBOL_SSKEYWORD = 76,                 /* SSKEYWORD  */
215  YYSYMBOL_WINDOW_RING = 77,               /* WINDOW_RING  */
216  YYSYMBOL_WINDOW_RING_EXCLUDE = 78,       /* WINDOW_RING_EXCLUDE  */
217  YYSYMBOL_WARP_CURSOR = 79,               /* WARP_CURSOR  */
218  YYSYMBOL_ERRORTOKEN = 80,                /* ERRORTOKEN  */
219  YYSYMBOL_GRAVITY = 81,                   /* GRAVITY  */
220  YYSYMBOL_SIJENUM = 82,                   /* SIJENUM  */
221  YYSYMBOL_NO_STACKMODE = 83,              /* NO_STACKMODE  */
222  YYSYMBOL_ALWAYS_ON_TOP = 84,             /* ALWAYS_ON_TOP  */
223  YYSYMBOL_WORKSPACE = 85,                 /* WORKSPACE  */
224  YYSYMBOL_WORKSPACES = 86,                /* WORKSPACES  */
225  YYSYMBOL_WORKSPCMGR_GEOMETRY = 87,       /* WORKSPCMGR_GEOMETRY  */
226  YYSYMBOL_OCCUPYALL = 88,                 /* OCCUPYALL  */
227  YYSYMBOL_OCCUPYLIST = 89,                /* OCCUPYLIST  */
228  YYSYMBOL_MAPWINDOWCURRENTWORKSPACE = 90, /* MAPWINDOWCURRENTWORKSPACE  */
229  YYSYMBOL_MAPWINDOWDEFAULTWORKSPACE = 91, /* MAPWINDOWDEFAULTWORKSPACE  */
230  YYSYMBOL_ON_TOP_PRIORITY = 92,           /* ON_TOP_PRIORITY  */
231  YYSYMBOL_UNMAPBYMOVINGFARAWAY = 93,      /* UNMAPBYMOVINGFARAWAY  */
232  YYSYMBOL_OPAQUEMOVE = 94,                /* OPAQUEMOVE  */
233  YYSYMBOL_NOOPAQUEMOVE = 95,              /* NOOPAQUEMOVE  */
234  YYSYMBOL_OPAQUERESIZE = 96,              /* OPAQUERESIZE  */
235  YYSYMBOL_NOOPAQUERESIZE = 97,            /* NOOPAQUERESIZE  */
236  YYSYMBOL_DONTSETINACTIVE = 98,           /* DONTSETINACTIVE  */
237  YYSYMBOL_CHANGE_WORKSPACE_FUNCTION = 99, /* CHANGE_WORKSPACE_FUNCTION  */
238  YYSYMBOL_DEICONIFY_FUNCTION = 100,       /* DEICONIFY_FUNCTION  */
239  YYSYMBOL_ICONIFY_FUNCTION = 101,         /* ICONIFY_FUNCTION  */
240  YYSYMBOL_AUTOSQUEEZE = 102,              /* AUTOSQUEEZE  */
241  YYSYMBOL_STARTSQUEEZED = 103,            /* STARTSQUEEZED  */
242  YYSYMBOL_DONT_SAVE = 104,                /* DONT_SAVE  */
243  YYSYMBOL_AUTO_LOWER = 105,               /* AUTO_LOWER  */
244  YYSYMBOL_ICONMENU_DONTSHOW = 106,        /* ICONMENU_DONTSHOW  */
245  YYSYMBOL_WINDOW_BOX = 107,               /* WINDOW_BOX  */
246  YYSYMBOL_IGNOREMODIFIER = 108,           /* IGNOREMODIFIER  */
247  YYSYMBOL_WINDOW_GEOMETRIES = 109,        /* WINDOW_GEOMETRIES  */
248  YYSYMBOL_ALWAYSSQUEEZETOGRAVITY = 110,   /* ALWAYSSQUEEZETOGRAVITY  */
249  YYSYMBOL_VIRTUAL_SCREENS = 111,          /* VIRTUAL_SCREENS  */
250  YYSYMBOL_IGNORE_TRANSIENT = 112,         /* IGNORE_TRANSIENT  */
251  YYSYMBOL_EWMH_IGNORE = 113,              /* EWMH_IGNORE  */
252  YYSYMBOL_MWM_IGNORE = 114,               /* MWM_IGNORE  */
253  YYSYMBOL_MONITOR_LAYOUT = 115,           /* MONITOR_LAYOUT  */
254  YYSYMBOL_RPLAY_SOUNDS = 116,             /* RPLAY_SOUNDS  */
255  YYSYMBOL_FORCE_FOCUS = 117,              /* FORCE_FOCUS  */
256  YYSYMBOL_STRING = 118,                   /* STRING  */
257  YYSYMBOL_YYACCEPT = 119,                 /* $accept  */
258  YYSYMBOL_twmrc = 120,                    /* twmrc  */
259  YYSYMBOL_121_1 = 121,                    /* $@1  */
260  YYSYMBOL_stmts = 122,                    /* stmts  */
261  YYSYMBOL_stmt = 123,                     /* stmt  */
262  YYSYMBOL_124_2 = 124,                    /* $@2  */
263  YYSYMBOL_125_3 = 125,                    /* $@3  */
264  YYSYMBOL_126_4 = 126,                    /* $@4  */
265  YYSYMBOL_127_5 = 127,                    /* $@5  */
266  YYSYMBOL_128_6 = 128,                    /* $@6  */
267  YYSYMBOL_129_7 = 129,                    /* $@7  */
268  YYSYMBOL_130_8 = 130,                    /* $@8  */
269  YYSYMBOL_131_9 = 131,                    /* $@9  */
270  YYSYMBOL_132_10 = 132,                   /* $@10  */
271  YYSYMBOL_133_11 = 133,                   /* $@11  */
272  YYSYMBOL_134_12 = 134,                   /* $@12  */
273  YYSYMBOL_135_13 = 135,                   /* $@13  */
274  YYSYMBOL_136_14 = 136,                   /* $@14  */
275  YYSYMBOL_137_15 = 137,                   /* $@15  */
276  YYSYMBOL_138_16 = 138,                   /* $@16  */
277  YYSYMBOL_139_17 = 139,                   /* $@17  */
278  YYSYMBOL_140_18 = 140,                   /* $@18  */
279  YYSYMBOL_141_19 = 141,                   /* $@19  */
280  YYSYMBOL_142_20 = 142,                   /* $@20  */
281  YYSYMBOL_143_21 = 143,                   /* $@21  */
282  YYSYMBOL_144_22 = 144,                   /* $@22  */
283  YYSYMBOL_145_23 = 145,                   /* $@23  */
284  YYSYMBOL_146_24 = 146,                   /* $@24  */
285  YYSYMBOL_147_25 = 147,                   /* $@25  */
286  YYSYMBOL_148_26 = 148,                   /* $@26  */
287  YYSYMBOL_149_27 = 149,                   /* $@27  */
288  YYSYMBOL_150_28 = 150,                   /* $@28  */
289  YYSYMBOL_151_29 = 151,                   /* $@29  */
290  YYSYMBOL_152_30 = 152,                   /* $@30  */
291  YYSYMBOL_153_31 = 153,                   /* $@31  */
292  YYSYMBOL_154_32 = 154,                   /* $@32  */
293  YYSYMBOL_155_33 = 155,                   /* $@33  */
294  YYSYMBOL_156_34 = 156,                   /* $@34  */
295  YYSYMBOL_157_35 = 157,                   /* $@35  */
296  YYSYMBOL_158_36 = 158,                   /* $@36  */
297  YYSYMBOL_159_37 = 159,                   /* $@37  */
298  YYSYMBOL_160_38 = 160,                   /* $@38  */
299  YYSYMBOL_161_39 = 161,                   /* $@39  */
300  YYSYMBOL_162_40 = 162,                   /* $@40  */
301  YYSYMBOL_163_41 = 163,                   /* $@41  */
302  YYSYMBOL_164_42 = 164,                   /* $@42  */
303  YYSYMBOL_165_43 = 165,                   /* $@43  */
304  YYSYMBOL_166_44 = 166,                   /* $@44  */
305  YYSYMBOL_167_45 = 167,                   /* $@45  */
306  YYSYMBOL_168_46 = 168,                   /* $@46  */
307  YYSYMBOL_169_47 = 169,                   /* $@47  */
308  YYSYMBOL_170_48 = 170,                   /* $@48  */
309  YYSYMBOL_171_49 = 171,                   /* $@49  */
310  YYSYMBOL_172_50 = 172,                   /* $@50  */
311  YYSYMBOL_173_51 = 173,                   /* $@51  */
312  YYSYMBOL_174_52 = 174,                   /* $@52  */
313  YYSYMBOL_175_53 = 175,                   /* $@53  */
314  YYSYMBOL_176_54 = 176,                   /* $@54  */
315  YYSYMBOL_177_55 = 177,                   /* $@55  */
316  YYSYMBOL_178_56 = 178,                   /* $@56  */
317  YYSYMBOL_179_57 = 179,                   /* $@57  */
318  YYSYMBOL_180_58 = 180,                   /* $@58  */
319  YYSYMBOL_181_59 = 181,                   /* $@59  */
320  YYSYMBOL_182_60 = 182,                   /* $@60  */
321  YYSYMBOL_183_61 = 183,                   /* $@61  */
322  YYSYMBOL_184_62 = 184,                   /* $@62  */
323  YYSYMBOL_185_63 = 185,                   /* $@63  */
324  YYSYMBOL_186_64 = 186,                   /* $@64  */
325  YYSYMBOL_187_65 = 187,                   /* $@65  */
326  YYSYMBOL_188_66 = 188,                   /* $@66  */
327  YYSYMBOL_189_67 = 189,                   /* $@67  */
328  YYSYMBOL_190_68 = 190,                   /* $@68  */
329  YYSYMBOL_191_69 = 191,                   /* $@69  */
330  YYSYMBOL_noarg = 192,                    /* noarg  */
331  YYSYMBOL_sarg = 193,                     /* sarg  */
332  YYSYMBOL_narg = 194,                     /* narg  */
333  YYSYMBOL_keyaction = 195,                /* keyaction  */
334  YYSYMBOL_full = 196,                     /* full  */
335  YYSYMBOL_fullkey = 197,                  /* fullkey  */
336  YYSYMBOL_keys = 198,                     /* keys  */
337  YYSYMBOL_key = 199,                      /* key  */
338  YYSYMBOL_vgrav = 200,                    /* vgrav  */
339  YYSYMBOL_hgrav = 201,                    /* hgrav  */
340  YYSYMBOL_contexts = 202,                 /* contexts  */
341  YYSYMBOL_context = 203,                  /* context  */
342  YYSYMBOL_contextkeys = 204,              /* contextkeys  */
343  YYSYMBOL_contextkey = 205,               /* contextkey  */
344  YYSYMBOL_binding_list = 206,             /* binding_list  */
345  YYSYMBOL_binding_entries = 207,          /* binding_entries  */
346  YYSYMBOL_binding_entry = 208,            /* binding_entry  */
347  YYSYMBOL_pixmap_list = 209,              /* pixmap_list  */
348  YYSYMBOL_pixmap_entries = 210,           /* pixmap_entries  */
349  YYSYMBOL_pixmap_entry = 211,             /* pixmap_entry  */
350  YYSYMBOL_cursor_list = 212,              /* cursor_list  */
351  YYSYMBOL_cursor_entries = 213,           /* cursor_entries  */
352  YYSYMBOL_cursor_entry = 214,             /* cursor_entry  */
353  YYSYMBOL_color_list = 215,               /* color_list  */
354  YYSYMBOL_color_entries = 216,            /* color_entries  */
355  YYSYMBOL_color_entry = 217,              /* color_entry  */
356  YYSYMBOL_218_70 = 218,                   /* $@70  */
357  YYSYMBOL_save_color_list = 219,          /* save_color_list  */
358  YYSYMBOL_s_color_entries = 220,          /* s_color_entries  */
359  YYSYMBOL_s_color_entry = 221,            /* s_color_entry  */
360  YYSYMBOL_win_color_list = 222,           /* win_color_list  */
361  YYSYMBOL_win_color_entries = 223,        /* win_color_entries  */
362  YYSYMBOL_win_color_entry = 224,          /* win_color_entry  */
363  YYSYMBOL_wingeom_list = 225,             /* wingeom_list  */
364  YYSYMBOL_wingeom_entries = 226,          /* wingeom_entries  */
365  YYSYMBOL_wingeom_entry = 227,            /* wingeom_entry  */
366  YYSYMBOL_vscreen_geom_list = 228,        /* vscreen_geom_list  */
367  YYSYMBOL_vscreen_geom_entries = 229,     /* vscreen_geom_entries  */
368  YYSYMBOL_vscreen_geom_entry = 230,       /* vscreen_geom_entry  */
369  YYSYMBOL_ewmh_ignore_list = 231,         /* ewmh_ignore_list  */
370  YYSYMBOL_ewmh_ignore_entries = 232,      /* ewmh_ignore_entries  */
371  YYSYMBOL_ewmh_ignore_entry = 233,        /* ewmh_ignore_entry  */
372  YYSYMBOL_mwm_ignore_list = 234,          /* mwm_ignore_list  */
373  YYSYMBOL_mwm_ignore_entries = 235,       /* mwm_ignore_entries  */
374  YYSYMBOL_mwm_ignore_entry = 236,         /* mwm_ignore_entry  */
375  YYSYMBOL_layout_geom_list = 237,         /* layout_geom_list  */
376  YYSYMBOL_layout_geom_entries = 238,      /* layout_geom_entries  */
377  YYSYMBOL_layout_geom_entry = 239,        /* layout_geom_entry  */
378  YYSYMBOL_squeeze = 240,                  /* squeeze  */
379  YYSYMBOL_241_71 = 241,                   /* $@71  */
380  YYSYMBOL_242_72 = 242,                   /* $@72  */
381  YYSYMBOL_win_sqz_entries = 243,          /* win_sqz_entries  */
382  YYSYMBOL_iconm_list = 244,               /* iconm_list  */
383  YYSYMBOL_iconm_entries = 245,            /* iconm_entries  */
384  YYSYMBOL_iconm_entry = 246,              /* iconm_entry  */
385  YYSYMBOL_workspc_list = 247,             /* workspc_list  */
386  YYSYMBOL_workspc_entries = 248,          /* workspc_entries  */
387  YYSYMBOL_workspc_entry = 249,            /* workspc_entry  */
388  YYSYMBOL_250_73 = 250,                   /* $@73  */
389  YYSYMBOL_workapp_list = 251,             /* workapp_list  */
390  YYSYMBOL_workapp_entries = 252,          /* workapp_entries  */
391  YYSYMBOL_workapp_entry = 253,            /* workapp_entry  */
392  YYSYMBOL_curwork = 254,                  /* curwork  */
393  YYSYMBOL_defwork = 255,                  /* defwork  */
394  YYSYMBOL_win_list = 256,                 /* win_list  */
395  YYSYMBOL_win_entries = 257,              /* win_entries  */
396  YYSYMBOL_win_entry = 258,                /* win_entry  */
397  YYSYMBOL_occupy_list = 259,              /* occupy_list  */
398  YYSYMBOL_occupy_entries = 260,           /* occupy_entries  */
399  YYSYMBOL_occupy_entry = 261,             /* occupy_entry  */
400  YYSYMBOL_262_74 = 262,                   /* $@74  */
401  YYSYMBOL_263_75 = 263,                   /* $@75  */
402  YYSYMBOL_264_76 = 264,                   /* $@76  */
403  YYSYMBOL_occupy_workspc_list = 265,      /* occupy_workspc_list  */
404  YYSYMBOL_occupy_workspc_entries = 266,   /* occupy_workspc_entries  */
405  YYSYMBOL_occupy_workspc_entry = 267,     /* occupy_workspc_entry  */
406  YYSYMBOL_occupy_window_list = 268,       /* occupy_window_list  */
407  YYSYMBOL_occupy_window_entries = 269,    /* occupy_window_entries  */
408  YYSYMBOL_occupy_window_entry = 270,      /* occupy_window_entry  */
409  YYSYMBOL_icon_list = 271,                /* icon_list  */
410  YYSYMBOL_icon_entries = 272,             /* icon_entries  */
411  YYSYMBOL_icon_entry = 273,               /* icon_entry  */
412  YYSYMBOL_rplay_sounds_list = 274,        /* rplay_sounds_list  */
413  YYSYMBOL_rplay_sounds_entries = 275,     /* rplay_sounds_entries  */
414  YYSYMBOL_rplay_sounds_entry = 276,       /* rplay_sounds_entry  */
415  YYSYMBOL_function = 277,                 /* function  */
416  YYSYMBOL_function_entries = 278,         /* function_entries  */
417  YYSYMBOL_function_entry = 279,           /* function_entry  */
418  YYSYMBOL_menu = 280,                     /* menu  */
419  YYSYMBOL_menu_entries = 281,             /* menu_entries  */
420  YYSYMBOL_menu_entry = 282,               /* menu_entry  */
421  YYSYMBOL_action = 283,                   /* action  */
422  YYSYMBOL_signed_number = 284,            /* signed_number  */
423  YYSYMBOL_button = 285,                   /* button  */
424  YYSYMBOL_string = 286,                   /* string  */
425  YYSYMBOL_number = 287                    /* number  */
426};
427typedef enum yysymbol_kind_t yysymbol_kind_t;
428
429
430
431
432#ifdef short
433# undef short
434#endif
435
436/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
437   <limits.h> and (if available) <stdint.h> are included
438   so that the code can choose integer types of a good width.  */
439
440#ifndef __PTRDIFF_MAX__
441# include <limits.h> /* INFRINGES ON USER NAME SPACE */
442# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
443#  include <stdint.h> /* INFRINGES ON USER NAME SPACE */
444#  define YY_STDINT_H
445# endif
446#endif
447
448/* Narrow types that promote to a signed type and that can represent a
449   signed or unsigned integer of at least N bits.  In tables they can
450   save space and decrease cache pressure.  Promoting to a signed type
451   helps avoid bugs in integer arithmetic.  */
452
453#ifdef __INT_LEAST8_MAX__
454typedef __INT_LEAST8_TYPE__ yytype_int8;
455#elif defined YY_STDINT_H
456typedef int_least8_t yytype_int8;
457#else
458typedef signed char yytype_int8;
459#endif
460
461#ifdef __INT_LEAST16_MAX__
462typedef __INT_LEAST16_TYPE__ yytype_int16;
463#elif defined YY_STDINT_H
464typedef int_least16_t yytype_int16;
465#else
466typedef short yytype_int16;
467#endif
468
469/* Work around bug in HP-UX 11.23, which defines these macros
470   incorrectly for preprocessor constants.  This workaround can likely
471   be removed in 2023, as HPE has promised support for HP-UX 11.23
472   (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
473   <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>.  */
474#ifdef __hpux
475# undef UINT_LEAST8_MAX
476# undef UINT_LEAST16_MAX
477# define UINT_LEAST8_MAX 255
478# define UINT_LEAST16_MAX 65535
479#endif
480
481#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
482typedef __UINT_LEAST8_TYPE__ yytype_uint8;
483#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
484       && UINT_LEAST8_MAX <= INT_MAX)
485typedef uint_least8_t yytype_uint8;
486#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
487typedef unsigned char yytype_uint8;
488#else
489typedef short yytype_uint8;
490#endif
491
492#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
493typedef __UINT_LEAST16_TYPE__ yytype_uint16;
494#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
495       && UINT_LEAST16_MAX <= INT_MAX)
496typedef uint_least16_t yytype_uint16;
497#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
498typedef unsigned short yytype_uint16;
499#else
500typedef int yytype_uint16;
501#endif
502
503#ifndef YYPTRDIFF_T
504# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
505#  define YYPTRDIFF_T __PTRDIFF_TYPE__
506#  define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
507# elif defined PTRDIFF_MAX
508#  ifndef ptrdiff_t
509#   include <stddef.h> /* INFRINGES ON USER NAME SPACE */
510#  endif
511#  define YYPTRDIFF_T ptrdiff_t
512#  define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
513# else
514#  define YYPTRDIFF_T long
515#  define YYPTRDIFF_MAXIMUM LONG_MAX
516# endif
517#endif
518
519#ifndef YYSIZE_T
520# ifdef __SIZE_TYPE__
521#  define YYSIZE_T __SIZE_TYPE__
522# elif defined size_t
523#  define YYSIZE_T size_t
524# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
525#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
526#  define YYSIZE_T size_t
527# else
528#  define YYSIZE_T unsigned
529# endif
530#endif
531
532#define YYSIZE_MAXIMUM                                  \
533  YY_CAST (YYPTRDIFF_T,                                 \
534           (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1)  \
535            ? YYPTRDIFF_MAXIMUM                         \
536            : YY_CAST (YYSIZE_T, -1)))
537
538#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
539
540
541/* Stored state numbers (used for stacks). */
542typedef yytype_int16 yy_state_t;
543
544/* State numbers in computations.  */
545typedef int yy_state_fast_t;
546
547#ifndef YY_
548# if defined YYENABLE_NLS && YYENABLE_NLS
549#  if ENABLE_NLS
550#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
551#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
552#  endif
553# endif
554# ifndef YY_
555#  define YY_(Msgid) Msgid
556# endif
557#endif
558
559
560#ifndef YY_ATTRIBUTE_PURE
561# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
562#  define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
563# else
564#  define YY_ATTRIBUTE_PURE
565# endif
566#endif
567
568#ifndef YY_ATTRIBUTE_UNUSED
569# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
570#  define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
571# else
572#  define YY_ATTRIBUTE_UNUSED
573# endif
574#endif
575
576/* Suppress unused-variable warnings by "using" E.  */
577#if ! defined lint || defined __GNUC__
578# define YY_USE(E) ((void) (E))
579#else
580# define YY_USE(E) /* empty */
581#endif
582
583/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
584#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
585# if __GNUC__ * 100 + __GNUC_MINOR__ < 407
586#  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
587    _Pragma ("GCC diagnostic push")                                     \
588    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
589# else
590#  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
591    _Pragma ("GCC diagnostic push")                                     \
592    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")              \
593    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
594# endif
595# define YY_IGNORE_MAYBE_UNINITIALIZED_END      \
596    _Pragma ("GCC diagnostic pop")
597#else
598# define YY_INITIAL_VALUE(Value) Value
599#endif
600#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
601# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
602# define YY_IGNORE_MAYBE_UNINITIALIZED_END
603#endif
604#ifndef YY_INITIAL_VALUE
605# define YY_INITIAL_VALUE(Value) /* Nothing. */
606#endif
607
608#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
609# define YY_IGNORE_USELESS_CAST_BEGIN                          \
610    _Pragma ("GCC diagnostic push")                            \
611    _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
612# define YY_IGNORE_USELESS_CAST_END            \
613    _Pragma ("GCC diagnostic pop")
614#endif
615#ifndef YY_IGNORE_USELESS_CAST_BEGIN
616# define YY_IGNORE_USELESS_CAST_BEGIN
617# define YY_IGNORE_USELESS_CAST_END
618#endif
619
620
621#define YY_ASSERT(E) ((void) (0 && (E)))
622
623#if !defined yyoverflow
624
625/* The parser invokes alloca or malloc; define the necessary symbols.  */
626
627# ifdef YYSTACK_USE_ALLOCA
628#  if YYSTACK_USE_ALLOCA
629#   ifdef __GNUC__
630#    define YYSTACK_ALLOC __builtin_alloca
631#   elif defined __BUILTIN_VA_ARG_INCR
632#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
633#   elif defined _AIX
634#    define YYSTACK_ALLOC __alloca
635#   elif defined _MSC_VER
636#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
637#    define alloca _alloca
638#   else
639#    define YYSTACK_ALLOC alloca
640#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
641#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
642      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
643#     ifndef EXIT_SUCCESS
644#      define EXIT_SUCCESS 0
645#     endif
646#    endif
647#   endif
648#  endif
649# endif
650
651# ifdef YYSTACK_ALLOC
652   /* Pacify GCC's 'empty if-body' warning.  */
653#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
654#  ifndef YYSTACK_ALLOC_MAXIMUM
655    /* The OS might guarantee only one guard page at the bottom of the stack,
656       and a page size can be as small as 4096 bytes.  So we cannot safely
657       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
658       to allow for a few compiler-allocated temporary stack slots.  */
659#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
660#  endif
661# else
662#  define YYSTACK_ALLOC YYMALLOC
663#  define YYSTACK_FREE YYFREE
664#  ifndef YYSTACK_ALLOC_MAXIMUM
665#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
666#  endif
667#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
668       && ! ((defined YYMALLOC || defined malloc) \
669             && (defined YYFREE || defined free)))
670#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
671#   ifndef EXIT_SUCCESS
672#    define EXIT_SUCCESS 0
673#   endif
674#  endif
675#  ifndef YYMALLOC
676#   define YYMALLOC malloc
677#   if ! defined malloc && ! defined EXIT_SUCCESS
678void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
679#   endif
680#  endif
681#  ifndef YYFREE
682#   define YYFREE free
683#   if ! defined free && ! defined EXIT_SUCCESS
684void free (void *); /* INFRINGES ON USER NAME SPACE */
685#   endif
686#  endif
687# endif
688#endif /* !defined yyoverflow */
689
690#if (! defined yyoverflow \
691     && (! defined __cplusplus \
692         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
693
694/* A type that is properly aligned for any stack member.  */
695union yyalloc
696{
697  yy_state_t yyss_alloc;
698  YYSTYPE yyvs_alloc;
699};
700
701/* The size of the maximum gap between one aligned stack and the next.  */
702# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
703
704/* The size of an array large to enough to hold all stacks, each with
705   N elements.  */
706# define YYSTACK_BYTES(N) \
707     ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
708      + YYSTACK_GAP_MAXIMUM)
709
710# define YYCOPY_NEEDED 1
711
712/* Relocate STACK from its old location to the new one.  The
713   local variables YYSIZE and YYSTACKSIZE give the old and new number of
714   elements in the stack, and YYPTR gives the new location of the
715   stack.  Advance YYPTR to a properly aligned location for the next
716   stack.  */
717# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
718    do                                                                  \
719      {                                                                 \
720        YYPTRDIFF_T yynewbytes;                                         \
721        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
722        Stack = &yyptr->Stack_alloc;                                    \
723        yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
724        yyptr += yynewbytes / YYSIZEOF (*yyptr);                        \
725      }                                                                 \
726    while (0)
727
728#endif
729
730#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
731/* Copy COUNT objects from SRC to DST.  The source and destination do
732   not overlap.  */
733# ifndef YYCOPY
734#  if defined __GNUC__ && 1 < __GNUC__
735#   define YYCOPY(Dst, Src, Count) \
736      __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
737#  else
738#   define YYCOPY(Dst, Src, Count)              \
739      do                                        \
740        {                                       \
741          YYPTRDIFF_T yyi;                      \
742          for (yyi = 0; yyi < (Count); yyi++)   \
743            (Dst)[yyi] = (Src)[yyi];            \
744        }                                       \
745      while (0)
746#  endif
747# endif
748#endif /* !YYCOPY_NEEDED */
749
750/* YYFINAL -- State number of the termination state.  */
751#define YYFINAL  3
752/* YYLAST -- Last index in YYTABLE.  */
753#define YYLAST   977
754
755/* YYNTOKENS -- Number of terminals.  */
756#define YYNTOKENS  119
757/* YYNNTS -- Number of nonterminals.  */
758#define YYNNTS  169
759/* YYNRULES -- Number of rules.  */
760#define YYNRULES  388
761/* YYNSTATES -- Number of states.  */
762#define YYNSTATES  554
763
764/* YYMAXUTOK -- Last valid token kind.  */
765#define YYMAXUTOK   373
766
767
768/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
769   as returned by yylex, with out-of-bounds checking.  */
770#define YYTRANSLATE(YYX)                                \
771  (0 <= (YYX) && (YYX) <= YYMAXUTOK                     \
772   ? YY_CAST (yysymbol_kind_t, yytranslate[YYX])        \
773   : YYSYMBOL_YYUNDEF)
774
775/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
776   as returned by yylex.  */
777static const yytype_int8 yytranslate[] =
778{
779       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
780       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
781       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
782       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
783       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
784       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
785       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
786       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
787       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
788       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
789       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
790       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
791       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
792       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
793       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
794       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
795       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
796       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
797       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
798       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
799       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
800       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
801       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
802       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
803       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
804       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
805       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
806      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
807      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
808      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
809      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
810      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
811      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
812      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
813      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
814      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
815     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
816     115,   116,   117,   118
817};
818
819#if YYDEBUG
820/* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
821static const yytype_int16 yyrline[] =
822{
823       0,   109,   109,   109,   113,   114,   117,   118,   119,   120,
824     121,   122,   125,   128,   131,   134,   134,   138,   138,   142,
825     142,   146,   146,   151,   151,   156,   156,   163,   169,   172,
826     178,   181,   181,   184,   184,   187,   193,   195,   196,   197,
827     197,   199,   202,   202,   204,   205,   205,   207,   208,   208,
828     210,   211,   211,   213,   215,   218,   221,   221,   223,   223,
829     225,   229,   245,   246,   248,   248,   250,   250,   253,   255,
830     252,   257,   257,   259,   259,   261,   261,   263,   263,   265,
831     265,   267,   267,   269,   270,   270,   272,   272,   274,   274,
832     276,   277,   277,   279,   279,   281,   281,   283,   285,   285,
833     287,   289,   291,   294,   293,   297,   296,   299,   299,   301,
834     301,   304,   304,   308,   307,   312,   311,   317,   317,   319,
835     321,   321,   323,   324,   324,   326,   326,   335,   335,   337,
836     339,   339,   341,   343,   343,   345,   345,   347,   347,   349,
837     349,   351,   352,   352,   354,   354,   356,   357,   357,   360,
838     360,   362,   362,   364,   364,   366,   366,   368,   368,   370,
839     370,   372,   388,   396,   404,   412,   420,   420,   422,   424,
840     424,   426,   427,   427,   431,   431,   433,   433,   435,   435,
841     437,   437,   439,   439,   441,   441,   443,   444,   444,   448,
842     458,   466,   476,   485,   493,   503,   515,   518,   521,   524,
843     525,   528,   529,   530,   531,   532,   542,   552,   555,   570,
844     585,   586,   589,   590,   591,   592,   593,   594,   595,   596,
845     597,   598,   599,   602,   603,   606,   607,   608,   609,   610,
846     611,   612,   613,   614,   615,   616,   617,   621,   624,   625,
847     628,   629,   630,   638,   641,   642,   645,   649,   652,   653,
848     656,   658,   660,   662,   664,   666,   668,   670,   672,   674,
849     676,   678,   680,   682,   684,   686,   688,   690,   692,   694,
850     696,   698,   702,   706,   707,   710,   719,   719,   730,   741,
851     744,   745,   748,   749,   752,   755,   756,   759,   764,   767,
852     768,   771,   774,   777,   778,   781,   789,   792,   793,   796,
853     800,   803,   804,   807,   811,   814,   815,   818,   822,   825,
854     825,   830,   831,   831,   835,   836,   844,   847,   848,   851,
855     856,   864,   867,   868,   871,   874,   874,   880,   883,   884,
856     887,   890,   893,   896,   899,   904,   907,   910,   913,   918,
857     921,   924,   927,   932,   935,   936,   939,   944,   947,   948,
858     951,   951,   953,   953,   955,   955,   959,   962,   963,   966,
859     974,   977,   978,   981,   989,   992,   993,   996,   999,  1010,
860    1011,  1014,  1025,  1028,  1029,  1032,  1038,  1041,  1042,  1045,
861    1055,  1067,  1068,  1110,  1111,  1112,  1115,  1127,  1133
862};
863#endif
864
865/** Accessing symbol of state STATE.  */
866#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
867
868#if YYDEBUG || 0
869/* The user-facing name of the symbol whose (internal) number is
870   YYSYMBOL.  No bounds checking.  */
871static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
872
873/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
874   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
875static const char *const yytname[] =
876{
877  "\"end of file\"", "error", "\"invalid token\"", "LB", "RB", "LP", "RP",
878  "MENUS", "MENU", "BUTTON", "DEFAULT_FUNCTION", "PLUS", "MINUS", "ALL",
879  "OR", "CURSORS", "PIXMAPS", "ICONS", "COLOR", "SAVECOLOR", "MONOCHROME",
880  "FUNCTION", "ICONMGR_SHOW", "ICONMGR", "ALTER", "WINDOW_FUNCTION",
881  "ZOOM", "ICONMGRS", "ICONMGR_GEOMETRY", "ICONMGR_NOSHOW", "MAKE_TITLE",
882  "ICONIFY_BY_UNMAPPING", "DONT_ICONIFY_BY_UNMAPPING", "AUTO_POPUP",
883  "NO_BORDER", "NO_ICON_TITLE", "NO_TITLE", "AUTO_RAISE", "NO_HILITE",
884  "ICON_REGION", "WINDOW_REGION", "META", "SHIFT", "LOCK", "CONTROL",
885  "WINDOW", "TITLE", "ICON", "ROOT", "FRAME", "COLON", "EQUALS",
886  "SQUEEZE_TITLE", "DONT_SQUEEZE_TITLE", "WARP_ON_DEICONIFY",
887  "START_ICONIFIED", "NO_TITLE_HILITE", "TITLE_HILITE", "MOVE", "RESIZE",
888  "WAITC", "SELECT", "KILL", "LEFT_TITLEBUTTON", "RIGHT_TITLEBUTTON",
889  "NUMBER", "KEYWORD", "NKEYWORD", "CKEYWORD", "CLKEYWORD", "FKEYWORD",
890  "FSKEYWORD", "FNKEYWORD", "PRIORITY_SWITCHING", "PRIORITY_NOT_SWITCHING",
891  "SKEYWORD", "SSKEYWORD", "WINDOW_RING", "WINDOW_RING_EXCLUDE",
892  "WARP_CURSOR", "ERRORTOKEN", "GRAVITY", "SIJENUM", "NO_STACKMODE",
893  "ALWAYS_ON_TOP", "WORKSPACE", "WORKSPACES", "WORKSPCMGR_GEOMETRY",
894  "OCCUPYALL", "OCCUPYLIST", "MAPWINDOWCURRENTWORKSPACE",
895  "MAPWINDOWDEFAULTWORKSPACE", "ON_TOP_PRIORITY", "UNMAPBYMOVINGFARAWAY",
896  "OPAQUEMOVE", "NOOPAQUEMOVE", "OPAQUERESIZE", "NOOPAQUERESIZE",
897  "DONTSETINACTIVE", "CHANGE_WORKSPACE_FUNCTION", "DEICONIFY_FUNCTION",
898  "ICONIFY_FUNCTION", "AUTOSQUEEZE", "STARTSQUEEZED", "DONT_SAVE",
899  "AUTO_LOWER", "ICONMENU_DONTSHOW", "WINDOW_BOX", "IGNOREMODIFIER",
900  "WINDOW_GEOMETRIES", "ALWAYSSQUEEZETOGRAVITY", "VIRTUAL_SCREENS",
901  "IGNORE_TRANSIENT", "EWMH_IGNORE", "MWM_IGNORE", "MONITOR_LAYOUT",
902  "RPLAY_SOUNDS", "FORCE_FOCUS", "STRING", "$accept", "twmrc", "$@1",
903  "stmts", "stmt", "$@2", "$@3", "$@4", "$@5", "$@6", "$@7", "$@8", "$@9",
904  "$@10", "$@11", "$@12", "$@13", "$@14", "$@15", "$@16", "$@17", "$@18",
905  "$@19", "$@20", "$@21", "$@22", "$@23", "$@24", "$@25", "$@26", "$@27",
906  "$@28", "$@29", "$@30", "$@31", "$@32", "$@33", "$@34", "$@35", "$@36",
907  "$@37", "$@38", "$@39", "$@40", "$@41", "$@42", "$@43", "$@44", "$@45",
908  "$@46", "$@47", "$@48", "$@49", "$@50", "$@51", "$@52", "$@53", "$@54",
909  "$@55", "$@56", "$@57", "$@58", "$@59", "$@60", "$@61", "$@62", "$@63",
910  "$@64", "$@65", "$@66", "$@67", "$@68", "$@69", "noarg", "sarg", "narg",
911  "keyaction", "full", "fullkey", "keys", "key", "vgrav", "hgrav",
912  "contexts", "context", "contextkeys", "contextkey", "binding_list",
913  "binding_entries", "binding_entry", "pixmap_list", "pixmap_entries",
914  "pixmap_entry", "cursor_list", "cursor_entries", "cursor_entry",
915  "color_list", "color_entries", "color_entry", "$@70", "save_color_list",
916  "s_color_entries", "s_color_entry", "win_color_list",
917  "win_color_entries", "win_color_entry", "wingeom_list",
918  "wingeom_entries", "wingeom_entry", "vscreen_geom_list",
919  "vscreen_geom_entries", "vscreen_geom_entry", "ewmh_ignore_list",
920  "ewmh_ignore_entries", "ewmh_ignore_entry", "mwm_ignore_list",
921  "mwm_ignore_entries", "mwm_ignore_entry", "layout_geom_list",
922  "layout_geom_entries", "layout_geom_entry", "squeeze", "$@71", "$@72",
923  "win_sqz_entries", "iconm_list", "iconm_entries", "iconm_entry",
924  "workspc_list", "workspc_entries", "workspc_entry", "$@73",
925  "workapp_list", "workapp_entries", "workapp_entry", "curwork", "defwork",
926  "win_list", "win_entries", "win_entry", "occupy_list", "occupy_entries",
927  "occupy_entry", "$@74", "$@75", "$@76", "occupy_workspc_list",
928  "occupy_workspc_entries", "occupy_workspc_entry", "occupy_window_list",
929  "occupy_window_entries", "occupy_window_entry", "icon_list",
930  "icon_entries", "icon_entry", "rplay_sounds_list",
931  "rplay_sounds_entries", "rplay_sounds_entry", "function",
932  "function_entries", "function_entry", "menu", "menu_entries",
933  "menu_entry", "action", "signed_number", "button", "string", "number", YY_NULLPTR
934};
935
936static const char *
937yysymbol_name (yysymbol_kind_t yysymbol)
938{
939  return yytname[yysymbol];
940}
941#endif
942
943#define YYPACT_NINF (-244)
944
945#define yypact_value_is_default(Yyn) \
946  ((Yyn) == YYPACT_NINF)
947
948#define YYTABLE_NINF (-326)
949
950#define yytable_value_is_error(Yyn) \
951  0
952
953/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
954   STATE-NUM.  */
955static const yytype_int16 yypact[] =
956{
957    -244,    62,  -244,  -244,   611,  -244,   -53,    21,   -10,    67,
958      68,  -244,  -244,  -244,  -244,   -53,  -244,   -10,    21,  -244,
959     -53,    69,  -244,    73,  -244,    74,  -244,    79,    81,    85,
960      87,   -53,   -53,    89,    90,  -244,  -244,    94,   -53,   -53,
961    -244,    21,    82,    91,   -53,   -53,   104,  -244,   108,   111,
962    -244,  -244,   -53,  -244,  -244,  -244,  -244,    41,  -244,   112,
963     114,   115,   118,  -244,   -10,   -10,   -10,  -244,  -244,  -244,
964     125,  -244,   -53,  -244,  -244,   128,  -244,  -244,  -244,  -244,
965    -244,  -244,   136,  -244,  -244,  -244,  -244,  -244,  -244,     4,
966      95,   149,  -244,  -244,  -244,   -53,  -244,  -244,  -244,  -244,
967    -244,   163,   165,   166,   165,  -244,   167,  -244,  -244,   171,
968      21,   167,   167,   167,   167,   167,   167,   167,   167,   167,
969     167,    78,    78,   172,   167,   167,   167,   167,   121,   131,
970    -244,  -244,   167,  -244,   167,  -244,   -53,   167,   167,   167,
971     167,   167,   173,    21,   167,   187,   188,   189,    21,    21,
972      45,   205,  -244,   167,   167,   167,   167,   167,   167,  -244,
973    -244,  -244,   167,   167,   167,   167,   167,   -53,   218,   219,
974     167,   220,   167,   222,   223,   224,   225,   167,  -244,  -244,
975    -244,  -244,  -244,  -244,   -53,   226,  -244,   156,    30,  -244,
976    -244,  -244,  -244,  -244,  -244,  -244,   228,  -244,  -244,  -244,
977    -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,
978    -244,  -244,  -244,   151,   151,  -244,  -244,  -244,  -244,  -244,
979     -10,   230,   -10,   230,   167,  -244,   167,  -244,  -244,  -244,
980    -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,
981     -53,  -244,   -53,  -244,  -244,  -244,   232,   167,  -244,  -244,
982    -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,
983    -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,
984    -244,  -244,  -244,  -244,  -244,  -244,   157,   169,   159,  -244,
985    -244,  -244,   -53,   -53,   -53,   -53,   -53,   -53,   -53,   -53,
986     -53,   -53,   -53,  -244,  -244,   -53,  -244,     7,    12,    -2,
987    -244,  -244,     8,     9,  -244,    21,  -244,    11,  -244,  -244,
988    -244,  -244,  -244,  -244,   167,    14,     6,    15,    16,   167,
989    -244,   167,   153,    17,    18,    19,    20,    23,    25,  -244,
990      21,    21,  -244,  -244,  -244,  -244,  -244,  -244,   -53,    26,
991     -53,   -53,   -53,   -53,   -53,   -53,   -53,   -53,   -53,   -53,
992     -53,  -244,  -244,  -244,   -53,  -244,   -53,   -53,  -244,  -244,
993    -244,  -244,  -244,    24,  -244,  -244,  -244,  -244,  -244,   -53,
994      21,   167,  -244,   155,    50,  -244,  -244,  -244,   235,  -244,
995     -53,   -53,  -244,  -244,  -244,    27,  -244,    31,  -244,  -244,
996     236,  -244,  -244,   -53,  -244,  -244,  -244,  -244,  -244,  -244,
997    -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,   -53,  -244,
998    -244,   139,    55,   233,  -244,  -244,    42,  -244,  -244,  -244,
999    -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,
1000     238,  -244,  -244,  -244,   -20,     1,  -244,    45,  -244,  -244,
1001      13,   239,  -244,  -244,   240,  -244,    32,  -244,    33,  -244,
1002    -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,
1003    -244,  -244,   -10,  -244,  -244,  -244,  -244,  -244,  -244,  -244,
1004    -244,  -244,  -244,  -244,  -244,   -10,  -244,  -244,  -244,  -244,
1005     -53,  -244,   241,    21,  -244,   167,     2,    21,   -10,   -10,
1006    -244,  -244,  -244,   240,   242,  -244,  -244,  -244,   247,  -244,
1007     248,  -244,  -244,   226,   196,  -244,  -244,  -244,  -244,   167,
1008       5,  -244,  -244,   206,  -244,    37,  -244,  -244,  -244,    38,
1009    -244,  -244,  -244,   -53,    39,  -244,   167,   250,   -10,  -244,
1010    -244,   -53,    40,  -244,  -244,  -244,   249,  -244,  -244,   -53,
1011    -244,   167,  -244,   -53,  -244,  -244,  -244,   -10,  -244,  -244,
1012     -53,  -244,   -53,  -244
1013};
1014
1015/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1016   Performed when YYTABLE does not specify something else to do.  Zero
1017   means the default is an error.  */
1018static const yytype_int16 yydefact[] =
1019{
1020       2,     0,     4,     1,     0,     6,     0,     0,     0,     0,
1021       0,   153,   155,   157,   159,     0,    93,     0,    36,    91,
1022       0,    90,   135,    41,    64,   122,   120,   129,   132,   141,
1023     100,     0,     0,   308,   311,   142,   137,    97,     0,     0,
1024     189,     0,   109,   111,   191,   194,   171,   172,   168,   119,
1025     107,    66,     0,    71,    75,    31,    33,     0,    77,    44,
1026      47,    50,    53,    86,     0,     0,     0,    79,    81,   125,
1027     146,    73,     0,    68,   174,    83,   176,   133,   178,   180,
1028     182,   184,   186,   387,     5,     7,     8,     9,    10,     0,
1029       0,   149,   388,   386,   381,     0,   161,   248,    38,   244,
1030      37,     0,     0,     0,     0,   151,     0,   162,    35,     0,
1031      28,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1032       0,     0,     0,     0,     0,     0,     0,     0,    56,    58,
1033     195,   113,     0,   115,     0,   190,   193,     0,     0,     0,
1034       0,     0,     0,    30,     0,     0,     0,     0,     0,     0,
1035       0,   101,   383,     0,     0,     0,     0,     0,     0,   163,
1036     164,   165,     0,     0,     0,     0,     0,     0,     0,     0,
1037       0,     0,     0,     0,     0,     0,     0,     0,   199,    63,
1038      61,    60,   199,    62,     0,     0,   382,     0,     0,   365,
1039     154,   273,   156,   280,   158,   160,     0,   344,    94,   317,
1040      92,    27,    89,   136,    40,    65,   124,   121,   128,   131,
1041     140,    99,   208,     0,     0,   314,   313,   143,   138,    96,
1042       0,     0,     0,     0,     0,   110,     0,   112,   192,   170,
1043     173,   167,   118,   108,   322,    67,    29,    72,   348,    76,
1044       0,    32,     0,    34,   384,   385,   102,     0,    78,    43,
1045      46,    49,    52,    87,    80,    82,   126,   145,    74,    25,
1046     199,   289,   175,    85,   293,   177,   134,   297,   179,   301,
1047     181,   305,   183,   369,   185,   188,     0,     0,     0,   377,
1048     150,   247,     0,     0,     0,     0,     0,     0,     0,     0,
1049       0,     0,     0,   249,   243,     0,   245,     0,     0,     0,
1050     373,   152,     0,     0,   209,     0,    23,     0,    54,   238,
1051      57,    55,    59,   114,     0,     0,     0,     0,     0,     0,
1052     104,     0,    69,     0,     0,     0,     0,     0,     0,   207,
1053       0,   201,   202,   203,   204,   210,   200,   223,     0,     0,
1054     267,   259,   257,   253,   255,   251,   261,   263,   265,   269,
1055     271,   246,   364,   366,     0,   272,     0,     0,   274,   279,
1056     283,   281,   282,     0,   343,   345,   346,   316,   318,     0,
1057       0,     0,   310,     0,     0,   116,   321,   323,   324,   347,
1058       0,     0,   349,   350,   335,     0,   339,     0,   106,    26,
1059       0,   288,   290,     0,   292,   294,   295,   296,   298,   299,
1060     300,   302,   303,   304,   306,   307,   368,   370,     0,   205,
1061     206,     0,     0,     0,   376,   378,     0,   266,   258,   256,
1062     252,   254,   250,   260,   262,   264,   268,   270,   367,   278,
1063     275,   372,   374,   375,     0,    11,    24,     0,   237,   239,
1064       0,     0,   352,   354,     0,   336,     0,   340,     0,    70,
1065     291,   371,   221,   222,   218,   220,   219,   212,   213,   214,
1066     215,   216,     0,   217,   211,   234,   235,   231,   233,   232,
1067     225,   226,   227,   228,   229,     0,   230,   224,   236,   147,
1068       0,   379,     0,     0,   319,     0,    12,     0,     0,   199,
1069     240,   328,   326,     0,     0,   357,   351,   337,     0,   341,
1070       0,   197,   198,     0,     0,   285,   277,   320,    16,     0,
1071      13,   315,   242,     0,   241,     0,   353,   361,   355,     0,
1072     338,   342,   148,     0,     0,    18,     0,    14,     0,   327,
1073     329,   330,     0,   356,   358,   359,     0,   284,   286,     0,
1074      20,     0,   196,   331,   360,   362,   363,     0,   287,    22,
1075     332,   380,   333,   334
1076};
1077
1078/* YYPGOTO[NTERM-NUM].  */
1079static const yytype_int16 yypgoto[] =
1080{
1081    -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,
1082    -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,
1083    -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,
1084    -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,
1085    -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,
1086    -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,
1087    -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,
1088    -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -175,
1089    -244,   132,    43,  -244,  -244,  -244,  -244,    35,  -244,  -244,
1090    -244,  -244,  -244,  -244,  -244,  -244,   158,  -244,  -244,  -244,
1091    -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,
1092    -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,
1093    -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,
1094    -244,  -244,  -244,  -244,  -244,  -244,  -244,   436,  -244,  -244,
1095    -244,  -244,  -244,  -244,  -244,  -244,  -234,  -244,  -244,  -244,
1096    -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,  -244,
1097    -244,  -243,  -244,  -244,   -16,  -147,  -113,    -6,    -1
1098};
1099
1100/* YYDEFGOTO[NTERM-NUM].  */
1101static const yytype_int16 yydefgoto[] =
1102{
1103       0,     1,     2,     4,    84,   485,   509,   526,   541,   371,
1104     321,   146,   147,   113,   154,   155,   156,   157,   221,   223,
1105     114,   142,   168,   390,   144,   166,   145,   153,   162,   163,
1106     170,   158,   111,   109,   106,   127,   120,   247,   319,   141,
1107     132,   134,   224,   226,   140,   116,   115,   164,   117,   118,
1108     172,   112,   126,   119,   125,   165,   503,   185,   196,   101,
1109     102,   103,   104,   139,   137,   138,   169,   171,   173,   174,
1110     175,   176,   177,    85,    86,    87,   490,   179,   183,   276,
1111     336,   213,   305,   411,   464,   412,   477,   310,   374,   439,
1112     100,   188,   296,    98,   187,   293,   192,   298,   358,   482,
1113     194,   299,   361,   506,   524,   538,   262,   323,   392,   265,
1114     324,   395,   268,   325,   398,   270,   326,   401,   272,   327,
1115     404,    88,   123,   124,   307,   200,   303,   368,   235,   315,
1116     377,   441,   492,   515,   530,   241,   243,   198,   302,   365,
1117     239,   316,   382,   444,   493,   494,   496,   519,   534,   518,
1118     532,   545,   190,   297,   353,   274,   328,   407,   301,   363,
1119     432,   280,   339,   415,    96,   151,    89,    90,   152
1120};
1121
1122/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1123   positive, shift that token.  If negative, reduce the rule whose
1124   number is the opposite.  If YYTABLE_NINF, syntax error.  */
1125static const yytype_int16 yytable[] =
1126{
1127      91,   107,   359,   246,   -15,   -17,    93,   277,   -19,   105,
1128     379,   352,   364,   367,   110,   372,   355,   108,   376,   384,
1129     386,   391,   394,   397,   400,   121,   122,   403,   431,   406,
1130     414,   445,   128,   129,   294,   447,   497,   499,   135,   136,
1131     130,   529,   533,   537,   544,    92,   143,   480,   159,   160,
1132     161,   380,   148,   149,   438,   178,   148,   149,   150,     7,
1133      94,    95,     3,   488,   489,    83,   167,   360,   465,   466,
1134      97,    99,   -88,   180,    94,    95,   -39,  -123,   467,   468,
1135     356,   357,  -127,   181,  -130,   322,    92,   295,  -139,   186,
1136     -98,   381,  -309,  -312,    94,    95,   469,   -95,    83,   131,
1137     470,   471,   472,   473,   474,   475,    92,  -169,   133,   201,
1138      92,  -166,    94,    95,  -117,   -42,    83,   -45,   -48,    83,
1139      83,   -51,    83,    83,    83,    83,    83,    83,  -144,    83,
1140     228,   -84,    83,    83,    83,    83,    83,    83,    83,  -187,
1141     476,    83,   236,    83,    83,    83,   182,   244,   245,    83,
1142      83,    83,   452,   453,   184,    83,    83,    83,    83,   212,
1143     281,   259,   454,   455,   282,   283,   189,   329,   191,   193,
1144     197,   329,   220,    83,   199,   215,   234,   330,   278,   284,
1145     456,   330,   222,   329,   457,   458,   459,   460,   461,   462,
1146     238,   240,   242,   330,   331,   332,   333,   334,   331,   332,
1147     333,   334,   285,   286,   308,   287,   311,   335,  -103,   338,
1148     331,   332,   333,   334,   288,   289,   290,   291,   292,   337,
1149     329,   260,   261,   264,   463,   267,   269,   271,   273,   279,
1150     330,   300,   304,   309,   317,  -105,   318,   437,  -325,   479,
1151     449,  -276,   491,   495,   505,   517,   523,   331,   332,   333,
1152     334,   520,   521,   -21,   214,   547,   528,   306,   312,   516,
1153     522,   440,   195,     0,     0,     0,     0,     0,     0,     0,
1154       0,     0,     0,     0,     0,     0,   340,   341,   342,   343,
1155     344,   345,   346,   347,   348,   349,   350,     0,     0,   351,
1156     487,   354,     0,   362,     0,     0,   366,   369,     0,     0,
1157       0,   373,     0,     0,   370,     0,     0,     0,     0,   378,
1158     383,   385,   387,     0,   513,     0,     0,   393,   396,   399,
1159     402,   405,   408,     0,     0,     0,     0,     0,     0,   409,
1160     410,     0,   413,   416,   417,   418,   419,   420,   421,   422,
1161     423,   424,   425,   426,   427,     0,     0,   433,   428,     0,
1162     429,   430,     0,     0,     0,     0,     0,     0,     0,     0,
1163       0,     0,     0,   434,     0,     0,     0,     0,     0,   435,
1164       0,     0,     0,     0,   442,   443,     0,     0,     0,   446,
1165       0,   448,     0,     0,     0,     0,     0,   450,     0,     0,
1166       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1167     481,     0,   451,     0,     0,     0,   478,     0,     0,     0,
1168       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1169       0,     0,     0,     0,     0,     0,     0,     0,   483,   486,
1170       0,     0,     0,   484,     0,     0,     0,     0,     0,     0,
1171     498,     0,   500,     0,     0,     0,   501,     0,     0,     0,
1172       0,     0,     0,     0,     0,     0,     0,     0,     0,   502,
1173       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1174       0,     0,   512,   514,   504,     0,     0,     0,     0,     0,
1175     510,     0,   507,     0,     0,     0,   511,     0,     0,     0,
1176       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1177       0,     0,     0,     0,   527,     0,     0,     0,     0,   531,
1178       0,     0,   542,   535,     0,     0,     0,   536,   539,     0,
1179       0,     0,     0,     0,     0,   543,   546,     0,     0,     0,
1180       0,   551,     0,   548,     0,     0,     0,   550,     0,     0,
1181       0,     0,     0,     0,   552,     0,   553,   202,   203,   204,
1182     205,   206,   207,   208,   209,   210,   211,     0,     0,     0,
1183     216,   217,   218,   219,     0,     0,     0,     0,   225,     0,
1184     227,     0,     0,   229,   230,   231,   232,   233,     0,     0,
1185     237,     0,     0,     0,     0,     0,     0,     0,     0,   248,
1186     249,   250,   251,   252,   253,     0,     0,     0,   254,   255,
1187     256,   257,   258,     0,     0,     0,   263,     0,   266,     0,
1188       0,    -3,     5,   275,     0,     0,     0,     0,     0,     6,
1189       7,     8,     0,     0,     0,     0,     9,    10,    11,    12,
1190      13,    14,    15,    16,     0,     0,    17,    18,    19,    20,
1191      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
1192      31,    32,     0,     0,     0,     0,     0,     0,     0,     0,
1193     313,     0,   314,    33,    34,    35,    36,    37,     0,     0,
1194       0,     0,     0,     0,    38,    39,     0,    40,    41,     0,
1195       0,     0,     0,   320,    42,    43,    44,    45,    46,    47,
1196      48,     0,     0,     0,    49,    50,     0,    51,    52,    53,
1197      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
1198      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1199      74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1200       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1201       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1202     375,     0,     0,     0,     0,   388,     0,   389,     0,     0,
1203       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1204       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1205       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1206       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1207       0,     0,     0,     0,     0,     0,     0,   436,     0,     0,
1208       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1209       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1210       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1211       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1212       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1213       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1214       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1215       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1216       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1217       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1218       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1219       0,   508,     0,     0,     0,     0,     0,     0,     0,     0,
1220       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1221       0,     0,     0,     0,     0,   525,     0,     0,     0,     0,
1222       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1223       0,     0,   540,     0,     0,     0,     0,     0,     0,     0,
1224       0,     0,     0,     0,     0,     0,     0,   549
1225};
1226
1227static const yytype_int16 yycheck[] =
1228{
1229       6,    17,     4,   150,     3,     3,     7,   182,     3,    15,
1230       4,     4,     4,     4,    20,     4,     4,    18,     4,     4,
1231       4,     4,     4,     4,     4,    31,    32,     4,     4,     4,
1232       4,     4,    38,    39,     4,     4,     4,     4,    44,    45,
1233      41,     4,     4,     4,     4,    65,    52,     5,    64,    65,
1234      66,    45,    11,    12,     4,    51,    11,    12,    17,     9,
1235      70,    71,     0,    50,    51,   118,    72,    69,    13,    14,
1236       3,     3,     3,    89,    70,    71,     3,     3,    23,    24,
1237      68,    69,     3,    89,     3,   260,    65,    57,     3,    95,
1238       3,    85,     3,     3,    70,    71,    41,     3,   118,    17,
1239      45,    46,    47,    48,    49,    50,    65,     3,    17,   110,
1240      65,     3,    70,    71,     3,     3,   118,     3,     3,   118,
1241     118,     3,   118,   118,   118,   118,   118,   118,     3,   118,
1242     136,     3,   118,   118,   118,   118,   118,   118,   118,     3,
1243      85,   118,   143,   118,   118,   118,    51,   148,   149,   118,
1244     118,   118,    13,    14,     5,   118,   118,   118,   118,    81,
1245       4,   167,    23,    24,     8,     9,     3,    14,     3,     3,
1246       3,    14,    51,   118,     3,     3,     3,    24,   184,    23,
1247      41,    24,    51,    14,    45,    46,    47,    48,    49,    50,
1248       3,     3,     3,    24,    41,    42,    43,    44,    41,    42,
1249      43,    44,    46,    47,   220,    49,   222,    50,     3,    50,
1250      41,    42,    43,    44,    58,    59,    60,    61,    62,    50,
1251      14,     3,     3,     3,    85,     3,     3,     3,     3,     3,
1252      24,     3,    81,     3,   240,     3,   242,    82,     3,     6,
1253       4,     3,     3,     3,     3,     3,    50,    41,    42,    43,
1254      44,     4,     4,     3,   122,     6,    50,   214,   223,   493,
1255     503,   374,   104,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1256      -1,    -1,    -1,    -1,    -1,    -1,   282,   283,   284,   285,
1257     286,   287,   288,   289,   290,   291,   292,    -1,    -1,   295,
1258     437,   297,    -1,   299,    -1,    -1,   302,   303,    -1,    -1,
1259      -1,   307,    -1,    -1,   305,    -1,    -1,    -1,    -1,   315,
1260     316,   317,   318,    -1,   489,    -1,    -1,   323,   324,   325,
1261     326,   327,   328,    -1,    -1,    -1,    -1,    -1,    -1,   330,
1262     331,    -1,   338,   339,   340,   341,   342,   343,   344,   345,
1263     346,   347,   348,   349,   350,    -1,    -1,   363,   354,    -1,
1264     356,   357,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1265      -1,    -1,    -1,   369,    -1,    -1,    -1,    -1,    -1,   370,
1266      -1,    -1,    -1,    -1,   380,   381,    -1,    -1,    -1,   385,
1267      -1,   387,    -1,    -1,    -1,    -1,    -1,   393,    -1,    -1,
1268      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1269     416,    -1,   408,    -1,    -1,    -1,   412,    -1,    -1,    -1,
1270      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1271      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   434,   435,
1272      -1,    -1,    -1,   434,    -1,    -1,    -1,    -1,    -1,    -1,
1273     446,    -1,   448,    -1,    -1,    -1,   462,    -1,    -1,    -1,
1274      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   475,
1275      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1276      -1,    -1,   488,   489,   480,    -1,    -1,    -1,    -1,    -1,
1277     486,    -1,   483,    -1,    -1,    -1,   487,    -1,    -1,    -1,
1278      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1279      -1,    -1,    -1,    -1,   510,    -1,    -1,    -1,    -1,   515,
1280      -1,    -1,   528,   519,    -1,    -1,    -1,   523,   524,    -1,
1281      -1,    -1,    -1,    -1,    -1,   531,   532,    -1,    -1,    -1,
1282      -1,   547,    -1,   539,    -1,    -1,    -1,   543,    -1,    -1,
1283      -1,    -1,    -1,    -1,   550,    -1,   552,   111,   112,   113,
1284     114,   115,   116,   117,   118,   119,   120,    -1,    -1,    -1,
1285     124,   125,   126,   127,    -1,    -1,    -1,    -1,   132,    -1,
1286     134,    -1,    -1,   137,   138,   139,   140,   141,    -1,    -1,
1287     144,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   153,
1288     154,   155,   156,   157,   158,    -1,    -1,    -1,   162,   163,
1289     164,   165,   166,    -1,    -1,    -1,   170,    -1,   172,    -1,
1290      -1,     0,     1,   177,    -1,    -1,    -1,    -1,    -1,     8,
1291       9,    10,    -1,    -1,    -1,    -1,    15,    16,    17,    18,
1292      19,    20,    21,    22,    -1,    -1,    25,    26,    27,    28,
1293      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1294      39,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1295     224,    -1,   226,    52,    53,    54,    55,    56,    -1,    -1,
1296      -1,    -1,    -1,    -1,    63,    64,    -1,    66,    67,    -1,
1297      -1,    -1,    -1,   247,    73,    74,    75,    76,    77,    78,
1298      79,    -1,    -1,    -1,    83,    84,    -1,    86,    87,    88,
1299      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1300      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
1301     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1302      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1303      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1304     314,    -1,    -1,    -1,    -1,   319,    -1,   321,    -1,    -1,
1305      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1306      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1307      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1308      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1309      -1,    -1,    -1,    -1,    -1,    -1,    -1,   371,    -1,    -1,
1310      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1311      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1312      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1313      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1314      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1315      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1316      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1317      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1318      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1319      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1320      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1321      -1,   485,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1322      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1323      -1,    -1,    -1,    -1,    -1,   509,    -1,    -1,    -1,    -1,
1324      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1325      -1,    -1,   526,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1326      -1,    -1,    -1,    -1,    -1,    -1,    -1,   541
1327};
1328
1329/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
1330   state STATE-NUM.  */
1331static const yytype_int16 yystos[] =
1332{
1333       0,   120,   121,     0,   122,     1,     8,     9,    10,    15,
1334      16,    17,    18,    19,    20,    21,    22,    25,    26,    27,
1335      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1336      38,    39,    40,    52,    53,    54,    55,    56,    63,    64,
1337      66,    67,    73,    74,    75,    76,    77,    78,    79,    83,
1338      84,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1339      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
1340     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
1341     115,   116,   117,   118,   123,   192,   193,   194,   240,   285,
1342     286,   286,    65,   287,    70,    71,   283,     3,   212,     3,
1343     209,   178,   179,   180,   181,   286,   153,   283,   287,   152,
1344     286,   151,   170,   132,   139,   165,   164,   167,   168,   172,
1345     155,   286,   286,   241,   242,   173,   171,   154,   286,   286,
1346     287,    17,   159,    17,   160,   286,   286,   183,   184,   182,
1347     163,   158,   140,   286,   143,   145,   130,   131,    11,    12,
1348      17,   284,   287,   146,   133,   134,   135,   136,   150,   283,
1349     283,   283,   147,   148,   166,   174,   144,   286,   141,   185,
1350     149,   186,   169,   187,   188,   189,   190,   191,    51,   196,
1351     283,   286,    51,   197,     5,   176,   286,   213,   210,     3,
1352     271,     3,   215,     3,   219,   215,   177,     3,   256,     3,
1353     244,   287,   256,   256,   256,   256,   256,   256,   256,   256,
1354     256,   256,    81,   200,   200,     3,   256,   256,   256,   256,
1355      51,   137,    51,   138,   161,   256,   162,   256,   286,   256,
1356     256,   256,   256,   256,     3,   247,   287,   256,     3,   259,
1357       3,   254,     3,   255,   287,   287,   284,   156,   256,   256,
1358     256,   256,   256,   256,   256,   256,   256,   256,   256,   286,
1359       3,     3,   225,   256,     3,   228,   256,     3,   231,     3,
1360     234,     3,   237,     3,   274,   256,   198,   198,   286,     3,
1361     280,     4,     8,     9,    23,    46,    47,    49,    58,    59,
1362      60,    61,    62,   214,     4,    57,   211,   272,   216,   220,
1363       3,   277,   257,   245,    81,   201,   201,   243,   283,     3,
1364     206,   283,   206,   256,   256,   248,   260,   286,   286,   157,
1365     256,   129,   198,   226,   229,   232,   235,   238,   275,    14,
1366      24,    41,    42,    43,    44,    50,   199,    50,    50,   281,
1367     286,   286,   286,   286,   286,   286,   286,   286,   286,   286,
1368     286,   286,     4,   273,   286,     4,    68,    69,   217,     4,
1369      69,   221,   286,   278,     4,   258,   286,     4,   246,   286,
1370     287,   128,     4,   286,   207,   256,     4,   249,   286,     4,
1371      45,    85,   261,   286,     4,   286,     4,   286,   256,   256,
1372     142,     4,   227,   286,     4,   230,   286,     4,   233,   286,
1373       4,   236,   286,     4,   239,   286,     4,   276,   286,   287,
1374     287,   202,   204,   286,     4,   282,   286,   286,   286,   286,
1375     286,   286,   286,   286,   286,   286,   286,   286,   286,   286,
1376     286,     4,   279,   283,   286,   287,   256,    82,     4,   208,
1377     285,   250,   286,   286,   262,     4,   286,     4,   286,     4,
1378     286,   286,    13,    14,    23,    24,    41,    45,    46,    47,
1379      48,    49,    50,    85,   203,    13,    14,    23,    24,    41,
1380      45,    46,    47,    48,    49,    50,    85,   205,   286,     6,
1381       5,   283,   218,   286,   287,   124,   286,   284,    50,    51,
1382     195,     3,   251,   263,   264,     3,   265,     4,   286,     4,
1383     286,   283,   283,   175,   286,     3,   222,   287,   256,   125,
1384     286,   287,   283,   198,   283,   252,   265,     3,   268,   266,
1385       4,     4,   280,    50,   223,   256,   126,   286,    50,     4,
1386     253,   286,   269,     4,   267,   286,   286,     4,   224,   286,
1387     256,   127,   283,   286,     4,   270,   286,     6,   286,   256,
1388     286,   283,   286,   286
1389};
1390
1391/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.  */
1392static const yytype_int16 yyr1[] =
1393{
1394       0,   119,   121,   120,   122,   122,   123,   123,   123,   123,
1395     123,   123,   123,   123,   123,   124,   123,   125,   123,   126,
1396     123,   127,   123,   128,   123,   129,   123,   123,   123,   123,
1397     123,   130,   123,   131,   123,   123,   123,   123,   123,   132,
1398     123,   123,   133,   123,   123,   134,   123,   123,   135,   123,
1399     123,   136,   123,   123,   123,   123,   137,   123,   138,   123,
1400     123,   123,   123,   123,   139,   123,   140,   123,   141,   142,
1401     123,   143,   123,   144,   123,   145,   123,   146,   123,   147,
1402     123,   148,   123,   123,   149,   123,   150,   123,   151,   123,
1403     123,   152,   123,   153,   123,   154,   123,   123,   155,   123,
1404     123,   123,   123,   156,   123,   157,   123,   158,   123,   159,
1405     123,   160,   123,   161,   123,   162,   123,   163,   123,   123,
1406     164,   123,   123,   165,   123,   166,   123,   167,   123,   123,
1407     168,   123,   123,   169,   123,   170,   123,   171,   123,   172,
1408     123,   123,   173,   123,   174,   123,   123,   175,   123,   176,
1409     123,   177,   123,   178,   123,   179,   123,   180,   123,   181,
1410     123,   123,   123,   123,   123,   123,   182,   123,   123,   183,
1411     123,   123,   184,   123,   185,   123,   186,   123,   187,   123,
1412     188,   123,   189,   123,   190,   123,   123,   191,   123,   192,
1413     193,   193,   193,   193,   193,   194,   195,   196,   197,   198,
1414     198,   199,   199,   199,   199,   199,   199,   199,   200,   201,
1415     202,   202,   203,   203,   203,   203,   203,   203,   203,   203,
1416     203,   203,   203,   204,   204,   205,   205,   205,   205,   205,
1417     205,   205,   205,   205,   205,   205,   205,   206,   207,   207,
1418     208,   208,   208,   209,   210,   210,   211,   212,   213,   213,
1419     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
1420     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
1421     214,   214,   215,   216,   216,   217,   218,   217,   217,   219,
1422     220,   220,   221,   221,   222,   223,   223,   224,   225,   226,
1423     226,   227,   228,   229,   229,   230,   231,   232,   232,   233,
1424     234,   235,   235,   236,   237,   238,   238,   239,   240,   241,
1425     240,   240,   242,   240,   243,   243,   244,   245,   245,   246,
1426     246,   247,   248,   248,   249,   250,   249,   251,   252,   252,
1427     253,   253,   253,   253,   253,   254,   254,   254,   254,   255,
1428     255,   255,   255,   256,   257,   257,   258,   259,   260,   260,
1429     262,   261,   263,   261,   264,   261,   265,   266,   266,   267,
1430     268,   269,   269,   270,   271,   272,   272,   273,   274,   275,
1431     275,   276,   277,   278,   278,   279,   280,   281,   281,   282,
1432     282,   283,   283,   284,   284,   284,   285,   286,   287
1433};
1434
1435/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.  */
1436static const yytype_int8 yyr2[] =
1437{
1438       0,     2,     0,     2,     0,     2,     1,     1,     1,     1,
1439       1,     6,     7,     8,     9,     0,     8,     0,     9,     0,
1440      10,     0,    11,     0,     6,     0,     5,     3,     2,     3,
1441       2,     0,     3,     0,     3,     2,     1,     2,     2,     0,
1442       3,     1,     0,     3,     1,     0,     3,     1,     0,     3,
1443       1,     0,     3,     1,     4,     4,     0,     4,     0,     4,
1444       2,     2,     2,     2,     0,     3,     0,     3,     0,     0,
1445       6,     0,     3,     0,     3,     0,     3,     0,     3,     0,
1446       3,     0,     3,     1,     0,     3,     0,     3,     0,     3,
1447       1,     0,     3,     0,     3,     0,     3,     1,     0,     3,
1448       1,     2,     3,     0,     4,     0,     5,     0,     3,     0,
1449       3,     0,     3,     0,     4,     0,     5,     0,     3,     1,
1450       0,     3,     1,     0,     3,     0,     3,     0,     3,     1,
1451       0,     3,     1,     0,     3,     0,     3,     0,     3,     0,
1452       3,     1,     0,     3,     0,     3,     1,     0,     9,     0,
1453       4,     0,     4,     0,     3,     0,     3,     0,     3,     0,
1454       3,     2,     2,     2,     2,     2,     0,     3,     1,     0,
1455       3,     1,     0,     3,     0,     3,     0,     3,     0,     3,
1456       0,     3,     0,     3,     0,     3,     1,     0,     3,     1,
1457       2,     1,     3,     2,     1,     2,     4,     6,     6,     0,
1458       2,     1,     1,     1,     1,     2,     2,     1,     1,     1,
1459       0,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1460       1,     1,     1,     0,     2,     1,     1,     1,     1,     1,
1461       1,     1,     1,     1,     1,     1,     1,     3,     0,     2,
1462       2,     3,     3,     3,     0,     2,     2,     3,     0,     2,
1463       3,     2,     3,     2,     3,     2,     3,     2,     3,     2,
1464       3,     2,     3,     2,     3,     2,     3,     2,     3,     2,
1465       3,     2,     3,     0,     2,     2,     0,     4,     2,     3,
1466       0,     2,     1,     1,     3,     0,     2,     2,     3,     0,
1467       2,     2,     3,     0,     2,     1,     3,     0,     2,     1,
1468       3,     0,     2,     1,     3,     0,     2,     1,     1,     0,
1469       5,     1,     0,     3,     0,     5,     3,     0,     2,     3,
1470       4,     3,     0,     2,     1,     0,     3,     3,     0,     2,
1471       1,     2,     3,     4,     5,     3,     4,     5,     6,     3,
1472       4,     5,     6,     3,     0,     2,     1,     3,     0,     2,
1473       0,     3,     0,     4,     0,     4,     3,     0,     2,     1,
1474       3,     0,     2,     1,     3,     0,     2,     2,     3,     0,
1475       2,     2,     3,     0,     2,     1,     3,     0,     2,     2,
1476       7,     1,     2,     1,     2,     2,     2,     1,     1
1477};
1478
1479
1480enum { YYENOMEM = -2 };
1481
1482#define yyerrok         (yyerrstatus = 0)
1483#define yyclearin       (yychar = YYEMPTY)
1484
1485#define YYACCEPT        goto yyacceptlab
1486#define YYABORT         goto yyabortlab
1487#define YYERROR         goto yyerrorlab
1488#define YYNOMEM         goto yyexhaustedlab
1489
1490
1491#define YYRECOVERING()  (!!yyerrstatus)
1492
1493#define YYBACKUP(Token, Value)                                    \
1494  do                                                              \
1495    if (yychar == YYEMPTY)                                        \
1496      {                                                           \
1497        yychar = (Token);                                         \
1498        yylval = (Value);                                         \
1499        YYPOPSTACK (yylen);                                       \
1500        yystate = *yyssp;                                         \
1501        goto yybackup;                                            \
1502      }                                                           \
1503    else                                                          \
1504      {                                                           \
1505        yyerror (YY_("syntax error: cannot back up")); \
1506        YYERROR;                                                  \
1507      }                                                           \
1508  while (0)
1509
1510/* Backward compatibility with an undocumented macro.
1511   Use YYerror or YYUNDEF. */
1512#define YYERRCODE YYUNDEF
1513
1514
1515/* Enable debugging if requested.  */
1516#if YYDEBUG
1517
1518# ifndef YYFPRINTF
1519#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1520#  define YYFPRINTF fprintf
1521# endif
1522
1523# define YYDPRINTF(Args)                        \
1524do {                                            \
1525  if (yydebug)                                  \
1526    YYFPRINTF Args;                             \
1527} while (0)
1528
1529
1530
1531
1532# define YY_SYMBOL_PRINT(Title, Kind, Value, Location)                    \
1533do {                                                                      \
1534  if (yydebug)                                                            \
1535    {                                                                     \
1536      YYFPRINTF (stderr, "%s ", Title);                                   \
1537      yy_symbol_print (stderr,                                            \
1538                  Kind, Value); \
1539      YYFPRINTF (stderr, "\n");                                           \
1540    }                                                                     \
1541} while (0)
1542
1543
1544/*-----------------------------------.
1545| Print this symbol's value on YYO.  |
1546`-----------------------------------*/
1547
1548static void
1549yy_symbol_value_print (FILE *yyo,
1550                       yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
1551{
1552  FILE *yyoutput = yyo;
1553  YY_USE (yyoutput);
1554  if (!yyvaluep)
1555    return;
1556  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1557  YY_USE (yykind);
1558  YY_IGNORE_MAYBE_UNINITIALIZED_END
1559}
1560
1561
1562/*---------------------------.
1563| Print this symbol on YYO.  |
1564`---------------------------*/
1565
1566static void
1567yy_symbol_print (FILE *yyo,
1568                 yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
1569{
1570  YYFPRINTF (yyo, "%s %s (",
1571             yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
1572
1573  yy_symbol_value_print (yyo, yykind, yyvaluep);
1574  YYFPRINTF (yyo, ")");
1575}
1576
1577/*------------------------------------------------------------------.
1578| yy_stack_print -- Print the state stack from its BOTTOM up to its |
1579| TOP (included).                                                   |
1580`------------------------------------------------------------------*/
1581
1582static void
1583yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
1584{
1585  YYFPRINTF (stderr, "Stack now");
1586  for (; yybottom <= yytop; yybottom++)
1587    {
1588      int yybot = *yybottom;
1589      YYFPRINTF (stderr, " %d", yybot);
1590    }
1591  YYFPRINTF (stderr, "\n");
1592}
1593
1594# define YY_STACK_PRINT(Bottom, Top)                            \
1595do {                                                            \
1596  if (yydebug)                                                  \
1597    yy_stack_print ((Bottom), (Top));                           \
1598} while (0)
1599
1600
1601/*------------------------------------------------.
1602| Report that the YYRULE is going to be reduced.  |
1603`------------------------------------------------*/
1604
1605static void
1606yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
1607                 int yyrule)
1608{
1609  int yylno = yyrline[yyrule];
1610  int yynrhs = yyr2[yyrule];
1611  int yyi;
1612  YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
1613             yyrule - 1, yylno);
1614  /* The symbols being reduced.  */
1615  for (yyi = 0; yyi < yynrhs; yyi++)
1616    {
1617      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
1618      yy_symbol_print (stderr,
1619                       YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
1620                       &yyvsp[(yyi + 1) - (yynrhs)]);
1621      YYFPRINTF (stderr, "\n");
1622    }
1623}
1624
1625# define YY_REDUCE_PRINT(Rule)          \
1626do {                                    \
1627  if (yydebug)                          \
1628    yy_reduce_print (yyssp, yyvsp, Rule); \
1629} while (0)
1630
1631/* Nonzero means print parse trace.  It is left uninitialized so that
1632   multiple parsers can coexist.  */
1633int yydebug;
1634#else /* !YYDEBUG */
1635# define YYDPRINTF(Args) ((void) 0)
1636# define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
1637# define YY_STACK_PRINT(Bottom, Top)
1638# define YY_REDUCE_PRINT(Rule)
1639#endif /* !YYDEBUG */
1640
1641
1642/* YYINITDEPTH -- initial size of the parser's stacks.  */
1643#ifndef YYINITDEPTH
1644# define YYINITDEPTH 200
1645#endif
1646
1647/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1648   if the built-in stack extension method is used).
1649
1650   Do not make this value too large; the results are undefined if
1651   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1652   evaluated with infinite-precision integer arithmetic.  */
1653
1654#ifndef YYMAXDEPTH
1655# define YYMAXDEPTH 10000
1656#endif
1657
1658
1659
1660
1661
1662
1663/*-----------------------------------------------.
1664| Release the memory associated to this symbol.  |
1665`-----------------------------------------------*/
1666
1667static void
1668yydestruct (const char *yymsg,
1669            yysymbol_kind_t yykind, YYSTYPE *yyvaluep)
1670{
1671  YY_USE (yyvaluep);
1672  if (!yymsg)
1673    yymsg = "Deleting";
1674  YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
1675
1676  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1677  YY_USE (yykind);
1678  YY_IGNORE_MAYBE_UNINITIALIZED_END
1679}
1680
1681
1682/* Lookahead token kind.  */
1683int yychar;
1684
1685/* The semantic value of the lookahead symbol.  */
1686YYSTYPE yylval;
1687/* Number of syntax errors so far.  */
1688int yynerrs;
1689
1690
1691
1692
1693/*----------.
1694| yyparse.  |
1695`----------*/
1696
1697int
1698yyparse (void)
1699{
1700    yy_state_fast_t yystate = 0;
1701    /* Number of tokens to shift before error messages enabled.  */
1702    int yyerrstatus = 0;
1703
1704    /* Refer to the stacks through separate pointers, to allow yyoverflow
1705       to reallocate them elsewhere.  */
1706
1707    /* Their size.  */
1708    YYPTRDIFF_T yystacksize = YYINITDEPTH;
1709
1710    /* The state stack: array, bottom, top.  */
1711    yy_state_t yyssa[YYINITDEPTH];
1712    yy_state_t *yyss = yyssa;
1713    yy_state_t *yyssp = yyss;
1714
1715    /* The semantic value stack: array, bottom, top.  */
1716    YYSTYPE yyvsa[YYINITDEPTH];
1717    YYSTYPE *yyvs = yyvsa;
1718    YYSTYPE *yyvsp = yyvs;
1719
1720  int yyn;
1721  /* The return value of yyparse.  */
1722  int yyresult;
1723  /* Lookahead symbol kind.  */
1724  yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
1725  /* The variables used to return semantic value and location from the
1726     action routines.  */
1727  YYSTYPE yyval;
1728
1729
1730
1731#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
1732
1733  /* The number of symbols on the RHS of the reduced rule.
1734     Keep to zero when no symbol should be popped.  */
1735  int yylen = 0;
1736
1737  YYDPRINTF ((stderr, "Starting parse\n"));
1738
1739  yychar = YYEMPTY; /* Cause a token to be read.  */
1740
1741  goto yysetstate;
1742
1743
1744/*------------------------------------------------------------.
1745| yynewstate -- push a new state, which is found in yystate.  |
1746`------------------------------------------------------------*/
1747yynewstate:
1748  /* In all cases, when you get here, the value and location stacks
1749     have just been pushed.  So pushing a state here evens the stacks.  */
1750  yyssp++;
1751
1752
1753/*--------------------------------------------------------------------.
1754| yysetstate -- set current state (the top of the stack) to yystate.  |
1755`--------------------------------------------------------------------*/
1756yysetstate:
1757  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1758  YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
1759  YY_IGNORE_USELESS_CAST_BEGIN
1760  *yyssp = YY_CAST (yy_state_t, yystate);
1761  YY_IGNORE_USELESS_CAST_END
1762  YY_STACK_PRINT (yyss, yyssp);
1763
1764  if (yyss + yystacksize - 1 <= yyssp)
1765#if !defined yyoverflow && !defined YYSTACK_RELOCATE
1766    YYNOMEM;
1767#else
1768    {
1769      /* Get the current used size of the three stacks, in elements.  */
1770      YYPTRDIFF_T yysize = yyssp - yyss + 1;
1771
1772# if defined yyoverflow
1773      {
1774        /* Give user a chance to reallocate the stack.  Use copies of
1775           these so that the &'s don't force the real ones into
1776           memory.  */
1777        yy_state_t *yyss1 = yyss;
1778        YYSTYPE *yyvs1 = yyvs;
1779
1780        /* Each stack pointer address is followed by the size of the
1781           data in use in that stack, in bytes.  This used to be a
1782           conditional around just the two extra args, but that might
1783           be undefined if yyoverflow is a macro.  */
1784        yyoverflow (YY_("memory exhausted"),
1785                    &yyss1, yysize * YYSIZEOF (*yyssp),
1786                    &yyvs1, yysize * YYSIZEOF (*yyvsp),
1787                    &yystacksize);
1788        yyss = yyss1;
1789        yyvs = yyvs1;
1790      }
1791# else /* defined YYSTACK_RELOCATE */
1792      /* Extend the stack our own way.  */
1793      if (YYMAXDEPTH <= yystacksize)
1794        YYNOMEM;
1795      yystacksize *= 2;
1796      if (YYMAXDEPTH < yystacksize)
1797        yystacksize = YYMAXDEPTH;
1798
1799      {
1800        yy_state_t *yyss1 = yyss;
1801        union yyalloc *yyptr =
1802          YY_CAST (union yyalloc *,
1803                   YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
1804        if (! yyptr)
1805          YYNOMEM;
1806        YYSTACK_RELOCATE (yyss_alloc, yyss);
1807        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1808#  undef YYSTACK_RELOCATE
1809        if (yyss1 != yyssa)
1810          YYSTACK_FREE (yyss1);
1811      }
1812# endif
1813
1814      yyssp = yyss + yysize - 1;
1815      yyvsp = yyvs + yysize - 1;
1816
1817      YY_IGNORE_USELESS_CAST_BEGIN
1818      YYDPRINTF ((stderr, "Stack size increased to %ld\n",
1819                  YY_CAST (long, yystacksize)));
1820      YY_IGNORE_USELESS_CAST_END
1821
1822      if (yyss + yystacksize - 1 <= yyssp)
1823        YYABORT;
1824    }
1825#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
1826
1827
1828  if (yystate == YYFINAL)
1829    YYACCEPT;
1830
1831  goto yybackup;
1832
1833
1834/*-----------.
1835| yybackup.  |
1836`-----------*/
1837yybackup:
1838  /* Do appropriate processing given the current state.  Read a
1839     lookahead token if we need one and don't already have one.  */
1840
1841  /* First try to decide what to do without reference to lookahead token.  */
1842  yyn = yypact[yystate];
1843  if (yypact_value_is_default (yyn))
1844    goto yydefault;
1845
1846  /* Not known => get a lookahead token if don't already have one.  */
1847
1848  /* YYCHAR is either empty, or end-of-input, or a valid lookahead.  */
1849  if (yychar == YYEMPTY)
1850    {
1851      YYDPRINTF ((stderr, "Reading a token\n"));
1852      yychar = yylex ();
1853    }
1854
1855  if (yychar <= YYEOF)
1856    {
1857      yychar = YYEOF;
1858      yytoken = YYSYMBOL_YYEOF;
1859      YYDPRINTF ((stderr, "Now at end of input.\n"));
1860    }
1861  else if (yychar == YYerror)
1862    {
1863      /* The scanner already issued an error message, process directly
1864         to error recovery.  But do not keep the error token as
1865         lookahead, it is too special and may lead us to an endless
1866         loop in error recovery. */
1867      yychar = YYUNDEF;
1868      yytoken = YYSYMBOL_YYerror;
1869      goto yyerrlab1;
1870    }
1871  else
1872    {
1873      yytoken = YYTRANSLATE (yychar);
1874      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1875    }
1876
1877  /* If the proper action on seeing token YYTOKEN is to reduce or to
1878     detect an error, take that action.  */
1879  yyn += yytoken;
1880  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1881    goto yydefault;
1882  yyn = yytable[yyn];
1883  if (yyn <= 0)
1884    {
1885      if (yytable_value_is_error (yyn))
1886        goto yyerrlab;
1887      yyn = -yyn;
1888      goto yyreduce;
1889    }
1890
1891  /* Count tokens shifted since error; after three, turn off error
1892     status.  */
1893  if (yyerrstatus)
1894    yyerrstatus--;
1895
1896  /* Shift the lookahead token.  */
1897  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1898  yystate = yyn;
1899  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1900  *++yyvsp = yylval;
1901  YY_IGNORE_MAYBE_UNINITIALIZED_END
1902
1903  /* Discard the shifted token.  */
1904  yychar = YYEMPTY;
1905  goto yynewstate;
1906
1907
1908/*-----------------------------------------------------------.
1909| yydefault -- do the default action for the current state.  |
1910`-----------------------------------------------------------*/
1911yydefault:
1912  yyn = yydefact[yystate];
1913  if (yyn == 0)
1914    goto yyerrlab;
1915  goto yyreduce;
1916
1917
1918/*-----------------------------.
1919| yyreduce -- do a reduction.  |
1920`-----------------------------*/
1921yyreduce:
1922  /* yyn is the number of a rule to reduce with.  */
1923  yylen = yyr2[yyn];
1924
1925  /* If YYLEN is nonzero, implement the default value of the action:
1926     '$$ = $1'.
1927
1928     Otherwise, the following line sets YYVAL to garbage.
1929     This behavior is undocumented and Bison
1930     users should not rely upon it.  Assigning to YYVAL
1931     unconditionally makes the parser a bit smaller, and it avoids a
1932     GCC warning that YYVAL may be used uninitialized.  */
1933  yyval = yyvsp[1-yylen];
1934
1935
1936  YY_REDUCE_PRINT (yyn);
1937  switch (yyn)
1938    {
1939  case 2: /* $@1: %empty  */
1940#line 109 "gram.y"
1941                  { InitGramVariables(); }
1942#line 1943 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
1943    break;
1944
1945  case 11: /* stmt: ICON_REGION string vgrav hgrav number number  */
1946#line 122 "gram.y"
1947                                                               {
1948		      AddIconRegion((yyvsp[-4].ptr), (yyvsp[-3].num), (yyvsp[-2].num), (yyvsp[-1].num), (yyvsp[0].num), "undef", "undef", "undef");
1949		  }
1950#line 1951 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
1951    break;
1952
1953  case 12: /* stmt: ICON_REGION string vgrav hgrav number number string  */
1954#line 125 "gram.y"
1955                                                                      {
1956		      AddIconRegion((yyvsp[-5].ptr), (yyvsp[-4].num), (yyvsp[-3].num), (yyvsp[-2].num), (yyvsp[-1].num), (yyvsp[0].ptr), "undef", "undef");
1957		  }
1958#line 1959 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
1959    break;
1960
1961  case 13: /* stmt: ICON_REGION string vgrav hgrav number number string string  */
1962#line 128 "gram.y"
1963                                                                             {
1964		      AddIconRegion((yyvsp[-6].ptr), (yyvsp[-5].num), (yyvsp[-4].num), (yyvsp[-3].num), (yyvsp[-2].num), (yyvsp[-1].ptr), (yyvsp[0].ptr), "undef");
1965		  }
1966#line 1967 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
1967    break;
1968
1969  case 14: /* stmt: ICON_REGION string vgrav hgrav number number string string string  */
1970#line 131 "gram.y"
1971                                                                                    {
1972		      AddIconRegion((yyvsp[-7].ptr), (yyvsp[-6].num), (yyvsp[-5].num), (yyvsp[-4].num), (yyvsp[-3].num), (yyvsp[-2].ptr), (yyvsp[-1].ptr), (yyvsp[0].ptr));
1973		  }
1974#line 1975 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
1975    break;
1976
1977  case 15: /* $@2: %empty  */
1978#line 134 "gram.y"
1979                                                               {
1980		      curplist = AddIconRegion((yyvsp[-4].ptr), (yyvsp[-3].num), (yyvsp[-2].num), (yyvsp[-1].num), (yyvsp[0].num), "undef", "undef", "undef");
1981		  }
1982#line 1983 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
1983    break;
1984
1985  case 17: /* $@3: %empty  */
1986#line 138 "gram.y"
1987                                                                      {
1988		      curplist = AddIconRegion((yyvsp[-5].ptr), (yyvsp[-4].num), (yyvsp[-3].num), (yyvsp[-2].num), (yyvsp[-1].num), (yyvsp[0].ptr), "undef", "undef");
1989		  }
1990#line 1991 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
1991    break;
1992
1993  case 19: /* $@4: %empty  */
1994#line 142 "gram.y"
1995                                                                             {
1996		      curplist = AddIconRegion((yyvsp[-6].ptr), (yyvsp[-5].num), (yyvsp[-4].num), (yyvsp[-3].num), (yyvsp[-2].num), (yyvsp[-1].ptr), (yyvsp[0].ptr), "undef");
1997		  }
1998#line 1999 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
1999    break;
2000
2001  case 21: /* $@5: %empty  */
2002#line 146 "gram.y"
2003                                                                                    {
2004		      curplist = AddIconRegion((yyvsp[-7].ptr), (yyvsp[-6].num), (yyvsp[-5].num), (yyvsp[-4].num), (yyvsp[-3].num), (yyvsp[-2].ptr), (yyvsp[-1].ptr), (yyvsp[0].ptr));
2005		  }
2006#line 2007 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2007    break;
2008
2009  case 23: /* $@6: %empty  */
2010#line 151 "gram.y"
2011                                                   {
2012		      curplist = AddWindowRegion ((yyvsp[-2].ptr), (yyvsp[-1].num), (yyvsp[0].num));
2013		  }
2014#line 2015 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2015    break;
2016
2017  case 25: /* $@7: %empty  */
2018#line 156 "gram.y"
2019                                           {
2020#ifdef WINBOX
2021		      curplist = addWindowBox ((yyvsp[-1].ptr), (yyvsp[0].ptr));
2022#endif
2023		  }
2024#line 2025 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2025    break;
2026
2027  case 27: /* stmt: ICONMGR_GEOMETRY string number  */
2028#line 163 "gram.y"
2029                                                        { if (Scr->FirstTime)
2030						  {
2031						    Scr->iconmgr->geometry= (char*)(yyvsp[-1].ptr);
2032						    Scr->iconmgr->columns=(yyvsp[0].num);
2033						  }
2034						}
2035#line 2036 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2036    break;
2037
2038  case 28: /* stmt: ICONMGR_GEOMETRY string  */
2039#line 169 "gram.y"
2040                                                { if (Scr->FirstTime)
2041						    Scr->iconmgr->geometry = (char*)(yyvsp[0].ptr);
2042						}
2043#line 2044 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2044    break;
2045
2046  case 29: /* stmt: WORKSPCMGR_GEOMETRY string number  */
2047#line 172 "gram.y"
2048                                                        { if (Scr->FirstTime)
2049				{
2050				    Scr->workSpaceMgr.geometry= (char*)(yyvsp[-1].ptr);
2051				    Scr->workSpaceMgr.columns=(yyvsp[0].num);
2052				}
2053						}
2054#line 2055 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2055    break;
2056
2057  case 30: /* stmt: WORKSPCMGR_GEOMETRY string  */
2058#line 178 "gram.y"
2059                                                { if (Scr->FirstTime)
2060				    Scr->workSpaceMgr.geometry = (char*)(yyvsp[0].ptr);
2061						}
2062#line 2063 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2063    break;
2064
2065  case 31: /* $@8: %empty  */
2066#line 181 "gram.y"
2067                                            {}
2068#line 2069 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2069    break;
2070
2071  case 33: /* $@9: %empty  */
2072#line 184 "gram.y"
2073                                            {}
2074#line 2075 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2075    break;
2076
2077  case 35: /* stmt: ZOOM number  */
2078#line 187 "gram.y"
2079                                        { if (Scr->FirstTime)
2080					  {
2081						Scr->DoZoom = true;
2082						Scr->ZoomCount = (yyvsp[0].num);
2083					  }
2084					}
2085#line 2086 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2086    break;
2087
2088  case 36: /* stmt: ZOOM  */
2089#line 193 "gram.y"
2090                                        { if (Scr->FirstTime)
2091						Scr->DoZoom = true; }
2092#line 2093 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2093    break;
2094
2095  case 37: /* stmt: PIXMAPS pixmap_list  */
2096#line 195 "gram.y"
2097                                        {}
2098#line 2099 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2099    break;
2100
2101  case 38: /* stmt: CURSORS cursor_list  */
2102#line 196 "gram.y"
2103                                        {}
2104#line 2105 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2105    break;
2106
2107  case 39: /* $@10: %empty  */
2108#line 197 "gram.y"
2109                                        { curplist = &Scr->IconifyByUn; }
2110#line 2111 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2111    break;
2112
2113  case 41: /* stmt: ICONIFY_BY_UNMAPPING  */
2114#line 199 "gram.y"
2115                                        { if (Scr->FirstTime)
2116		    Scr->IconifyByUnmapping = true; }
2117#line 2118 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2118    break;
2119
2120  case 42: /* $@11: %empty  */
2121#line 202 "gram.y"
2122                                { curplist = &Scr->OpaqueMoveList; }
2123#line 2124 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2124    break;
2125
2126  case 44: /* stmt: OPAQUEMOVE  */
2127#line 204 "gram.y"
2128                                { if (Scr->FirstTime) Scr->DoOpaqueMove = true; }
2129#line 2130 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2130    break;
2131
2132  case 45: /* $@12: %empty  */
2133#line 205 "gram.y"
2134                                { curplist = &Scr->NoOpaqueMoveList; }
2135#line 2136 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2136    break;
2137
2138  case 47: /* stmt: NOOPAQUEMOVE  */
2139#line 207 "gram.y"
2140                                { if (Scr->FirstTime) Scr->DoOpaqueMove = false; }
2141#line 2142 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2142    break;
2143
2144  case 48: /* $@13: %empty  */
2145#line 208 "gram.y"
2146                                { curplist = &Scr->OpaqueMoveList; }
2147#line 2148 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2148    break;
2149
2150  case 50: /* stmt: OPAQUERESIZE  */
2151#line 210 "gram.y"
2152                                { if (Scr->FirstTime) Scr->DoOpaqueResize = true; }
2153#line 2154 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2154    break;
2155
2156  case 51: /* $@14: %empty  */
2157#line 211 "gram.y"
2158                                        { curplist = &Scr->NoOpaqueResizeList; }
2159#line 2160 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2160    break;
2161
2162  case 53: /* stmt: NOOPAQUERESIZE  */
2163#line 213 "gram.y"
2164                                        { if (Scr->FirstTime) Scr->DoOpaqueResize = false; }
2165#line 2166 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2166    break;
2167
2168  case 54: /* stmt: LEFT_TITLEBUTTON string EQUALS action  */
2169#line 215 "gram.y"
2170                                                        {
2171					  GotTitleButton ((yyvsp[-2].ptr), (yyvsp[0].num), false);
2172					}
2173#line 2174 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2174    break;
2175
2176  case 55: /* stmt: RIGHT_TITLEBUTTON string EQUALS action  */
2177#line 218 "gram.y"
2178                                                         {
2179					  GotTitleButton ((yyvsp[-2].ptr), (yyvsp[0].num), true);
2180					}
2181#line 2182 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2182    break;
2183
2184  case 56: /* $@15: %empty  */
2185#line 221 "gram.y"
2186                                          { CreateTitleButton((yyvsp[0].ptr), 0, NULL, NULL, false, true); }
2187#line 2188 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2188    break;
2189
2190  case 58: /* $@16: %empty  */
2191#line 223 "gram.y"
2192                                           { CreateTitleButton((yyvsp[0].ptr), 0, NULL, NULL, true, true); }
2193#line 2194 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2194    break;
2195
2196  case 60: /* stmt: button string  */
2197#line 225 "gram.y"
2198                                        {
2199		    root = GetRoot((yyvsp[0].ptr), NULL, NULL);
2200		    AddFuncButton ((yyvsp[-1].num), C_ROOT, 0, F_MENU, root, NULL);
2201		}
2202#line 2203 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2203    break;
2204
2205  case 61: /* stmt: button action  */
2206#line 229 "gram.y"
2207                                        {
2208			if ((yyvsp[0].num) == F_MENU) {
2209			    pull->prev = NULL;
2210			    AddFuncButton ((yyvsp[-1].num), C_ROOT, 0, (yyvsp[0].num), pull, NULL);
2211			}
2212			else {
2213			    MenuItem *item;
2214
2215			    root = GetRoot(TWM_ROOT,NULL,NULL);
2216			    item = AddToMenu (root, "x", Action,
2217					NULL, (yyvsp[0].num), NULL, NULL);
2218			    AddFuncButton ((yyvsp[-1].num), C_ROOT, 0, (yyvsp[0].num), NULL, item);
2219			}
2220			Action = "";
2221			pull = NULL;
2222		}
2223#line 2224 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2224    break;
2225
2226  case 62: /* stmt: string fullkey  */
2227#line 245 "gram.y"
2228                                        { GotKey((yyvsp[-1].ptr), (yyvsp[0].num)); }
2229#line 2230 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2230    break;
2231
2232  case 63: /* stmt: button full  */
2233#line 246 "gram.y"
2234                                        { GotButton((yyvsp[-1].num), (yyvsp[0].num)); }
2235#line 2236 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2236    break;
2237
2238  case 64: /* $@17: %empty  */
2239#line 248 "gram.y"
2240                                            { curplist = &Scr->DontIconify; }
2241#line 2242 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2242    break;
2243
2244  case 66: /* $@18: %empty  */
2245#line 250 "gram.y"
2246                             {}
2247#line 2248 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2248    break;
2249
2250  case 68: /* $@19: %empty  */
2251#line 253 "gram.y"
2252                        { mods = 0; }
2253#line 2254 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2254    break;
2255
2256  case 69: /* $@20: %empty  */
2257#line 255 "gram.y"
2258                        { Scr->IgnoreModifier |= mods; mods = 0; }
2259#line 2260 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2260    break;
2261
2262  case 71: /* $@21: %empty  */
2263#line 257 "gram.y"
2264                                        { curplist = &Scr->OccupyAll; }
2265#line 2266 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2266    break;
2267
2268  case 73: /* $@22: %empty  */
2269#line 259 "gram.y"
2270                                        { curplist = &Scr->IconMenuDontShow; }
2271#line 2272 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2272    break;
2273
2274  case 75: /* $@23: %empty  */
2275#line 261 "gram.y"
2276                             {}
2277#line 2278 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2278    break;
2279
2280  case 77: /* $@24: %empty  */
2281#line 263 "gram.y"
2282                                        { curplist = &Scr->UnmapByMovingFarAway; }
2283#line 2284 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2284    break;
2285
2286  case 79: /* $@25: %empty  */
2287#line 265 "gram.y"
2288                                        { curplist = &Scr->AutoSqueeze; }
2289#line 2290 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2290    break;
2291
2292  case 81: /* $@26: %empty  */
2293#line 267 "gram.y"
2294                                        { curplist = &Scr->StartSqueezed; }
2295#line 2296 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2296    break;
2297
2298  case 83: /* stmt: ALWAYSSQUEEZETOGRAVITY  */
2299#line 269 "gram.y"
2300                                                { Scr->AlwaysSqueezeToGravity = true; }
2301#line 2302 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2302    break;
2303
2304  case 84: /* $@27: %empty  */
2305#line 270 "gram.y"
2306                                                { curplist = &Scr->AlwaysSqueezeToGravityL; }
2307#line 2308 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2308    break;
2309
2310  case 86: /* $@28: %empty  */
2311#line 272 "gram.y"
2312                                        { curplist = &Scr->DontSetInactive; }
2313#line 2314 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2314    break;
2315
2316  case 88: /* $@29: %empty  */
2317#line 274 "gram.y"
2318                                        { curplist = &Scr->IconMgrNoShow; }
2319#line 2320 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2320    break;
2321
2322  case 90: /* stmt: ICONMGR_NOSHOW  */
2323#line 276 "gram.y"
2324                                        { Scr->IconManagerDontShow = true; }
2325#line 2326 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2326    break;
2327
2328  case 91: /* $@30: %empty  */
2329#line 277 "gram.y"
2330                                        { curplist = &Scr->IconMgrs; }
2331#line 2332 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2332    break;
2333
2334  case 93: /* $@31: %empty  */
2335#line 279 "gram.y"
2336                                        { curplist = &Scr->IconMgrShow; }
2337#line 2338 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2338    break;
2339
2340  case 95: /* $@32: %empty  */
2341#line 281 "gram.y"
2342                                        { curplist = &Scr->NoTitleHighlight; }
2343#line 2344 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2344    break;
2345
2346  case 97: /* stmt: NO_TITLE_HILITE  */
2347#line 283 "gram.y"
2348                                        { if (Scr->FirstTime)
2349						Scr->TitleHighlight = false; }
2350#line 2351 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2351    break;
2352
2353  case 98: /* $@33: %empty  */
2354#line 285 "gram.y"
2355                                        { curplist = &Scr->NoHighlight; }
2356#line 2357 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2357    break;
2358
2359  case 100: /* stmt: NO_HILITE  */
2360#line 287 "gram.y"
2361                                        { if (Scr->FirstTime)
2362						Scr->Highlight = false; }
2363#line 2364 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2364    break;
2365
2366  case 101: /* stmt: ON_TOP_PRIORITY signed_number  */
2367#line 290 "gram.y"
2368                                        { OtpScrSetZero(Scr, WinWin, (yyvsp[0].num)); }
2369#line 2370 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2370    break;
2371
2372  case 102: /* stmt: ON_TOP_PRIORITY ICONS signed_number  */
2373#line 292 "gram.y"
2374                                        { OtpScrSetZero(Scr, IconWin, (yyvsp[0].num)); }
2375#line 2376 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2376    break;
2377
2378  case 103: /* $@34: %empty  */
2379#line 294 "gram.y"
2380                                        { curplist = OtpScrPriorityL(Scr, WinWin, (yyvsp[0].num)); }
2381#line 2382 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2382    break;
2383
2384  case 105: /* $@35: %empty  */
2385#line 297 "gram.y"
2386                                        { curplist = OtpScrPriorityL(Scr, IconWin, (yyvsp[0].num)); }
2387#line 2388 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2388    break;
2389
2390  case 107: /* $@36: %empty  */
2391#line 299 "gram.y"
2392                                        { curplist = OtpScrPriorityL(Scr, WinWin, 8); }
2393#line 2394 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2394    break;
2395
2396  case 109: /* $@37: %empty  */
2397#line 301 "gram.y"
2398                                        { OtpScrSetSwitching(Scr, WinWin, false);
2399		                          curplist = OtpScrSwitchingL(Scr, WinWin); }
2400#line 2401 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2401    break;
2402
2403  case 111: /* $@38: %empty  */
2404#line 304 "gram.y"
2405                                         { OtpScrSetSwitching(Scr, WinWin, true);
2406		                          curplist = OtpScrSwitchingL(Scr, WinWin); }
2407#line 2408 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2408    break;
2409
2410  case 113: /* $@39: %empty  */
2411#line 308 "gram.y"
2412                                        { OtpScrSetSwitching(Scr, IconWin, false);
2413                                        curplist = OtpScrSwitchingL(Scr, IconWin); }
2414#line 2415 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2415    break;
2416
2417  case 115: /* $@40: %empty  */
2418#line 312 "gram.y"
2419                                        { OtpScrSetSwitching(Scr, IconWin, true);
2420		                          curplist = OtpScrSwitchingL(Scr, IconWin); }
2421#line 2422 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2422    break;
2423
2424  case 117: /* $@41: %empty  */
2425#line 317 "gram.y"
2426                                        { curplist = &Scr->NoStackModeL; }
2427#line 2428 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2428    break;
2429
2430  case 119: /* stmt: NO_STACKMODE  */
2431#line 319 "gram.y"
2432                                        { if (Scr->FirstTime)
2433						Scr->StackMode = false; }
2434#line 2435 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2435    break;
2436
2437  case 120: /* $@42: %empty  */
2438#line 321 "gram.y"
2439                                        { curplist = &Scr->NoBorder; }
2440#line 2441 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2441    break;
2442
2443  case 122: /* stmt: AUTO_POPUP  */
2444#line 323 "gram.y"
2445                                        { Scr->AutoPopup = true; }
2446#line 2447 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2447    break;
2448
2449  case 123: /* $@43: %empty  */
2450#line 324 "gram.y"
2451                                        { curplist = &Scr->AutoPopupL; }
2452#line 2453 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2453    break;
2454
2455  case 125: /* $@44: %empty  */
2456#line 326 "gram.y"
2457                                        {
2458#ifndef SESSION
2459			twmrc_error_prefix();
2460			fprintf(stderr, "DontSave ignored; session support "
2461					"disabled.\n");
2462#endif
2463				curplist = &Scr->DontSave;
2464			}
2465#line 2466 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2466    break;
2467
2468  case 127: /* $@45: %empty  */
2469#line 335 "gram.y"
2470                                        { curplist = &Scr->NoIconTitle; }
2471#line 2472 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2472    break;
2473
2474  case 129: /* stmt: NO_ICON_TITLE  */
2475#line 337 "gram.y"
2476                                        { if (Scr->FirstTime)
2477						Scr->NoIconTitlebar = true; }
2478#line 2479 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2479    break;
2480
2481  case 130: /* $@46: %empty  */
2482#line 339 "gram.y"
2483                                        { curplist = &Scr->NoTitle; }
2484#line 2485 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2485    break;
2486
2487  case 132: /* stmt: NO_TITLE  */
2488#line 341 "gram.y"
2489                                        { if (Scr->FirstTime)
2490						Scr->NoTitlebar = true; }
2491#line 2492 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2492    break;
2493
2494  case 133: /* $@47: %empty  */
2495#line 343 "gram.y"
2496                                        { curplist = &Scr->IgnoreTransientL; }
2497#line 2498 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2498    break;
2499
2500  case 135: /* $@48: %empty  */
2501#line 345 "gram.y"
2502                                        { curplist = &Scr->MakeTitle; }
2503#line 2504 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2504    break;
2505
2506  case 137: /* $@49: %empty  */
2507#line 347 "gram.y"
2508                                        { curplist = &Scr->StartIconified; }
2509#line 2510 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2510    break;
2511
2512  case 139: /* $@50: %empty  */
2513#line 349 "gram.y"
2514                                        { curplist = &Scr->AutoRaise; }
2515#line 2516 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2516    break;
2517
2518  case 141: /* stmt: AUTO_RAISE  */
2519#line 351 "gram.y"
2520                                        { Scr->AutoRaiseDefault = true; }
2521#line 2522 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2522    break;
2523
2524  case 142: /* $@51: %empty  */
2525#line 352 "gram.y"
2526                                        { curplist = &Scr->WarpOnDeIconify; }
2527#line 2528 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2528    break;
2529
2530  case 144: /* $@52: %empty  */
2531#line 354 "gram.y"
2532                                        { curplist = &Scr->AutoLower; }
2533#line 2534 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2534    break;
2535
2536  case 146: /* stmt: AUTO_LOWER  */
2537#line 356 "gram.y"
2538                                        { Scr->AutoLowerDefault = true; }
2539#line 2540 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2540    break;
2541
2542  case 147: /* $@53: %empty  */
2543#line 357 "gram.y"
2544                                                        {
2545					root = GetRoot((yyvsp[-5].ptr), (yyvsp[-3].ptr), (yyvsp[-1].ptr)); }
2546#line 2547 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2547    break;
2548
2549  case 148: /* stmt: MENU string LP string COLON string RP $@53 menu  */
2550#line 359 "gram.y"
2551                                        { root->real_menu = true;}
2552#line 2553 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2553    break;
2554
2555  case 149: /* $@54: %empty  */
2556#line 360 "gram.y"
2557                                        { root = GetRoot((yyvsp[0].ptr), NULL, NULL); }
2558#line 2559 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2559    break;
2560
2561  case 150: /* stmt: MENU string $@54 menu  */
2562#line 361 "gram.y"
2563                                        { root->real_menu = true; }
2564#line 2565 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2565    break;
2566
2567  case 151: /* $@55: %empty  */
2568#line 362 "gram.y"
2569                                        { root = GetRoot((yyvsp[0].ptr), NULL, NULL); }
2570#line 2571 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2571    break;
2572
2573  case 153: /* $@56: %empty  */
2574#line 364 "gram.y"
2575                                        { curplist = &Scr->IconNames; }
2576#line 2577 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2577    break;
2578
2579  case 155: /* $@57: %empty  */
2580#line 366 "gram.y"
2581                                        { color = COLOR; }
2582#line 2583 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2583    break;
2584
2585  case 157: /* $@58: %empty  */
2586#line 368 "gram.y"
2587                                        {}
2588#line 2589 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2589    break;
2590
2591  case 159: /* $@59: %empty  */
2592#line 370 "gram.y"
2593                                        { color = MONOCHROME; }
2594#line 2595 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2595    break;
2596
2597  case 161: /* stmt: DEFAULT_FUNCTION action  */
2598#line 372 "gram.y"
2599                                          { Scr->DefaultFunction.func = (yyvsp[0].num);
2600					  if ((yyvsp[0].num) == F_MENU)
2601					  {
2602					    pull->prev = NULL;
2603					    Scr->DefaultFunction.menu = pull;
2604					  }
2605					  else
2606					  {
2607					    root = GetRoot(TWM_ROOT,NULL,NULL);
2608					    Scr->DefaultFunction.item =
2609						AddToMenu(root,"x",Action,
2610							  NULL,(yyvsp[0].num), NULL, NULL);
2611					  }
2612					  Action = "";
2613					  pull = NULL;
2614					}
2615#line 2616 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2616    break;
2617
2618  case 162: /* stmt: WINDOW_FUNCTION action  */
2619#line 388 "gram.y"
2620                                         { Scr->WindowFunction.func = (yyvsp[0].num);
2621					   root = GetRoot(TWM_ROOT,NULL,NULL);
2622					   Scr->WindowFunction.item =
2623						AddToMenu(root,"x",Action,
2624							  NULL,(yyvsp[0].num), NULL, NULL);
2625					   Action = "";
2626					   pull = NULL;
2627					}
2628#line 2629 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2629    break;
2630
2631  case 163: /* stmt: CHANGE_WORKSPACE_FUNCTION action  */
2632#line 396 "gram.y"
2633                                                   { Scr->ChangeWorkspaceFunction.func = (yyvsp[0].num);
2634					   root = GetRoot(TWM_ROOT,NULL,NULL);
2635					   Scr->ChangeWorkspaceFunction.item =
2636						AddToMenu(root,"x",Action,
2637							  NULL,(yyvsp[0].num), NULL, NULL);
2638					   Action = "";
2639					   pull = NULL;
2640					}
2641#line 2642 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2642    break;
2643
2644  case 164: /* stmt: DEICONIFY_FUNCTION action  */
2645#line 404 "gram.y"
2646                                            { Scr->DeIconifyFunction.func = (yyvsp[0].num);
2647					   root = GetRoot(TWM_ROOT,NULL,NULL);
2648					   Scr->DeIconifyFunction.item =
2649						AddToMenu(root,"x",Action,
2650							  NULL,(yyvsp[0].num), NULL, NULL);
2651					   Action = "";
2652					   pull = NULL;
2653					}
2654#line 2655 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2655    break;
2656
2657  case 165: /* stmt: ICONIFY_FUNCTION action  */
2658#line 412 "gram.y"
2659                                          { Scr->IconifyFunction.func = (yyvsp[0].num);
2660					   root = GetRoot(TWM_ROOT,NULL,NULL);
2661					   Scr->IconifyFunction.item =
2662						AddToMenu(root,"x",Action,
2663							  NULL,(yyvsp[0].num), NULL, NULL);
2664					   Action = "";
2665					   pull = NULL;
2666					}
2667#line 2668 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2668    break;
2669
2670  case 166: /* $@60: %empty  */
2671#line 420 "gram.y"
2672                                        { curplist = &Scr->WarpCursorL; }
2673#line 2674 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2674    break;
2675
2676  case 168: /* stmt: WARP_CURSOR  */
2677#line 422 "gram.y"
2678                                        { if (Scr->FirstTime)
2679					    Scr->WarpCursor = true; }
2680#line 2681 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2681    break;
2682
2683  case 169: /* $@61: %empty  */
2684#line 424 "gram.y"
2685                                        { curplist = &Scr->WindowRingL; }
2686#line 2687 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2687    break;
2688
2689  case 171: /* stmt: WINDOW_RING  */
2690#line 426 "gram.y"
2691                                        { Scr->WindowRingAll = true; }
2692#line 2693 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2693    break;
2694
2695  case 172: /* $@62: %empty  */
2696#line 427 "gram.y"
2697                                        { if (!Scr->WindowRingL)
2698					    Scr->WindowRingAll = true;
2699					  curplist = &Scr->WindowRingExcludeL; }
2700#line 2701 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2701    break;
2702
2703  case 174: /* $@63: %empty  */
2704#line 431 "gram.y"
2705                                        {  }
2706#line 2707 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2707    break;
2708
2709  case 176: /* $@64: %empty  */
2710#line 433 "gram.y"
2711                                        { }
2712#line 2713 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2713    break;
2714
2715  case 178: /* $@65: %empty  */
2716#line 435 "gram.y"
2717                                        { }
2718#line 2719 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2719    break;
2720
2721  case 180: /* $@66: %empty  */
2722#line 437 "gram.y"
2723                                        { }
2724#line 2725 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2725    break;
2726
2727  case 182: /* $@67: %empty  */
2728#line 439 "gram.y"
2729                                 { init_layout_override(); }
2730#line 2731 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2731    break;
2732
2733  case 184: /* $@68: %empty  */
2734#line 441 "gram.y"
2735                               { }
2736#line 2737 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2737    break;
2738
2739  case 186: /* stmt: FORCE_FOCUS  */
2740#line 443 "gram.y"
2741                              { Scr->ForceFocus = true; }
2742#line 2743 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2743    break;
2744
2745  case 187: /* $@69: %empty  */
2746#line 444 "gram.y"
2747                              { curplist = &Scr->ForceFocusL; }
2748#line 2749 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2749    break;
2750
2751  case 189: /* noarg: KEYWORD  */
2752#line 448 "gram.y"
2753                                        { if (!do_single_keyword ((yyvsp[0].num))) {
2754					    twmrc_error_prefix();
2755					    fprintf (stderr,
2756					"unknown singleton keyword %d\n",
2757						     (yyvsp[0].num));
2758					    ParseError = true;
2759					  }
2760					}
2761#line 2762 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2762    break;
2763
2764  case 190: /* sarg: SKEYWORD string  */
2765#line 458 "gram.y"
2766                                        { if (!do_string_keyword ((yyvsp[-1].num), (yyvsp[0].ptr))) {
2767					    twmrc_error_prefix();
2768					    fprintf (stderr,
2769				"unknown string keyword %d (value \"%s\")\n",
2770						     (yyvsp[-1].num), (yyvsp[0].ptr));
2771					    ParseError = true;
2772					  }
2773					}
2774#line 2775 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2775    break;
2776
2777  case 191: /* sarg: SKEYWORD  */
2778#line 466 "gram.y"
2779                                        { if (!do_string_keyword ((yyvsp[0].num), DEFSTRING)) {
2780					    twmrc_error_prefix();
2781					    fprintf (stderr,
2782				"unknown string keyword %d (no value)\n",
2783						     (yyvsp[0].num));
2784					    ParseError = true;
2785					  }
2786					}
2787#line 2788 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2788    break;
2789
2790  case 192: /* sarg: SSKEYWORD string string  */
2791#line 477 "gram.y"
2792                                        { if (!do_string_string_keyword ((yyvsp[-2].num), (yyvsp[-1].ptr), (yyvsp[0].ptr))) {
2793					    twmrc_error_prefix();
2794					    fprintf (stderr,
2795				"unknown strings keyword %d (value \"%s\" and \"%s\")\n",
2796						     (yyvsp[-2].num), (yyvsp[-1].ptr), (yyvsp[0].ptr));
2797					    ParseError = true;
2798					  }
2799					}
2800#line 2801 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2801    break;
2802
2803  case 193: /* sarg: SSKEYWORD string  */
2804#line 485 "gram.y"
2805                                        { if (!do_string_string_keyword ((yyvsp[-1].num), (yyvsp[0].ptr), NULL)) {
2806					    twmrc_error_prefix();
2807					    fprintf (stderr,
2808				"unknown string keyword %d (value \"%s\")\n",
2809						     (yyvsp[-1].num), (yyvsp[0].ptr));
2810					    ParseError = true;
2811					  }
2812					}
2813#line 2814 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2814    break;
2815
2816  case 194: /* sarg: SSKEYWORD  */
2817#line 493 "gram.y"
2818                                        { if (!do_string_string_keyword ((yyvsp[0].num), NULL, NULL)) {
2819					    twmrc_error_prefix();
2820					    fprintf (stderr,
2821				"unknown string keyword %d (no value)\n",
2822						     (yyvsp[0].num));
2823					    ParseError = true;
2824					  }
2825					}
2826#line 2827 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2827    break;
2828
2829  case 195: /* narg: NKEYWORD number  */
2830#line 503 "gram.y"
2831                                        { if (!do_number_keyword ((yyvsp[-1].num), (yyvsp[0].num))) {
2832					    twmrc_error_prefix();
2833					    fprintf (stderr,
2834				"unknown numeric keyword %d (value %d)\n",
2835						     (yyvsp[-1].num), (yyvsp[0].num));
2836					    ParseError = true;
2837					  }
2838					}
2839#line 2840 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2840    break;
2841
2842  case 196: /* keyaction: EQUALS keys COLON action  */
2843#line 515 "gram.y"
2844                                            { (yyval.num) = (yyvsp[0].num); }
2845#line 2846 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2846    break;
2847
2848  case 197: /* full: EQUALS keys COLON contexts COLON action  */
2849#line 518 "gram.y"
2850                                                           { (yyval.num) = (yyvsp[0].num); }
2851#line 2852 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2852    break;
2853
2854  case 198: /* fullkey: EQUALS keys COLON contextkeys COLON action  */
2855#line 521 "gram.y"
2856                                                              { (yyval.num) = (yyvsp[0].num); }
2857#line 2858 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2858    break;
2859
2860  case 201: /* key: META  */
2861#line 528 "gram.y"
2862                                        { mods |= Mod1Mask; }
2863#line 2864 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2864    break;
2865
2866  case 202: /* key: SHIFT  */
2867#line 529 "gram.y"
2868                                        { mods |= ShiftMask; }
2869#line 2870 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2870    break;
2871
2872  case 203: /* key: LOCK  */
2873#line 530 "gram.y"
2874                                        { mods |= LockMask; }
2875#line 2876 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2876    break;
2877
2878  case 204: /* key: CONTROL  */
2879#line 531 "gram.y"
2880                                        { mods |= ControlMask; }
2881#line 2882 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2882    break;
2883
2884  case 205: /* key: ALTER number  */
2885#line 532 "gram.y"
2886                                        { if ((yyvsp[0].num) < 1 || (yyvsp[0].num) > 5) {
2887					     twmrc_error_prefix();
2888					     fprintf (stderr,
2889				"bad altkeymap number (%d), must be 1-5\n",
2890						      (yyvsp[0].num));
2891					     ParseError = true;
2892					  } else {
2893					     mods |= (Alt1Mask << ((yyvsp[0].num) - 1));
2894					  }
2895					}
2896#line 2897 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2897    break;
2898
2899  case 206: /* key: META number  */
2900#line 542 "gram.y"
2901                                        { if ((yyvsp[0].num) < 1 || (yyvsp[0].num) > 5) {
2902					     twmrc_error_prefix();
2903					     fprintf (stderr,
2904				"bad modifier number (%d), must be 1-5\n",
2905						      (yyvsp[0].num));
2906					     ParseError = true;
2907					  } else {
2908					     mods |= (Mod1Mask << ((yyvsp[0].num) - 1));
2909					  }
2910					}
2911#line 2912 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2912    break;
2913
2914  case 207: /* key: OR  */
2915#line 552 "gram.y"
2916                                        { }
2917#line 2918 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2918    break;
2919
2920  case 208: /* vgrav: GRAVITY  */
2921#line 555 "gram.y"
2922                  {
2923			switch((yyvsp[0].num)) {
2924				case GRAV_NORTH:
2925				case GRAV_SOUTH:
2926					/* OK */
2927					(yyval.num) = (yyvsp[0].num);
2928					break;
2929				default:
2930					twmrc_error_prefix();
2931					fprintf(stderr, "Bad vertical gravity '%s'\n", yytext);
2932					ParseError = true;
2933					YYERROR;
2934			}
2935		}
2936#line 2937 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2937    break;
2938
2939  case 209: /* hgrav: GRAVITY  */
2940#line 570 "gram.y"
2941                  {
2942			switch((yyvsp[0].num)) {
2943				case GRAV_EAST:
2944				case GRAV_WEST:
2945					/* OK */
2946					(yyval.num) = (yyvsp[0].num);
2947					break;
2948				default:
2949					twmrc_error_prefix();
2950					fprintf(stderr, "Bad horiz gravity '%s'\n", yytext);
2951					ParseError = true;
2952					YYERROR;
2953			}
2954		}
2955#line 2956 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2956    break;
2957
2958  case 212: /* context: WINDOW  */
2959#line 589 "gram.y"
2960                                        { cont |= C_WINDOW_BIT; }
2961#line 2962 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2962    break;
2963
2964  case 213: /* context: TITLE  */
2965#line 590 "gram.y"
2966                                        { cont |= C_TITLE_BIT; }
2967#line 2968 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2968    break;
2969
2970  case 214: /* context: ICON  */
2971#line 591 "gram.y"
2972                                        { cont |= C_ICON_BIT; }
2973#line 2974 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2974    break;
2975
2976  case 215: /* context: ROOT  */
2977#line 592 "gram.y"
2978                                        { cont |= C_ROOT_BIT; }
2979#line 2980 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2980    break;
2981
2982  case 216: /* context: FRAME  */
2983#line 593 "gram.y"
2984                                        { cont |= C_FRAME_BIT; }
2985#line 2986 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2986    break;
2987
2988  case 217: /* context: WORKSPACE  */
2989#line 594 "gram.y"
2990                                        { cont |= C_WORKSPACE_BIT; }
2991#line 2992 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2992    break;
2993
2994  case 218: /* context: ICONMGR  */
2995#line 595 "gram.y"
2996                                        { cont |= C_ICONMGR_BIT; }
2997#line 2998 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
2998    break;
2999
3000  case 219: /* context: META  */
3001#line 596 "gram.y"
3002                                        { cont |= C_ICONMGR_BIT; }
3003#line 3004 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3004    break;
3005
3006  case 220: /* context: ALTER  */
3007#line 597 "gram.y"
3008                                        { cont |= C_ALTER_BIT; }
3009#line 3010 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3010    break;
3011
3012  case 221: /* context: ALL  */
3013#line 598 "gram.y"
3014                                        { cont |= C_ALL_BITS; }
3015#line 3016 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3016    break;
3017
3018  case 222: /* context: OR  */
3019#line 599 "gram.y"
3020                                        { }
3021#line 3022 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3022    break;
3023
3024  case 225: /* contextkey: WINDOW  */
3025#line 606 "gram.y"
3026                                        { cont |= C_WINDOW_BIT; }
3027#line 3028 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3028    break;
3029
3030  case 226: /* contextkey: TITLE  */
3031#line 607 "gram.y"
3032                                        { cont |= C_TITLE_BIT; }
3033#line 3034 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3034    break;
3035
3036  case 227: /* contextkey: ICON  */
3037#line 608 "gram.y"
3038                                        { cont |= C_ICON_BIT; }
3039#line 3040 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3040    break;
3041
3042  case 228: /* contextkey: ROOT  */
3043#line 609 "gram.y"
3044                                        { cont |= C_ROOT_BIT; }
3045#line 3046 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3046    break;
3047
3048  case 229: /* contextkey: FRAME  */
3049#line 610 "gram.y"
3050                                        { cont |= C_FRAME_BIT; }
3051#line 3052 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3052    break;
3053
3054  case 230: /* contextkey: WORKSPACE  */
3055#line 611 "gram.y"
3056                                        { cont |= C_WORKSPACE_BIT; }
3057#line 3058 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3058    break;
3059
3060  case 231: /* contextkey: ICONMGR  */
3061#line 612 "gram.y"
3062                                        { cont |= C_ICONMGR_BIT; }
3063#line 3064 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3064    break;
3065
3066  case 232: /* contextkey: META  */
3067#line 613 "gram.y"
3068                                        { cont |= C_ICONMGR_BIT; }
3069#line 3070 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3070    break;
3071
3072  case 233: /* contextkey: ALTER  */
3073#line 614 "gram.y"
3074                                        { cont |= C_ALTER_BIT; }
3075#line 3076 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3076    break;
3077
3078  case 234: /* contextkey: ALL  */
3079#line 615 "gram.y"
3080                                        { cont |= C_ALL_BITS; }
3081#line 3082 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3082    break;
3083
3084  case 235: /* contextkey: OR  */
3085#line 616 "gram.y"
3086                                        { }
3087#line 3088 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3088    break;
3089
3090  case 236: /* contextkey: string  */
3091#line 617 "gram.y"
3092                                        { Name = (char*)(yyvsp[0].ptr); cont |= C_NAME_BIT; }
3093#line 3094 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3094    break;
3095
3096  case 237: /* binding_list: LB binding_entries RB  */
3097#line 621 "gram.y"
3098                                        {}
3099#line 3100 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3100    break;
3101
3102  case 240: /* binding_entry: button keyaction  */
3103#line 628 "gram.y"
3104                                   { SetCurrentTBAction((yyvsp[-1].num), mods, (yyvsp[0].num), Action, pull); mods = 0;}
3105#line 3106 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3106    break;
3107
3108  case 241: /* binding_entry: button EQUALS action  */
3109#line 629 "gram.y"
3110                                       { SetCurrentTBAction((yyvsp[-2].num), 0, (yyvsp[0].num), Action, pull);}
3111#line 3112 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3112    break;
3113
3114  case 242: /* binding_entry: button COLON action  */
3115#line 630 "gram.y"
3116                                      {
3117			/* Deprecated since 3.8, no longer supported */
3118			yyerror("Title buttons specifications without = are no "
3119			        "longer supported.");
3120		}
3121#line 3122 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3122    break;
3123
3124  case 243: /* pixmap_list: LB pixmap_entries RB  */
3125#line 638 "gram.y"
3126                                       {}
3127#line 3128 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3128    break;
3129
3130  case 246: /* pixmap_entry: TITLE_HILITE string  */
3131#line 645 "gram.y"
3132                                      { Scr->HighlightPixmapName = strdup((yyvsp[0].ptr)); }
3133#line 3134 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3134    break;
3135
3136  case 247: /* cursor_list: LB cursor_entries RB  */
3137#line 649 "gram.y"
3138                                       {}
3139#line 3140 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3140    break;
3141
3142  case 250: /* cursor_entry: FRAME string string  */
3143#line 656 "gram.y"
3144                                      {
3145			NewBitmapCursor(&Scr->FrameCursor, (yyvsp[-1].ptr), (yyvsp[0].ptr)); }
3146#line 3147 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3147    break;
3148
3149  case 251: /* cursor_entry: FRAME string  */
3150#line 658 "gram.y"
3151                                {
3152			NewFontCursor(&Scr->FrameCursor, (yyvsp[0].ptr)); }
3153#line 3154 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3154    break;
3155
3156  case 252: /* cursor_entry: TITLE string string  */
3157#line 660 "gram.y"
3158                                      {
3159			NewBitmapCursor(&Scr->TitleCursor, (yyvsp[-1].ptr), (yyvsp[0].ptr)); }
3160#line 3161 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3161    break;
3162
3163  case 253: /* cursor_entry: TITLE string  */
3164#line 662 "gram.y"
3165                               {
3166			NewFontCursor(&Scr->TitleCursor, (yyvsp[0].ptr)); }
3167#line 3168 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3168    break;
3169
3170  case 254: /* cursor_entry: ICON string string  */
3171#line 664 "gram.y"
3172                                     {
3173			NewBitmapCursor(&Scr->IconCursor, (yyvsp[-1].ptr), (yyvsp[0].ptr)); }
3174#line 3175 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3175    break;
3176
3177  case 255: /* cursor_entry: ICON string  */
3178#line 666 "gram.y"
3179                              {
3180			NewFontCursor(&Scr->IconCursor, (yyvsp[0].ptr)); }
3181#line 3182 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3182    break;
3183
3184  case 256: /* cursor_entry: ICONMGR string string  */
3185#line 668 "gram.y"
3186                                        {
3187			NewBitmapCursor(&Scr->IconMgrCursor, (yyvsp[-1].ptr), (yyvsp[0].ptr)); }
3188#line 3189 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3189    break;
3190
3191  case 257: /* cursor_entry: ICONMGR string  */
3192#line 670 "gram.y"
3193                                 {
3194			NewFontCursor(&Scr->IconMgrCursor, (yyvsp[0].ptr)); }
3195#line 3196 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3196    break;
3197
3198  case 258: /* cursor_entry: BUTTON string string  */
3199#line 672 "gram.y"
3200                                       {
3201			NewBitmapCursor(&Scr->ButtonCursor, (yyvsp[-1].ptr), (yyvsp[0].ptr)); }
3202#line 3203 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3203    break;
3204
3205  case 259: /* cursor_entry: BUTTON string  */
3206#line 674 "gram.y"
3207                                {
3208			NewFontCursor(&Scr->ButtonCursor, (yyvsp[0].ptr)); }
3209#line 3210 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3210    break;
3211
3212  case 260: /* cursor_entry: MOVE string string  */
3213#line 676 "gram.y"
3214                                     {
3215			NewBitmapCursor(&Scr->MoveCursor, (yyvsp[-1].ptr), (yyvsp[0].ptr)); }
3216#line 3217 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3217    break;
3218
3219  case 261: /* cursor_entry: MOVE string  */
3220#line 678 "gram.y"
3221                              {
3222			NewFontCursor(&Scr->MoveCursor, (yyvsp[0].ptr)); }
3223#line 3224 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3224    break;
3225
3226  case 262: /* cursor_entry: RESIZE string string  */
3227#line 680 "gram.y"
3228                                       {
3229			NewBitmapCursor(&Scr->ResizeCursor, (yyvsp[-1].ptr), (yyvsp[0].ptr)); }
3230#line 3231 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3231    break;
3232
3233  case 263: /* cursor_entry: RESIZE string  */
3234#line 682 "gram.y"
3235                                {
3236			NewFontCursor(&Scr->ResizeCursor, (yyvsp[0].ptr)); }
3237#line 3238 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3238    break;
3239
3240  case 264: /* cursor_entry: WAITC string string  */
3241#line 684 "gram.y"
3242                                      {
3243			NewBitmapCursor(&Scr->WaitCursor, (yyvsp[-1].ptr), (yyvsp[0].ptr)); }
3244#line 3245 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3245    break;
3246
3247  case 265: /* cursor_entry: WAITC string  */
3248#line 686 "gram.y"
3249                               {
3250			NewFontCursor(&Scr->WaitCursor, (yyvsp[0].ptr)); }
3251#line 3252 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3252    break;
3253
3254  case 266: /* cursor_entry: MENU string string  */
3255#line 688 "gram.y"
3256                                     {
3257			NewBitmapCursor(&Scr->MenuCursor, (yyvsp[-1].ptr), (yyvsp[0].ptr)); }
3258#line 3259 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3259    break;
3260
3261  case 267: /* cursor_entry: MENU string  */
3262#line 690 "gram.y"
3263                              {
3264			NewFontCursor(&Scr->MenuCursor, (yyvsp[0].ptr)); }
3265#line 3266 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3266    break;
3267
3268  case 268: /* cursor_entry: SELECT string string  */
3269#line 692 "gram.y"
3270                                       {
3271			NewBitmapCursor(&Scr->SelectCursor, (yyvsp[-1].ptr), (yyvsp[0].ptr)); }
3272#line 3273 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3273    break;
3274
3275  case 269: /* cursor_entry: SELECT string  */
3276#line 694 "gram.y"
3277                                {
3278			NewFontCursor(&Scr->SelectCursor, (yyvsp[0].ptr)); }
3279#line 3280 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3280    break;
3281
3282  case 270: /* cursor_entry: KILL string string  */
3283#line 696 "gram.y"
3284                                     {
3285			NewBitmapCursor(&Scr->DestroyCursor, (yyvsp[-1].ptr), (yyvsp[0].ptr)); }
3286#line 3287 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3287    break;
3288
3289  case 271: /* cursor_entry: KILL string  */
3290#line 698 "gram.y"
3291                              {
3292			NewFontCursor(&Scr->DestroyCursor, (yyvsp[0].ptr)); }
3293#line 3294 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3294    break;
3295
3296  case 272: /* color_list: LB color_entries RB  */
3297#line 702 "gram.y"
3298                                      {}
3299#line 3300 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3300    break;
3301
3302  case 275: /* color_entry: CLKEYWORD string  */
3303#line 710 "gram.y"
3304                                        { if (!do_colorlist_keyword ((yyvsp[-1].num), color,
3305								     (yyvsp[0].ptr))) {
3306					    twmrc_error_prefix();
3307					    fprintf (stderr,
3308			"unhandled list color keyword %d (string \"%s\")\n",
3309						     (yyvsp[-1].num), (yyvsp[0].ptr));
3310					    ParseError = true;
3311					  }
3312					}
3313#line 3314 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3314    break;
3315
3316  case 276: /* $@70: %empty  */
3317#line 719 "gram.y"
3318                                        { curplist = do_colorlist_keyword((yyvsp[-1].num),color,
3319								      (yyvsp[0].ptr));
3320					  if (!curplist) {
3321					    twmrc_error_prefix();
3322					    fprintf (stderr,
3323			"unhandled color list keyword %d (string \"%s\")\n",
3324						     (yyvsp[-1].num), (yyvsp[0].ptr));
3325					    ParseError = true;
3326					  }
3327					}
3328#line 3329 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3329    break;
3330
3331  case 278: /* color_entry: CKEYWORD string  */
3332#line 730 "gram.y"
3333                                        { if (!do_color_keyword ((yyvsp[-1].num), color,
3334								 (yyvsp[0].ptr))) {
3335					    twmrc_error_prefix();
3336					    fprintf (stderr,
3337			"unhandled color keyword %d (string \"%s\")\n",
3338						     (yyvsp[-1].num), (yyvsp[0].ptr));
3339					    ParseError = true;
3340					  }
3341					}
3342#line 3343 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3343    break;
3344
3345  case 279: /* save_color_list: LB s_color_entries RB  */
3346#line 741 "gram.y"
3347                                        {}
3348#line 3349 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3349    break;
3350
3351  case 282: /* s_color_entry: string  */
3352#line 748 "gram.y"
3353                                        { do_string_savecolor(color, (yyvsp[0].ptr)); }
3354#line 3355 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3355    break;
3356
3357  case 283: /* s_color_entry: CLKEYWORD  */
3358#line 749 "gram.y"
3359                                        { do_var_savecolor((yyvsp[0].num)); }
3360#line 3361 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3361    break;
3362
3363  case 284: /* win_color_list: LB win_color_entries RB  */
3364#line 752 "gram.y"
3365                                          {}
3366#line 3367 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3367    break;
3368
3369  case 287: /* win_color_entry: string string  */
3370#line 759 "gram.y"
3371                                        { if (Scr->FirstTime &&
3372					      color == Scr->Monochrome)
3373					    AddToList(curplist, (yyvsp[-1].ptr), (yyvsp[0].ptr)); }
3374#line 3375 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3375    break;
3376
3377  case 288: /* wingeom_list: LB wingeom_entries RB  */
3378#line 764 "gram.y"
3379                                        {}
3380#line 3381 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3381    break;
3382
3383  case 291: /* wingeom_entry: string string  */
3384#line 771 "gram.y"
3385                                { AddToList (&Scr->WindowGeometries, (yyvsp[-1].ptr), (yyvsp[0].ptr)); }
3386#line 3387 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3387    break;
3388
3389  case 292: /* vscreen_geom_list: LB vscreen_geom_entries RB  */
3390#line 774 "gram.y"
3391                                                     {}
3392#line 3393 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3393    break;
3394
3395  case 295: /* vscreen_geom_entry: string  */
3396#line 781 "gram.y"
3397                                 {
3398#ifdef VSCREEN
3399				   AddToList (&Scr->VirtualScreens, (yyvsp[0].ptr), "");
3400#endif
3401				   }
3402#line 3403 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3403    break;
3404
3405  case 296: /* ewmh_ignore_list: LB ewmh_ignore_entries RB  */
3406#line 789 "gram.y"
3407                                                    { proc_ewmh_ignore(); }
3408#line 3409 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3409    break;
3410
3411  case 299: /* ewmh_ignore_entry: string  */
3412#line 796 "gram.y"
3413                                 { add_ewmh_ignore((yyvsp[0].ptr)); }
3414#line 3415 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3415    break;
3416
3417  case 300: /* mwm_ignore_list: LB mwm_ignore_entries RB  */
3418#line 800 "gram.y"
3419                                           { proc_mwm_ignore(); }
3420#line 3421 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3421    break;
3422
3423  case 303: /* mwm_ignore_entry: string  */
3424#line 807 "gram.y"
3425                                 { add_mwm_ignore((yyvsp[0].ptr)); }
3426#line 3427 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3427    break;
3428
3429  case 304: /* layout_geom_list: LB layout_geom_entries RB  */
3430#line 811 "gram.y"
3431                                                    { proc_layout_override(); }
3432#line 3433 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3433    break;
3434
3435  case 307: /* layout_geom_entry: string  */
3436#line 818 "gram.y"
3437                                 { add_layout_override_entry((yyvsp[0].ptr)); }
3438#line 3439 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3439    break;
3440
3441  case 308: /* squeeze: SQUEEZE_TITLE  */
3442#line 822 "gram.y"
3443                                {
3444				    if (HasShape) Scr->SqueezeTitle = true;
3445				}
3446#line 3447 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3447    break;
3448
3449  case 309: /* $@71: %empty  */
3450#line 825 "gram.y"
3451                                { curplist = &Scr->SqueezeTitleL;
3452				  if (HasShape)
3453				    Scr->SqueezeTitle = true;
3454				}
3455#line 3456 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3456    break;
3457
3458  case 311: /* squeeze: DONT_SQUEEZE_TITLE  */
3459#line 830 "gram.y"
3460                                     { Scr->SqueezeTitle = false; }
3461#line 3462 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3462    break;
3463
3464  case 312: /* $@72: %empty  */
3465#line 831 "gram.y"
3466                                     { curplist = &Scr->DontSqueezeTitleL; }
3467#line 3468 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3468    break;
3469
3470  case 315: /* win_sqz_entries: win_sqz_entries string SIJENUM signed_number number  */
3471#line 836 "gram.y"
3472                                                                        {
3473				if (Scr->FirstTime) {
3474				   do_squeeze_entry (curplist, (yyvsp[-3].ptr), (yyvsp[-2].num), (yyvsp[-1].num), (yyvsp[0].num));
3475				}
3476			}
3477#line 3478 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3478    break;
3479
3480  case 316: /* iconm_list: LB iconm_entries RB  */
3481#line 844 "gram.y"
3482                                      {}
3483#line 3484 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3484    break;
3485
3486  case 319: /* iconm_entry: string string number  */
3487#line 851 "gram.y"
3488                                        { if (Scr->FirstTime)
3489					    AddToList(curplist, (yyvsp[-2].ptr),
3490						AllocateIconManager((yyvsp[-2].ptr), NULL,
3491							(yyvsp[-1].ptr),(yyvsp[0].num)));
3492					}
3493#line 3494 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3494    break;
3495
3496  case 320: /* iconm_entry: string string string number  */
3497#line 857 "gram.y"
3498                                        { if (Scr->FirstTime)
3499					    AddToList(curplist, (yyvsp[-3].ptr),
3500						AllocateIconManager((yyvsp[-3].ptr),(yyvsp[-2].ptr),
3501						(yyvsp[-1].ptr), (yyvsp[0].num)));
3502					}
3503#line 3504 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3504    break;
3505
3506  case 321: /* workspc_list: LB workspc_entries RB  */
3507#line 864 "gram.y"
3508                                        {}
3509#line 3510 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3510    break;
3511
3512  case 324: /* workspc_entry: string  */
3513#line 871 "gram.y"
3514                                {
3515			AddWorkSpace ((yyvsp[0].ptr), NULL, NULL, NULL, NULL, NULL);
3516		}
3517#line 3518 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3518    break;
3519
3520  case 325: /* $@73: %empty  */
3521#line 874 "gram.y"
3522                                {
3523			curWorkSpc = (char*)(yyvsp[0].ptr);
3524		}
3525#line 3526 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3526    break;
3527
3528  case 327: /* workapp_list: LB workapp_entries RB  */
3529#line 880 "gram.y"
3530                                        {}
3531#line 3532 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3532    break;
3533
3534  case 330: /* workapp_entry: string  */
3535#line 887 "gram.y"
3536                                        {
3537			AddWorkSpace (curWorkSpc, (yyvsp[0].ptr), NULL, NULL, NULL, NULL);
3538		}
3539#line 3540 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3540    break;
3541
3542  case 331: /* workapp_entry: string string  */
3543#line 890 "gram.y"
3544                                        {
3545			AddWorkSpace (curWorkSpc, (yyvsp[-1].ptr), (yyvsp[0].ptr), NULL, NULL, NULL);
3546		}
3547#line 3548 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3548    break;
3549
3550  case 332: /* workapp_entry: string string string  */
3551#line 893 "gram.y"
3552                                        {
3553			AddWorkSpace (curWorkSpc, (yyvsp[-2].ptr), (yyvsp[-1].ptr), (yyvsp[0].ptr), NULL, NULL);
3554		}
3555#line 3556 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3556    break;
3557
3558  case 333: /* workapp_entry: string string string string  */
3559#line 896 "gram.y"
3560                                                {
3561			AddWorkSpace (curWorkSpc, (yyvsp[-3].ptr), (yyvsp[-2].ptr), (yyvsp[-1].ptr), (yyvsp[0].ptr), NULL);
3562		}
3563#line 3564 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3564    break;
3565
3566  case 334: /* workapp_entry: string string string string string  */
3567#line 899 "gram.y"
3568                                                        {
3569			AddWorkSpace (curWorkSpc, (yyvsp[-4].ptr), (yyvsp[-3].ptr), (yyvsp[-2].ptr), (yyvsp[-1].ptr), (yyvsp[0].ptr));
3570		}
3571#line 3572 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3572    break;
3573
3574  case 335: /* curwork: LB string RB  */
3575#line 904 "gram.y"
3576                               {
3577		    WMapCreateCurrentBackGround ((yyvsp[-1].ptr), NULL, NULL, NULL);
3578		}
3579#line 3580 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3580    break;
3581
3582  case 336: /* curwork: LB string string RB  */
3583#line 907 "gram.y"
3584                                      {
3585		    WMapCreateCurrentBackGround ((yyvsp[-2].ptr), (yyvsp[-1].ptr), NULL, NULL);
3586		}
3587#line 3588 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3588    break;
3589
3590  case 337: /* curwork: LB string string string RB  */
3591#line 910 "gram.y"
3592                                             {
3593		    WMapCreateCurrentBackGround ((yyvsp[-3].ptr), (yyvsp[-2].ptr), (yyvsp[-1].ptr), NULL);
3594		}
3595#line 3596 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3596    break;
3597
3598  case 338: /* curwork: LB string string string string RB  */
3599#line 913 "gram.y"
3600                                                    {
3601		    WMapCreateCurrentBackGround ((yyvsp[-4].ptr), (yyvsp[-3].ptr), (yyvsp[-2].ptr), (yyvsp[-1].ptr));
3602		}
3603#line 3604 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3604    break;
3605
3606  case 339: /* defwork: LB string RB  */
3607#line 918 "gram.y"
3608                               {
3609		    WMapCreateDefaultBackGround ((yyvsp[-1].ptr), NULL, NULL, NULL);
3610		}
3611#line 3612 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3612    break;
3613
3614  case 340: /* defwork: LB string string RB  */
3615#line 921 "gram.y"
3616                                      {
3617		    WMapCreateDefaultBackGround ((yyvsp[-2].ptr), (yyvsp[-1].ptr), NULL, NULL);
3618		}
3619#line 3620 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3620    break;
3621
3622  case 341: /* defwork: LB string string string RB  */
3623#line 924 "gram.y"
3624                                             {
3625		    WMapCreateDefaultBackGround ((yyvsp[-3].ptr), (yyvsp[-2].ptr), (yyvsp[-1].ptr), NULL);
3626		}
3627#line 3628 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3628    break;
3629
3630  case 342: /* defwork: LB string string string string RB  */
3631#line 927 "gram.y"
3632                                                    {
3633		    WMapCreateDefaultBackGround ((yyvsp[-4].ptr), (yyvsp[-3].ptr), (yyvsp[-2].ptr), (yyvsp[-1].ptr));
3634		}
3635#line 3636 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3636    break;
3637
3638  case 343: /* win_list: LB win_entries RB  */
3639#line 932 "gram.y"
3640                                    {}
3641#line 3642 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3642    break;
3643
3644  case 346: /* win_entry: string  */
3645#line 939 "gram.y"
3646                                        { if (Scr->FirstTime)
3647					    AddToList(curplist, (yyvsp[0].ptr), 0);
3648					}
3649#line 3650 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3650    break;
3651
3652  case 347: /* occupy_list: LB occupy_entries RB  */
3653#line 944 "gram.y"
3654                                       {}
3655#line 3656 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3656    break;
3657
3658  case 350: /* $@74: %empty  */
3659#line 951 "gram.y"
3660                         {client = (char*)(yyvsp[0].ptr);}
3661#line 3662 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3662    break;
3663
3664  case 352: /* $@75: %empty  */
3665#line 953 "gram.y"
3666                                   {client = (char*)(yyvsp[0].ptr);}
3667#line 3668 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3668    break;
3669
3670  case 354: /* $@76: %empty  */
3671#line 955 "gram.y"
3672                                   {workspace = (char*)(yyvsp[0].ptr);}
3673#line 3674 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3674    break;
3675
3676  case 356: /* occupy_workspc_list: LB occupy_workspc_entries RB  */
3677#line 959 "gram.y"
3678                                                       {}
3679#line 3680 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3680    break;
3681
3682  case 359: /* occupy_workspc_entry: string  */
3683#line 966 "gram.y"
3684                                 {
3685				if(!AddToClientsList ((yyvsp[0].ptr), client)) {
3686					twmrc_error_prefix();
3687					fprintf(stderr, "unknown workspace '%s'\n", (yyvsp[0].ptr));
3688				}
3689			  }
3690#line 3691 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3691    break;
3692
3693  case 360: /* occupy_window_list: LB occupy_window_entries RB  */
3694#line 974 "gram.y"
3695                                                      {}
3696#line 3697 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3697    break;
3698
3699  case 363: /* occupy_window_entry: string  */
3700#line 981 "gram.y"
3701                                 {
3702				if(!AddToClientsList (workspace, (yyvsp[0].ptr))) {
3703					twmrc_error_prefix();
3704					fprintf(stderr, "unknown workspace '%s'\n", workspace);
3705				}
3706			  }
3707#line 3708 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3708    break;
3709
3710  case 364: /* icon_list: LB icon_entries RB  */
3711#line 989 "gram.y"
3712                                     {}
3713#line 3714 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3714    break;
3715
3716  case 367: /* icon_entry: string string  */
3717#line 996 "gram.y"
3718                                        { if (Scr->FirstTime) AddToList(curplist, (yyvsp[-1].ptr), (yyvsp[0].ptr)); }
3719#line 3720 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3720    break;
3721
3722  case 368: /* rplay_sounds_list: LB rplay_sounds_entries RB  */
3723#line 999 "gram.y"
3724                                                     {
3725#ifndef SOUNDS
3726			twmrc_error_prefix();
3727			fprintf(stderr, "RplaySounds ignored; rplay support "
3728					"not configured.\n");
3729#else
3730			sound_set_from_config();
3731#endif
3732		}
3733#line 3734 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3734    break;
3735
3736  case 371: /* rplay_sounds_entry: string string  */
3737#line 1014 "gram.y"
3738                                        {
3739#ifdef SOUNDS
3740			if(set_sound_event_name((yyvsp[-1].ptr), (yyvsp[0].ptr)) != 0) {
3741				twmrc_error_prefix();
3742				fprintf(stderr, "Failed adding sound for %s; "
3743						"maybe event name is invalid?\n", (yyvsp[-1].ptr));
3744			}
3745#endif
3746		}
3747#line 3748 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3748    break;
3749
3750  case 372: /* function: LB function_entries RB  */
3751#line 1025 "gram.y"
3752                                         {}
3753#line 3754 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3754    break;
3755
3756  case 375: /* function_entry: action  */
3757#line 1032 "gram.y"
3758                                        { AddToMenu(root, "", Action, NULL, (yyvsp[0].num),
3759						    NULL, NULL);
3760					  Action = "";
3761					}
3762#line 3763 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3763    break;
3764
3765  case 376: /* menu: LB menu_entries RB  */
3766#line 1038 "gram.y"
3767                                     {lastmenuitem = NULL;}
3768#line 3769 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3769    break;
3770
3771  case 379: /* menu_entry: string action  */
3772#line 1045 "gram.y"
3773                                        {
3774			if ((yyvsp[0].num) == F_SEPARATOR) {
3775			    if (lastmenuitem) lastmenuitem->separated = true;
3776			}
3777			else {
3778			    lastmenuitem = AddToMenu(root, (yyvsp[-1].ptr), Action, pull, (yyvsp[0].num), NULL, NULL);
3779			    Action = "";
3780			    pull = NULL;
3781			}
3782		}
3783#line 3784 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3784    break;
3785
3786  case 380: /* menu_entry: string LP string COLON string RP action  */
3787#line 1055 "gram.y"
3788                                                          {
3789			if ((yyvsp[0].num) == F_SEPARATOR) {
3790			    if (lastmenuitem) lastmenuitem->separated = true;
3791			}
3792			else {
3793			    lastmenuitem = AddToMenu(root, (yyvsp[-6].ptr), Action, pull, (yyvsp[0].num), (yyvsp[-4].ptr), (yyvsp[-2].ptr));
3794			    Action = "";
3795			    pull = NULL;
3796			}
3797		}
3798#line 3799 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3799    break;
3800
3801  case 381: /* action: FKEYWORD  */
3802#line 1067 "gram.y"
3803                                { (yyval.num) = (yyvsp[0].num); }
3804#line 3805 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3805    break;
3806
3807  case 382: /* action: FSKEYWORD string  */
3808#line 1068 "gram.y"
3809                                   {
3810				(yyval.num) = (yyvsp[-1].num);
3811				Action = (char*)(yyvsp[0].ptr);
3812				switch ((yyvsp[-1].num)) {
3813				  case F_MENU:
3814				    pull = GetRoot ((yyvsp[0].ptr), NULL,NULL);
3815				    pull->prev = root;
3816				    break;
3817				  case F_WARPRING:
3818				    if (!CheckWarpRingArg (Action)) {
3819					twmrc_error_prefix();
3820					fprintf (stderr,
3821			"ignoring invalid f.warptoring argument \"%s\"\n",
3822						 Action);
3823					(yyval.num) = F_NOP;
3824				    }
3825				    break;
3826				  case F_WARPTOSCREEN:
3827				    if (!CheckWarpScreenArg (Action)) {
3828					twmrc_error_prefix();
3829					fprintf (stderr,
3830			"ignoring invalid f.warptoscreen argument \"%s\"\n",
3831						 Action);
3832					(yyval.num) = F_NOP;
3833				    }
3834				    break;
3835				  case F_COLORMAP:
3836				    if (CheckColormapArg (Action)) {
3837					(yyval.num) = F_COLORMAP;
3838				    } else {
3839					twmrc_error_prefix();
3840					fprintf (stderr,
3841			"ignoring invalid f.colormap argument \"%s\"\n",
3842						 Action);
3843					(yyval.num) = F_NOP;
3844				    }
3845				    break;
3846				} /* end switch */
3847				   }
3848#line 3849 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3849    break;
3850
3851  case 383: /* signed_number: number  */
3852#line 1110 "gram.y"
3853                                        { (yyval.num) = (yyvsp[0].num); }
3854#line 3855 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3855    break;
3856
3857  case 384: /* signed_number: PLUS number  */
3858#line 1111 "gram.y"
3859                                        { (yyval.num) = (yyvsp[0].num); }
3860#line 3861 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3861    break;
3862
3863  case 385: /* signed_number: MINUS number  */
3864#line 1112 "gram.y"
3865                                        { (yyval.num) = -((yyvsp[0].num)); }
3866#line 3867 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3867    break;
3868
3869  case 386: /* button: BUTTON number  */
3870#line 1115 "gram.y"
3871                                        { (yyval.num) = (yyvsp[0].num);
3872					  if ((yyvsp[0].num) == 0)
3873						yyerror("bad button 0");
3874
3875					  if ((yyvsp[0].num) > MAX_BUTTONS)
3876					  {
3877						(yyval.num) = 0;
3878						yyerror("button number too large");
3879					  }
3880					}
3881#line 3882 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3882    break;
3883
3884  case 387: /* string: STRING  */
3885#line 1127 "gram.y"
3886                                        { char *ptr = strdup((yyvsp[0].ptr));
3887					  RemoveDQuote(ptr);
3888					  (yyval.ptr) = ptr;
3889					}
3890#line 3891 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3891    break;
3892
3893  case 388: /* number: NUMBER  */
3894#line 1133 "gram.y"
3895                                        { (yyval.num) = (yyvsp[0].num); }
3896#line 3897 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3897    break;
3898
3899
3900#line 3901 "/encrypt/home/nia/git/ctwm-4.1.0/build/gram.tab.c"
3901
3902      default: break;
3903    }
3904  /* User semantic actions sometimes alter yychar, and that requires
3905     that yytoken be updated with the new translation.  We take the
3906     approach of translating immediately before every use of yytoken.
3907     One alternative is translating here after every semantic action,
3908     but that translation would be missed if the semantic action invokes
3909     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
3910     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
3911     incorrect destructor might then be invoked immediately.  In the
3912     case of YYERROR or YYBACKUP, subsequent parser actions might lead
3913     to an incorrect destructor call or verbose syntax error message
3914     before the lookahead is translated.  */
3915  YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
3916
3917  YYPOPSTACK (yylen);
3918  yylen = 0;
3919
3920  *++yyvsp = yyval;
3921
3922  /* Now 'shift' the result of the reduction.  Determine what state
3923     that goes to, based on the state we popped back to and the rule
3924     number reduced by.  */
3925  {
3926    const int yylhs = yyr1[yyn] - YYNTOKENS;
3927    const int yyi = yypgoto[yylhs] + *yyssp;
3928    yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
3929               ? yytable[yyi]
3930               : yydefgoto[yylhs]);
3931  }
3932
3933  goto yynewstate;
3934
3935
3936/*--------------------------------------.
3937| yyerrlab -- here on detecting error.  |
3938`--------------------------------------*/
3939yyerrlab:
3940  /* Make sure we have latest lookahead translation.  See comments at
3941     user semantic actions for why this is necessary.  */
3942  yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
3943  /* If not already recovering from an error, report this error.  */
3944  if (!yyerrstatus)
3945    {
3946      ++yynerrs;
3947      yyerror (YY_("syntax error"));
3948    }
3949
3950  if (yyerrstatus == 3)
3951    {
3952      /* If just tried and failed to reuse lookahead token after an
3953         error, discard it.  */
3954
3955      if (yychar <= YYEOF)
3956        {
3957          /* Return failure if at end of input.  */
3958          if (yychar == YYEOF)
3959            YYABORT;
3960        }
3961      else
3962        {
3963          yydestruct ("Error: discarding",
3964                      yytoken, &yylval);
3965          yychar = YYEMPTY;
3966        }
3967    }
3968
3969  /* Else will try to reuse lookahead token after shifting the error
3970     token.  */
3971  goto yyerrlab1;
3972
3973
3974/*---------------------------------------------------.
3975| yyerrorlab -- error raised explicitly by YYERROR.  |
3976`---------------------------------------------------*/
3977yyerrorlab:
3978  /* Pacify compilers when the user code never invokes YYERROR and the
3979     label yyerrorlab therefore never appears in user code.  */
3980  if (0)
3981    YYERROR;
3982  ++yynerrs;
3983
3984  /* Do not reclaim the symbols of the rule whose action triggered
3985     this YYERROR.  */
3986  YYPOPSTACK (yylen);
3987  yylen = 0;
3988  YY_STACK_PRINT (yyss, yyssp);
3989  yystate = *yyssp;
3990  goto yyerrlab1;
3991
3992
3993/*-------------------------------------------------------------.
3994| yyerrlab1 -- common code for both syntax error and YYERROR.  |
3995`-------------------------------------------------------------*/
3996yyerrlab1:
3997  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
3998
3999  /* Pop stack until we find a state that shifts the error token.  */
4000  for (;;)
4001    {
4002      yyn = yypact[yystate];
4003      if (!yypact_value_is_default (yyn))
4004        {
4005          yyn += YYSYMBOL_YYerror;
4006          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
4007            {
4008              yyn = yytable[yyn];
4009              if (0 < yyn)
4010                break;
4011            }
4012        }
4013
4014      /* Pop the current state because it cannot handle the error token.  */
4015      if (yyssp == yyss)
4016        YYABORT;
4017
4018
4019      yydestruct ("Error: popping",
4020                  YY_ACCESSING_SYMBOL (yystate), yyvsp);
4021      YYPOPSTACK (1);
4022      yystate = *yyssp;
4023      YY_STACK_PRINT (yyss, yyssp);
4024    }
4025
4026  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
4027  *++yyvsp = yylval;
4028  YY_IGNORE_MAYBE_UNINITIALIZED_END
4029
4030
4031  /* Shift the error token.  */
4032  YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
4033
4034  yystate = yyn;
4035  goto yynewstate;
4036
4037
4038/*-------------------------------------.
4039| yyacceptlab -- YYACCEPT comes here.  |
4040`-------------------------------------*/
4041yyacceptlab:
4042  yyresult = 0;
4043  goto yyreturnlab;
4044
4045
4046/*-----------------------------------.
4047| yyabortlab -- YYABORT comes here.  |
4048`-----------------------------------*/
4049yyabortlab:
4050  yyresult = 1;
4051  goto yyreturnlab;
4052
4053
4054/*-----------------------------------------------------------.
4055| yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here.  |
4056`-----------------------------------------------------------*/
4057yyexhaustedlab:
4058  yyerror (YY_("memory exhausted"));
4059  yyresult = 2;
4060  goto yyreturnlab;
4061
4062
4063/*----------------------------------------------------------.
4064| yyreturnlab -- parsing is finished, clean up and return.  |
4065`----------------------------------------------------------*/
4066yyreturnlab:
4067  if (yychar != YYEMPTY)
4068    {
4069      /* Make sure we have latest lookahead translation.  See comments at
4070         user semantic actions for why this is necessary.  */
4071      yytoken = YYTRANSLATE (yychar);
4072      yydestruct ("Cleanup: discarding lookahead",
4073                  yytoken, &yylval);
4074    }
4075  /* Do not reclaim the symbols of the rule whose action triggered
4076     this YYABORT or YYACCEPT.  */
4077  YYPOPSTACK (yylen);
4078  YY_STACK_PRINT (yyss, yyssp);
4079  while (yyssp != yyss)
4080    {
4081      yydestruct ("Cleanup: popping",
4082                  YY_ACCESSING_SYMBOL (+*yyssp), yyvsp);
4083      YYPOPSTACK (1);
4084    }
4085#ifndef yyoverflow
4086  if (yyss != yyssa)
4087    YYSTACK_FREE (yyss);
4088#endif
4089
4090  return yyresult;
4091}
4092
4093#line 1136 "gram.y"
4094
4095