#include #include #define YYBYACC 1 #define YYMAJOR 1 #define YYMINOR 9 #define YYLEX yylex() #define YYEMPTY -1 #define yyclearin (yychar=(YYEMPTY)) #define yyerrok (yyerrflag=0) #define YYRECOVERING() (yyerrflag!=0) #define YYPREFIX "yy" #line 68 "gram.y" #include #include #include "twm.h" #include "menus.h" #include "list.h" #include "util.h" #include "screen.h" #include "parse.h" #include "add_window.h" #include "icons.h" #include #include static char *Action = ""; static char *Name = ""; static MenuRoot *root, *pull = NULL; static MenuRoot *GetRoot ( const char *name, const char *fore, const char *back ); static void GotButton ( int butt, int func ); static void GotKey ( char *key, int func ); static void GotTitleButton ( char *bitmapname, int func, Bool rightside ); static Bool CheckWarpScreenArg ( char *s ); static Bool CheckWarpRingArg ( char *s ); static Bool CheckColormapArg ( char *s ); static void RemoveDQuote ( char *str ); static char *ptr; static name_list **list; static int cont = 0; static int color; int mods = 0; unsigned int mods_used = (ShiftMask | ControlMask | Mod1Mask); extern int yylineno; static void yyerror ( const char *s ); #line 106 "gram.y" #ifndef YYSTYPE_DEFINED #define YYSTYPE_DEFINED typedef union { int num; char *ptr; } YYSTYPE; #endif /* YYSTYPE_DEFINED */ #line 59 "gram.c" #define LB 257 #define RB 258 #define LP 259 #define RP 260 #define MENUS 261 #define MENU 262 #define BUTTON 263 #define DEFAULT_FUNCTION 264 #define PLUS 265 #define MINUS 266 #define ALL 267 #define OR 268 #define CURSORS 269 #define PIXMAPS 270 #define ICONS 271 #define COLOR 272 #define SAVECOLOR 273 #define MONOCHROME 274 #define FUNCTION 275 #define WINDOW_FUNCTION 276 #define ZOOM 277 #define MAKE_TITLE 278 #define GRAYSCALE 279 #define ICONIFY_BY_UNMAPPING 280 #define DONT_ICONIFY_BY_UNMAPPING 281 #define NO_TITLE 282 #define AUTO_RAISE 283 #define NO_HILITE 284 #define ICON_REGION 285 #define META 286 #define SHIFT 287 #define LOCK 288 #define CONTROL 289 #define WINDOW 290 #define TITLE 291 #define ICON 292 #define ROOT 293 #define FRAME 294 #define COLON 295 #define EQUALS 296 #define SQUEEZE_TITLE 297 #define DONT_SQUEEZE_TITLE 298 #define START_ICONIFIED 299 #define NO_TITLE_HILITE 300 #define TITLE_HILITE 301 #define MOVE 302 #define RESIZE 303 #define WAIT 304 #define SELECT 305 #define KILL 306 #define LEFT_TITLEBUTTON 307 #define RIGHT_TITLEBUTTON 308 #define NUMBER 309 #define KEYWORD 310 #define NKEYWORD 311 #define CKEYWORD 312 #define CLKEYWORD 313 #define FKEYWORD 314 #define FSKEYWORD 315 #define SKEYWORD 316 #define DKEYWORD 317 #define JKEYWORD 318 #define WINDOW_RING 319 #define WARP_CURSOR 320 #define ERRORTOKEN 321 #define NO_STACKMODE 322 #define STRING 323 #define YYERRCODE 256 const short yylhs[] = { -1, 0, 22, 22, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 23, 6, 6, 6, 6, 6, 6, 6, 6, 24, 6, 25, 6, 6, 26, 6, 6, 27, 6, 6, 28, 6, 6, 29, 6, 30, 6, 31, 6, 32, 6, 33, 6, 34, 6, 36, 6, 37, 6, 38, 6, 6, 39, 6, 6, 6, 40, 6, 6, 41, 6, 11, 12, 13, 20, 21, 42, 42, 45, 45, 45, 45, 45, 45, 43, 43, 46, 46, 46, 46, 46, 46, 46, 44, 44, 47, 47, 47, 47, 47, 47, 47, 47, 2, 48, 48, 49, 3, 50, 50, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 4, 52, 52, 15, 53, 15, 15, 5, 54, 54, 55, 55, 7, 56, 56, 57, 14, 58, 14, 14, 60, 14, 59, 59, 8, 61, 61, 62, 35, 63, 63, 64, 9, 65, 65, 66, 10, 67, 67, 68, 68, 16, 16, 19, 19, 19, 17, 1, 18, }; const short yylen[] = { 2, 1, 0, 2, 1, 1, 1, 1, 1, 6, 2, 1, 2, 2, 0, 3, 1, 4, 4, 2, 2, 2, 2, 0, 3, 0, 3, 1, 0, 3, 1, 0, 3, 1, 0, 3, 1, 0, 3, 0, 3, 0, 3, 0, 9, 0, 4, 0, 4, 0, 3, 0, 3, 0, 3, 2, 0, 3, 2, 2, 0, 3, 1, 0, 3, 1, 2, 2, 6, 6, 0, 2, 1, 1, 1, 1, 2, 1, 0, 2, 1, 1, 1, 1, 1, 1, 1, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 3, 0, 2, 2, 3, 0, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 0, 2, 2, 0, 4, 2, 3, 0, 2, 1, 1, 3, 0, 2, 2, 1, 0, 5, 1, 0, 3, 0, 5, 3, 0, 2, 1, 3, 0, 2, 2, 3, 0, 2, 1, 3, 0, 2, 2, 7, 1, 2, 1, 2, 2, 2, 1, 1, }; const short yydefred[] = { 2, 0, 0, 4, 0, 0, 0, 0, 0, 49, 51, 0, 56, 0, 0, 0, 37, 53, 0, 23, 0, 41, 0, 0, 0, 0, 39, 0, 0, 0, 65, 0, 0, 63, 0, 0, 171, 0, 3, 5, 6, 7, 8, 0, 0, 172, 170, 165, 0, 58, 102, 13, 98, 12, 0, 0, 132, 55, 0, 47, 59, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 66, 0, 0, 0, 70, 21, 70, 19, 20, 22, 0, 0, 166, 0, 0, 153, 50, 125, 52, 0, 57, 0, 149, 38, 54, 15, 24, 35, 42, 29, 0, 146, 145, 40, 26, 0, 0, 64, 61, 32, 0, 0, 0, 161, 46, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 97, 0, 99, 0, 0, 131, 135, 134, 133, 157, 48, 0, 0, 0, 17, 18, 77, 0, 73, 74, 75, 87, 71, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 152, 0, 154, 124, 0, 0, 126, 0, 148, 151, 150, 0, 142, 0, 76, 0, 0, 0, 160, 0, 162, 118, 110, 106, 108, 104, 112, 114, 116, 120, 122, 155, 130, 0, 156, 159, 158, 9, 0, 94, 95, 89, 90, 91, 92, 93, 0, 96, 88, 85, 86, 80, 81, 82, 83, 84, 0, 79, 43, 0, 163, 0, 0, 0, 167, 0, 69, 68, 0, 0, 137, 129, 168, 169, 147, 44, 0, 0, 0, 136, 0, 138, 0, 139, 164, }; const short yydgoto[] = { 1, 37, 53, 51, 95, 57, 38, 242, 100, 144, 121, 39, 40, 41, 42, 177, 49, 43, 46, 236, 86, 82, 2, 64, 65, 73, 68, 80, 66, 62, 72, 67, 239, 88, 98, 93, 54, 55, 63, 58, 79, 78, 117, 187, 186, 156, 228, 219, 91, 136, 90, 133, 138, 232, 96, 142, 248, 252, 70, 147, 71, 145, 181, 137, 173, 178, 207, 159, 191, }; const short yysindex[] = { 0, 0, 615, 0, -309, -291, -278, -237, -224, 0, 0, -219, 0, -309, -278, -291, 0, 0, 0, 0, 0, 0, 0, -309, 0, 0, 0, 0, -309, -309, 0, -291, -309, 0, 0, 0, 0, -255, 0, 0, 0, 0, 0, -280, -217, 0, 0, 0, -309, 0, 0, 0, 0, 0, -205, -204, 0, 0, -204, 0, 0, 0, -203, -204, -203, -203, -203, -203, -203, -277, -198, -203, -203, -203, -234, -233, 0, 0, -203, -203, -203, 0, 0, 0, 0, 0, 0, -309, -193, 0, -207, -243, 0, 0, 0, 0, -256, 0, -189, 0, 0, 0, 0, 0, 0, 0, 0, -227, 0, 0, 0, 0, -278, -278, 0, 0, 0, -87, -76, -216, 0, 0, 0, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, 0, 0, -309, 0, -253, -247, 0, 0, 0, 0, 0, 0, -252, -291, -251, 0, 0, 0, -291, 0, 0, 0, 0, 0, 0, -309, -250, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, 0, 0, -309, 0, 0, -309, -309, 0, -254, 0, 0, 0, -291, 0, -232, 0, -245, -179, -180, 0, -238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -235, 0, 0, 0, 0, 0, 0, 0, -278, 0, 0, 0, 0, 0, 0, 0, 0, 0, -278, 0, 0, -309, 0, -166, -291, -291, 0, -291, 0, 0, -193, -202, 0, 0, 0, 0, 0, 0, -309, -248, -160, 0, -309, 0, -278, 0, 0,}; const short yyrindex[] = { 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 553, 0, 0, 1, 0, 69, 0, 137, 0, 205, 287, 0, 355, 0, 0, 0, 0, 0, 0, 423, 491, 0, 0, 0, 0, 0, 0, 0, 0, -154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -35, 0, 0, 0, 0, 0, 0, 0, 0, -116, -67, 648, 666, 683, 701, 718, 736, 753, 771, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,}; const short yygindex[] = { 0, -4, 0, 0, -46, 0, 0, 0, 224, 0, -135, 0, 0, 0, 0, 0, -11, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; #define YYTABLESIZE 1077 const short yytable[] = { 44, 16, 139, 60, 205, 171, 179, 183, 189, 59, 250, 174, 97, 61, 36, 134, 83, 101, 45, 69, 50, 230, 210, 211, 74, 75, 128, 127, 77, 76, 233, 234, 85, 52, 47, 48, 47, 48, 56, 84, 107, 81, 87, 36, 89, 212, 213, 214, 215, 216, 217, 122, 92, 94, 99, 123, 124, 140, 135, 108, 47, 48, 112, 113, 120, 175, 176, 36, 143, 36, 36, 36, 36, 36, 45, 36, 47, 48, 36, 158, 229, 127, 127, 119, 125, 126, 209, 127, 220, 221, 146, 241, 141, 247, 1, 128, 129, 130, 131, 132, 253, 148, 149, 45, 246, 118, 0, 0, 0, 0, 0, 222, 223, 224, 225, 226, 227, 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 0, 0, 170, 0, 172, 0, 0, 0, 30, 0, 0, 0, 180, 119, 184, 182, 0, 119, 119, 0, 185, 0, 0, 0, 0, 188, 190, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 0, 206, 202, 0, 0, 203, 204, 0, 0, 119, 119, 0, 119, 231, 208, 150, 218, 0, 0, 0, 119, 119, 119, 119, 119, 111, 150, 0, 0, 111, 111, 0, 0, 151, 152, 153, 154, 0, 0, 140, 237, 235, 155, 0, 151, 152, 153, 154, 0, 0, 238, 0, 0, 157, 0, 0, 0, 0, 111, 111, 240, 111, 0, 0, 0, 243, 244, 72, 245, 111, 111, 111, 111, 111, 0, 0, 255, 249, 251, 0, 0, 254, 0, 0, 0, 72, 72, 72, 72, 0, 0, 16, 14, 0, 72, 0, 0, 16, 16, 16, 0, 0, 0, 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 143, 102, 103, 104, 105, 106, 0, 0, 109, 110, 111, 16, 16, 16, 16, 114, 115, 116, 0, 0, 0, 16, 16, 0, 16, 16, 0, 0, 0, 0, 16, 0, 0, 16, 16, 0, 16, 16, 36, 34, 0, 0, 0, 0, 36, 36, 36, 0, 0, 0, 0, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 36, 36, 36, 0, 0, 0, 0, 0, 0, 36, 36, 0, 36, 36, 0, 0, 0, 0, 36, 0, 0, 36, 36, 0, 36, 36, 30, 28, 0, 0, 0, 0, 30, 30, 30, 0, 0, 0, 0, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, 30, 30, 0, 0, 0, 0, 0, 0, 30, 30, 0, 30, 30, 0, 0, 0, 0, 30, 0, 0, 30, 30, 0, 30, 30, 140, 141, 0, 0, 0, 0, 140, 140, 140, 0, 0, 0, 0, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 140, 140, 140, 140, 0, 0, 0, 0, 0, 0, 140, 140, 0, 140, 140, 0, 0, 0, 0, 140, 0, 0, 140, 140, 0, 140, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, 144, 0, 0, 0, 0, 143, 143, 143, 0, 11, 0, 0, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, 143, 143, 143, 0, 0, 0, 0, 0, 0, 143, 143, 0, 143, 143, 0, 0, 0, 0, 143, 0, 0, 143, 143, 0, 143, 143, 27, 25, 0, 0, 0, 0, 27, 27, 27, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 27, 27, 0, 27, 27, 0, 0, 0, 0, 27, 0, 0, 27, 27, 0, 27, 27, 62, 60, 0, 0, 0, 0, 62, 62, 62, 0, 0, 0, 0, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 62, 62, 62, 0, 0, 0, 0, 0, 0, 62, 62, 0, 62, 62, 0, 0, 0, 0, 62, 0, 0, 62, 62, 0, 62, 62, 33, 31, 0, 0, 0, 0, 33, 33, 33, 0, 0, 0, 0, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 33, 33, 33, 0, 0, 0, 0, 0, 0, 33, 33, 0, 33, 33, 0, 0, 0, 0, 33, 0, 11, 33, 33, 0, 33, 33, 11, 11, 11, 0, 0, 0, 0, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 11, 11, 0, 0, 0, 0, 0, 0, 11, 11, 0, 11, 11, 0, 0, 0, 0, 11, 0, 3, 11, 11, 0, 11, 11, 4, 5, 6, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 0, 0, 0, 107, 0, 0, 0, 107, 107, 24, 25, 26, 27, 0, 0, 0, 0, 0, 0, 28, 29, 109, 30, 31, 0, 109, 109, 0, 32, 0, 0, 33, 34, 0, 35, 36, 107, 107, 105, 107, 0, 0, 105, 105, 0, 0, 0, 107, 107, 107, 107, 107, 0, 0, 109, 109, 113, 109, 0, 0, 113, 113, 0, 0, 0, 109, 109, 109, 109, 109, 0, 105, 105, 115, 105, 0, 0, 115, 115, 0, 0, 0, 105, 105, 105, 105, 105, 0, 0, 113, 113, 117, 113, 0, 0, 117, 117, 0, 0, 0, 113, 113, 113, 113, 113, 0, 115, 115, 121, 115, 0, 0, 121, 121, 0, 0, 0, 115, 115, 115, 115, 115, 0, 0, 117, 117, 123, 117, 0, 0, 123, 123, 0, 0, 0, 117, 117, 117, 117, 117, 0, 121, 121, 0, 121, 0, 0, 0, 0, 0, 0, 0, 121, 121, 121, 121, 121, 0, 0, 123, 123, 0, 123, 0, 0, 0, 0, 0, 0, 0, 123, 123, 123, 123, 123, }; const short yycheck[] = { 4, 0, 258, 14, 258, 258, 258, 258, 258, 13, 258, 258, 58, 15, 323, 258, 296, 63, 309, 23, 257, 259, 267, 268, 28, 29, 257, 258, 32, 31, 265, 266, 43, 257, 314, 315, 314, 315, 257, 43, 317, 296, 259, 323, 48, 290, 291, 292, 293, 294, 295, 258, 257, 257, 257, 262, 263, 313, 301, 257, 314, 315, 296, 296, 257, 312, 313, 323, 257, 0, 323, 323, 323, 323, 309, 323, 314, 315, 323, 295, 260, 312, 313, 87, 291, 292, 318, 294, 267, 268, 317, 257, 96, 295, 0, 302, 303, 304, 305, 306, 260, 112, 113, 257, 239, 83, -1, -1, -1, -1, -1, 290, 291, 292, 293, 294, 295, -1, -1, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, -1, -1, 135, -1, 137, -1, -1, -1, 0, -1, -1, -1, 145, 258, 147, 146, -1, 262, 263, -1, 151, -1, -1, -1, -1, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, -1, 178, 172, -1, -1, 175, 176, -1, -1, 291, 292, -1, 294, 190, 182, 268, 186, -1, -1, -1, 302, 303, 304, 305, 306, 258, 268, -1, -1, 262, 263, -1, -1, 286, 287, 288, 289, -1, -1, 0, 217, 209, 295, -1, 286, 287, 288, 289, -1, -1, 227, -1, -1, 295, -1, -1, -1, -1, 291, 292, 230, 294, -1, -1, -1, 233, 234, 268, 236, 302, 303, 304, 305, 306, -1, -1, 253, 247, 248, -1, -1, 251, -1, -1, -1, 286, 287, 288, 289, -1, -1, 256, 257, -1, 295, -1, -1, 262, 263, 264, -1, -1, -1, -1, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 0, 64, 65, 66, 67, 68, -1, -1, 71, 72, 73, 297, 298, 299, 300, 78, 79, 80, -1, -1, -1, 307, 308, -1, 310, 311, -1, -1, -1, -1, 316, -1, -1, 319, 320, -1, 322, 323, 256, 257, -1, -1, -1, -1, 262, 263, 264, -1, -1, -1, -1, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 297, 298, 299, 300, -1, -1, -1, -1, -1, -1, 307, 308, -1, 310, 311, -1, -1, -1, -1, 316, -1, -1, 319, 320, -1, 322, 323, 256, 257, -1, -1, -1, -1, 262, 263, 264, -1, -1, -1, -1, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 297, 298, 299, 300, -1, -1, -1, -1, -1, -1, 307, 308, -1, 310, 311, -1, -1, -1, -1, 316, -1, -1, 319, 320, -1, 322, 323, 256, 257, -1, -1, -1, -1, 262, 263, 264, -1, -1, -1, -1, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 297, 298, 299, 300, -1, -1, -1, -1, -1, -1, 307, 308, -1, 310, 311, -1, -1, -1, -1, 316, -1, -1, 319, 320, -1, 322, 323, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 256, 257, -1, -1, -1, -1, 262, 263, 264, -1, 0, -1, -1, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 297, 298, 299, 300, -1, -1, -1, -1, -1, -1, 307, 308, -1, 310, 311, -1, -1, -1, -1, 316, -1, -1, 319, 320, -1, 322, 323, 256, 257, -1, -1, -1, -1, 262, 263, 264, -1, -1, -1, -1, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 297, 298, 299, 300, -1, -1, -1, -1, -1, -1, 307, 308, -1, 310, 311, -1, -1, -1, -1, 316, -1, -1, 319, 320, -1, 322, 323, 256, 257, -1, -1, -1, -1, 262, 263, 264, -1, -1, -1, -1, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 297, 298, 299, 300, -1, -1, -1, -1, -1, -1, 307, 308, -1, 310, 311, -1, -1, -1, -1, 316, -1, -1, 319, 320, -1, 322, 323, 256, 257, -1, -1, -1, -1, 262, 263, 264, -1, -1, -1, -1, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 297, 298, 299, 300, -1, -1, -1, -1, -1, -1, 307, 308, -1, 310, 311, -1, -1, -1, -1, 316, -1, 256, 319, 320, -1, 322, 323, 262, 263, 264, -1, -1, -1, -1, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 297, 298, 299, 300, -1, -1, -1, -1, -1, -1, 307, 308, -1, 310, 311, -1, -1, -1, -1, 316, -1, 256, 319, 320, -1, 322, 323, 262, 263, 264, -1, -1, -1, -1, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, -1, -1, -1, -1, 258, -1, -1, -1, 262, 263, 297, 298, 299, 300, -1, -1, -1, -1, -1, -1, 307, 308, 258, 310, 311, -1, 262, 263, -1, 316, -1, -1, 319, 320, -1, 322, 323, 291, 292, 258, 294, -1, -1, 262, 263, -1, -1, -1, 302, 303, 304, 305, 306, -1, -1, 291, 292, 258, 294, -1, -1, 262, 263, -1, -1, -1, 302, 303, 304, 305, 306, -1, 291, 292, 258, 294, -1, -1, 262, 263, -1, -1, -1, 302, 303, 304, 305, 306, -1, -1, 291, 292, 258, 294, -1, -1, 262, 263, -1, -1, -1, 302, 303, 304, 305, 306, -1, 291, 292, 258, 294, -1, -1, 262, 263, -1, -1, -1, 302, 303, 304, 305, 306, -1, -1, 291, 292, 258, 294, -1, -1, 262, 263, -1, -1, -1, 302, 303, 304, 305, 306, -1, 291, 292, -1, 294, -1, -1, -1, -1, -1, -1, -1, 302, 303, 304, 305, 306, -1, -1, 291, 292, -1, 294, -1, -1, -1, -1, -1, -1, -1, 302, 303, 304, 305, 306, }; #define YYFINAL 1 #ifndef YYDEBUG #define YYDEBUG 0 #endif #define YYMAXTOKEN 323 #if YYDEBUG const char * const yyname[] = { "end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"LB","RB","LP","RP","MENUS", "MENU","BUTTON","DEFAULT_FUNCTION","PLUS","MINUS","ALL","OR","CURSORS", "PIXMAPS","ICONS","COLOR","SAVECOLOR","MONOCHROME","FUNCTION","WINDOW_FUNCTION", "ZOOM","MAKE_TITLE","GRAYSCALE","ICONIFY_BY_UNMAPPING", "DONT_ICONIFY_BY_UNMAPPING","NO_TITLE","AUTO_RAISE","NO_HILITE","ICON_REGION", "META","SHIFT","LOCK","CONTROL","WINDOW","TITLE","ICON","ROOT","FRAME","COLON", "EQUALS","SQUEEZE_TITLE","DONT_SQUEEZE_TITLE","START_ICONIFIED", "NO_TITLE_HILITE","TITLE_HILITE","MOVE","RESIZE","WAIT","SELECT","KILL", "LEFT_TITLEBUTTON","RIGHT_TITLEBUTTON","NUMBER","KEYWORD","NKEYWORD","CKEYWORD", "CLKEYWORD","FKEYWORD","FSKEYWORD","SKEYWORD","DKEYWORD","JKEYWORD", "WINDOW_RING","WARP_CURSOR","ERRORTOKEN","NO_STACKMODE","STRING", }; const char * const yyrule[] = {"$accept : twmrc", "twmrc : stmts", "stmts :", "stmts : stmts stmt", "stmt : error", "stmt : noarg", "stmt : sarg", "stmt : narg", "stmt : squeeze", "stmt : ICON_REGION string DKEYWORD DKEYWORD number number", "stmt : ZOOM number", "stmt : ZOOM", "stmt : PIXMAPS pixmap_list", "stmt : CURSORS cursor_list", "$$1 :", "stmt : ICONIFY_BY_UNMAPPING $$1 win_list", "stmt : ICONIFY_BY_UNMAPPING", "stmt : LEFT_TITLEBUTTON string EQUALS action", "stmt : RIGHT_TITLEBUTTON string EQUALS action", "stmt : button string", "stmt : button action", "stmt : string fullkey", "stmt : button full", "$$2 :", "stmt : DONT_ICONIFY_BY_UNMAPPING $$2 win_list", "$$3 :", "stmt : NO_TITLE_HILITE $$3 win_list", "stmt : NO_TITLE_HILITE", "$$4 :", "stmt : NO_HILITE $$4 win_list", "stmt : NO_HILITE", "$$5 :", "stmt : NO_STACKMODE $$5 win_list", "stmt : NO_STACKMODE", "$$6 :", "stmt : NO_TITLE $$6 win_list", "stmt : NO_TITLE", "$$7 :", "stmt : MAKE_TITLE $$7 win_list", "$$8 :", "stmt : START_ICONIFIED $$8 win_list", "$$9 :", "stmt : AUTO_RAISE $$9 win_list", "$$10 :", "stmt : MENU string LP string COLON string RP $$10 menu", "$$11 :", "stmt : MENU string $$11 menu", "$$12 :", "stmt : FUNCTION string $$12 function", "$$13 :", "stmt : ICONS $$13 icon_list", "$$14 :", "stmt : COLOR $$14 color_list", "$$15 :", "stmt : GRAYSCALE $$15 color_list", "stmt : SAVECOLOR save_color_list", "$$16 :", "stmt : MONOCHROME $$16 color_list", "stmt : DEFAULT_FUNCTION action", "stmt : WINDOW_FUNCTION action", "$$17 :", "stmt : WARP_CURSOR $$17 win_list", "stmt : WARP_CURSOR", "$$18 :", "stmt : WINDOW_RING $$18 win_list", "noarg : KEYWORD", "sarg : SKEYWORD string", "narg : NKEYWORD number", "full : EQUALS keys COLON contexts COLON action", "fullkey : EQUALS keys COLON contextkeys COLON action", "keys :", "keys : keys key", "key : META", "key : SHIFT", "key : LOCK", "key : CONTROL", "key : META number", "key : OR", "contexts :", "contexts : contexts context", "context : WINDOW", "context : TITLE", "context : ICON", "context : ROOT", "context : FRAME", "context : ALL", "context : OR", "contextkeys :", "contextkeys : contextkeys contextkey", "contextkey : WINDOW", "contextkey : TITLE", "contextkey : ICON", "contextkey : ROOT", "contextkey : FRAME", "contextkey : ALL", "contextkey : OR", "contextkey : string", "pixmap_list : LB pixmap_entries RB", "pixmap_entries :", "pixmap_entries : pixmap_entries pixmap_entry", "pixmap_entry : TITLE_HILITE string", "cursor_list : LB cursor_entries RB", "cursor_entries :", "cursor_entries : cursor_entries cursor_entry", "cursor_entry : FRAME string string", "cursor_entry : FRAME string", "cursor_entry : TITLE string string", "cursor_entry : TITLE string", "cursor_entry : ICON string string", "cursor_entry : ICON string", "cursor_entry : BUTTON string string", "cursor_entry : BUTTON string", "cursor_entry : MOVE string string", "cursor_entry : MOVE string", "cursor_entry : RESIZE string string", "cursor_entry : RESIZE string", "cursor_entry : WAIT string string", "cursor_entry : WAIT string", "cursor_entry : MENU string string", "cursor_entry : MENU string", "cursor_entry : SELECT string string", "cursor_entry : SELECT string", "cursor_entry : KILL string string", "cursor_entry : KILL string", "color_list : LB color_entries RB", "color_entries :", "color_entries : color_entries color_entry", "color_entry : CLKEYWORD string", "$$19 :", "color_entry : CLKEYWORD string $$19 win_color_list", "color_entry : CKEYWORD string", "save_color_list : LB s_color_entries RB", "s_color_entries :", "s_color_entries : s_color_entries s_color_entry", "s_color_entry : string", "s_color_entry : CLKEYWORD", "win_color_list : LB win_color_entries RB", "win_color_entries :", "win_color_entries : win_color_entries win_color_entry", "win_color_entry : string string", "squeeze : SQUEEZE_TITLE", "$$20 :", "squeeze : SQUEEZE_TITLE $$20 LB win_sqz_entries RB", "squeeze : DONT_SQUEEZE_TITLE", "$$21 :", "squeeze : DONT_SQUEEZE_TITLE $$21 win_list", "win_sqz_entries :", "win_sqz_entries : win_sqz_entries string JKEYWORD signed_number number", "win_list : LB win_entries RB", "win_entries :", "win_entries : win_entries win_entry", "win_entry : string", "icon_list : LB icon_entries RB", "icon_entries :", "icon_entries : icon_entries icon_entry", "icon_entry : string string", "function : LB function_entries RB", "function_entries :", "function_entries : function_entries function_entry", "function_entry : action", "menu : LB menu_entries RB", "menu_entries :", "menu_entries : menu_entries menu_entry", "menu_entry : string action", "menu_entry : string LP string COLON string RP action", "action : FKEYWORD", "action : FSKEYWORD string", "signed_number : number", "signed_number : PLUS number", "signed_number : MINUS number", "button : BUTTON number", "string : STRING", "number : NUMBER", }; #endif #ifdef YYSTACKSIZE #undef YYMAXDEPTH #define YYMAXDEPTH YYSTACKSIZE #else #ifdef YYMAXDEPTH #define YYSTACKSIZE YYMAXDEPTH #else #define YYSTACKSIZE 10000 #define YYMAXDEPTH 10000 #endif #endif #define YYINITSTACKSIZE 200 /* LINTUSED */ int yydebug; int yynerrs; int yyerrflag; int yychar; short *yyssp; YYSTYPE *yyvsp; YYSTYPE yyval; YYSTYPE yylval; short *yyss; short *yysslim; YYSTYPE *yyvs; unsigned int yystacksize; int yyparse(void); #line 619 "gram.y" static void yyerror(const char *s) { twmrc_error_prefix(); fprintf (stderr, "error in input file: %s\n", s ? s : ""); ParseError = 1; } static void RemoveDQuote(char *str) { register char *i, *o; register int n; register int count; for (i=str+1, o=str; *i && *i != '\"'; o++) { if (*i == '\\') { switch (*++i) { case 'n': *o = '\n'; i++; break; case 'b': *o = '\b'; i++; break; case 'r': *o = '\r'; i++; break; case 't': *o = '\t'; i++; break; case 'f': *o = '\f'; i++; break; case '0': if (*++i == 'x') goto hex; else --i; case '1': case '2': case '3': case '4': case '5': case '6': case '7': n = 0; count = 0; while (*i >= '0' && *i <= '7' && count < 3) { n = (n<<3) + (*i++ - '0'); count++; } *o = n; break; hex: case 'x': n = 0; count = 0; while (i++, count++ < 2) { if (*i >= '0' && *i <= '9') n = (n<<4) + (*i - '0'); else if (*i >= 'a' && *i <= 'f') n = (n<<4) + (*i - 'a') + 10; else if (*i >= 'A' && *i <= 'F') n = (n<<4) + (*i - 'A') + 10; else break; } *o = n; break; case '\n': i++; /* punt */ o--; /* to account for o++ at end of loop */ break; case '\"': case '\'': case '\\': default: *o = *i++; break; } } else *o = *i++; } *o = '\0'; } static MenuRoot *GetRoot(const char *name, const char* fore, const char *back) { MenuRoot *tmp; tmp = FindMenuRoot(name); if (tmp == NULL) tmp = NewMenuRoot(name); if (fore) { int save; save = Scr->FirstTime; Scr->FirstTime = TRUE; GetColor(COLOR, &tmp->hi_fore, fore); GetColor(COLOR, &tmp->hi_back, back); Scr->FirstTime = save; } return tmp; } static void GotButton(int butt, int func) { int i; for (i = 0; i < NUM_CONTEXTS; i++) { if ((cont & (1 << i)) == 0) continue; Scr->Mouse[butt][i][mods].func = func; if (func == F_MENU) { pull->prev = NULL; Scr->Mouse[butt][i][mods].menu = pull; } else { root = GetRoot(TWM_ROOT, NULLSTR, NULLSTR); Scr->Mouse[butt][i][mods].item = AddToMenu(root,"x",Action, NULL, func, NULLSTR, NULLSTR); } } Action = ""; pull = NULL; cont = 0; mods_used |= mods; mods = 0; } static void GotKey(char *key, int func) { int i; for (i = 0; i < NUM_CONTEXTS; i++) { if ((cont & (1 << i)) == 0) continue; if (!AddFuncKey(key, i, mods, func, Name, Action)) break; } Action = ""; pull = NULL; cont = 0; mods_used |= mods; mods = 0; } static void GotTitleButton (char *bitmapname, int func, Bool rightside) { if (!CreateTitleButton (bitmapname, func, Action, pull, rightside, True)) { twmrc_error_prefix(); fprintf (stderr, "unable to create %s titlebutton \"%s\"\n", rightside ? "right" : "left", bitmapname); } Action = ""; pull = NULL; } static Bool CheckWarpScreenArg (char *s) { XmuCopyISOLatin1Lowered (s, s); if (strcmp (s, WARPSCREEN_NEXT) == 0 || strcmp (s, WARPSCREEN_PREV) == 0 || strcmp (s, WARPSCREEN_BACK) == 0) return True; for (; *s && isascii(*s) && isdigit(*s); s++) ; /* SUPPRESS 530 */ return (*s ? False : True); } static Bool CheckWarpRingArg (char *s) { XmuCopyISOLatin1Lowered (s, s); if (strcmp (s, WARPSCREEN_NEXT) == 0 || strcmp (s, WARPSCREEN_PREV) == 0) return True; return False; } static Bool CheckColormapArg (char *s) { XmuCopyISOLatin1Lowered (s, s); if (strcmp (s, COLORMAP_NEXT) == 0 || strcmp (s, COLORMAP_PREV) == 0 || strcmp (s, COLORMAP_DEFAULT) == 0) return True; return False; } void twmrc_error_prefix (void) { fprintf (stderr, "%s: line %d: ", ProgramName, yylineno); } #line 938 "gram.c" /* allocate initial stack or double stack size, up to YYMAXDEPTH */ static int yygrowstack(void) { unsigned int newsize; long sslen; short *newss; YYSTYPE *newvs; if ((newsize = yystacksize) == 0) newsize = YYINITSTACKSIZE; else if (newsize >= YYMAXDEPTH) return -1; else if ((newsize *= 2) > YYMAXDEPTH) newsize = YYMAXDEPTH; sslen = yyssp - yyss; #ifdef SIZE_MAX #define YY_SIZE_MAX SIZE_MAX #else #define YY_SIZE_MAX 0xffffffffU #endif if (newsize && YY_SIZE_MAX / newsize < sizeof *newss) goto bail; newss = yyss ? (short *)realloc(yyss, newsize * sizeof *newss) : (short *)malloc(newsize * sizeof *newss); /* overflow check above */ if (newss == NULL) goto bail; yyss = newss; yyssp = newss + sslen; if (newsize && YY_SIZE_MAX / newsize < sizeof *newvs) goto bail; newvs = yyvs ? (YYSTYPE *)realloc(yyvs, newsize * sizeof *newvs) : (YYSTYPE *)malloc(newsize * sizeof *newvs); /* overflow check above */ if (newvs == NULL) goto bail; yyvs = newvs; yyvsp = newvs + sslen; yystacksize = newsize; yysslim = yyss + newsize - 1; return 0; bail: if (yyss) free(yyss); if (yyvs) free(yyvs); yyss = yyssp = NULL; yyvs = yyvsp = NULL; yystacksize = 0; return -1; } #define YYABORT goto yyabort #define YYREJECT goto yyabort #define YYACCEPT goto yyaccept #define YYERROR goto yyerrlab int yyparse(void) { int yym, yyn, yystate; #if YYDEBUG const char *yys; if ((yys = getenv("YYDEBUG"))) { yyn = *yys; if (yyn >= '0' && yyn <= '9') yydebug = yyn - '0'; } #endif /* YYDEBUG */ yynerrs = 0; yyerrflag = 0; yychar = (-1); if (yyss == NULL && yygrowstack()) goto yyoverflow; yyssp = yyss; yyvsp = yyvs; *yyssp = yystate = 0; yyloop: if ((yyn = yydefred[yystate]) != 0) goto yyreduce; if (yychar < 0) { if ((yychar = yylex()) < 0) yychar = 0; #if YYDEBUG if (yydebug) { yys = 0; if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; if (!yys) yys = "illegal-symbol"; printf("%sdebug: state %d, reading %d (%s)\n", YYPREFIX, yystate, yychar, yys); } #endif } if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 && yyn <= YYTABLESIZE && yycheck[yyn] == yychar) { #if YYDEBUG if (yydebug) printf("%sdebug: state %d, shifting to state %d\n", YYPREFIX, yystate, yytable[yyn]); #endif if (yyssp >= yysslim && yygrowstack()) { goto yyoverflow; } *++yyssp = yystate = yytable[yyn]; *++yyvsp = yylval; yychar = (-1); if (yyerrflag > 0) --yyerrflag; goto yyloop; } if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 && yyn <= YYTABLESIZE && yycheck[yyn] == yychar) { yyn = yytable[yyn]; goto yyreduce; } if (yyerrflag) goto yyinrecovery; #if defined(__GNUC__) goto yynewerror; #endif yynewerror: yyerror("syntax error"); #if defined(__GNUC__) goto yyerrlab; #endif yyerrlab: ++yynerrs; yyinrecovery: if (yyerrflag < 3) { yyerrflag = 3; for (;;) { if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 && yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE) { #if YYDEBUG if (yydebug) printf("%sdebug: state %d, error recovery shifting\ to state %d\n", YYPREFIX, *yyssp, yytable[yyn]); #endif if (yyssp >= yysslim && yygrowstack()) { goto yyoverflow; } *++yyssp = yystate = yytable[yyn]; *++yyvsp = yylval; goto yyloop; } else { #if YYDEBUG if (yydebug) printf("%sdebug: error recovery discarding state %d\n", YYPREFIX, *yyssp); #endif if (yyssp <= yyss) goto yyabort; --yyssp; --yyvsp; } } } else { if (yychar == 0) goto yyabort; #if YYDEBUG if (yydebug) { yys = 0; if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; if (!yys) yys = "illegal-symbol"; printf("%sdebug: state %d, error recovery discards token %d (%s)\n", YYPREFIX, yystate, yychar, yys); } #endif yychar = (-1); goto yyloop; } yyreduce: #if YYDEBUG if (yydebug) printf("%sdebug: state %d, reducing by rule %d (%s)\n", YYPREFIX, yystate, yyn, yyrule[yyn]); #endif yym = yylen[yyn]; if (yym) yyval = yyvsp[1-yym]; else memset(&yyval, 0, sizeof yyval); switch (yyn) { case 9: #line 149 "gram.y" { AddIconRegion(yyvsp[-4].ptr, yyvsp[-3].num, yyvsp[-2].num, yyvsp[-1].num, yyvsp[0].num); } break; case 10: #line 150 "gram.y" { if (Scr->FirstTime) { Scr->DoZoom = TRUE; Scr->ZoomCount = yyvsp[0].num; } } break; case 11: #line 156 "gram.y" { if (Scr->FirstTime) Scr->DoZoom = TRUE; } break; case 12: #line 158 "gram.y" {} break; case 13: #line 159 "gram.y" {} break; case 14: #line 160 "gram.y" { list = &Scr->IconifyByUn; } break; case 16: #line 162 "gram.y" { if (Scr->FirstTime) Scr->IconifyByUnmapping = TRUE; } break; case 17: #line 164 "gram.y" { GotTitleButton (yyvsp[-2].ptr, yyvsp[0].num, False); } break; case 18: #line 167 "gram.y" { GotTitleButton (yyvsp[-2].ptr, yyvsp[0].num, True); } break; case 19: #line 170 "gram.y" { root = GetRoot(yyvsp[0].ptr, NULLSTR, NULLSTR); Scr->Mouse[yyvsp[-1].num][C_ROOT][0].func = F_MENU; Scr->Mouse[yyvsp[-1].num][C_ROOT][0].menu = root; } break; case 20: #line 174 "gram.y" { Scr->Mouse[yyvsp[-1].num][C_ROOT][0].func = yyvsp[0].num; if (yyvsp[0].num == F_MENU) { pull->prev = NULL; Scr->Mouse[yyvsp[-1].num][C_ROOT][0].menu = pull; } else { root = GetRoot(TWM_ROOT,NULLSTR,NULLSTR); Scr->Mouse[yyvsp[-1].num][C_ROOT][0].item = AddToMenu(root,"x",Action, NULL,yyvsp[0].num,NULLSTR,NULLSTR); } Action = ""; pull = NULL; } break; case 21: #line 190 "gram.y" { GotKey(yyvsp[-1].ptr, yyvsp[0].num); } break; case 22: #line 191 "gram.y" { GotButton(yyvsp[-1].num, yyvsp[0].num); } break; case 23: #line 192 "gram.y" { list = &Scr->DontIconify; } break; case 25: #line 194 "gram.y" { list = &Scr->NoTitleHighlight; } break; case 27: #line 196 "gram.y" { if (Scr->FirstTime) Scr->TitleHighlight = FALSE; } break; case 28: #line 198 "gram.y" { list = &Scr->NoHighlight; } break; case 30: #line 200 "gram.y" { if (Scr->FirstTime) Scr->Highlight = FALSE; } break; case 31: #line 202 "gram.y" { list = &Scr->NoStackModeL; } break; case 33: #line 204 "gram.y" { if (Scr->FirstTime) Scr->StackMode = FALSE; } break; case 34: #line 206 "gram.y" { list = &Scr->NoTitle; } break; case 36: #line 208 "gram.y" { if (Scr->FirstTime) Scr->NoTitlebar = TRUE; } break; case 37: #line 210 "gram.y" { list = &Scr->MakeTitle; } break; case 39: #line 212 "gram.y" { list = &Scr->StartIconified; } break; case 41: #line 214 "gram.y" { list = &Scr->AutoRaise; } break; case 43: #line 216 "gram.y" { root = GetRoot(yyvsp[-5].ptr, yyvsp[-3].ptr, yyvsp[-1].ptr); } break; case 44: #line 218 "gram.y" { root->real_menu = TRUE;} break; case 45: #line 219 "gram.y" { root = GetRoot(yyvsp[0].ptr, NULLSTR, NULLSTR); } break; case 46: #line 220 "gram.y" { root->real_menu = TRUE; } break; case 47: #line 221 "gram.y" { root = GetRoot(yyvsp[0].ptr, NULLSTR, NULLSTR); } break; case 49: #line 223 "gram.y" { list = &Scr->IconNames; } break; case 51: #line 225 "gram.y" { color = COLOR; } break; case 53: #line 227 "gram.y" { color = GRAYSCALE; } break; case 56: #line 231 "gram.y" { color = MONOCHROME; } break; case 58: #line 233 "gram.y" { Scr->DefaultFunction.func = yyvsp[0].num; if (yyvsp[0].num == F_MENU) { pull->prev = NULL; Scr->DefaultFunction.menu = pull; } else { root = GetRoot(TWM_ROOT,NULLSTR,NULLSTR); Scr->DefaultFunction.item = AddToMenu(root,"x",Action, NULL,yyvsp[0].num, NULLSTR, NULLSTR); } Action = ""; pull = NULL; } break; case 59: #line 249 "gram.y" { Scr->WindowFunction.func = yyvsp[0].num; root = GetRoot(TWM_ROOT,NULLSTR,NULLSTR); Scr->WindowFunction.item = AddToMenu(root,"x",Action, NULL,yyvsp[0].num, NULLSTR, NULLSTR); Action = ""; pull = NULL; } break; case 60: #line 257 "gram.y" { list = &Scr->WarpCursorL; } break; case 62: #line 259 "gram.y" { if (Scr->FirstTime) Scr->WarpCursor = TRUE; } break; case 63: #line 261 "gram.y" { list = &Scr->WindowRingL; } break; case 65: #line 266 "gram.y" { if (!do_single_keyword (yyvsp[0].num)) { twmrc_error_prefix(); fprintf (stderr, "unknown singleton keyword %d\n", yyvsp[0].num); ParseError = 1; } } break; case 66: #line 276 "gram.y" { if (!do_string_keyword (yyvsp[-1].num, yyvsp[0].ptr)) { twmrc_error_prefix(); fprintf (stderr, "unknown string keyword %d (value \"%s\")\n", yyvsp[-1].num, yyvsp[0].ptr); ParseError = 1; } } break; case 67: #line 286 "gram.y" { if (!do_number_keyword (yyvsp[-1].num, yyvsp[0].num)) { twmrc_error_prefix(); fprintf (stderr, "unknown numeric keyword %d (value %d)\n", yyvsp[-1].num, yyvsp[0].num); ParseError = 1; } } break; case 68: #line 298 "gram.y" { yyval.num = yyvsp[0].num; } break; case 69: #line 301 "gram.y" { yyval.num = yyvsp[0].num; } break; case 72: #line 308 "gram.y" { mods |= Mod1Mask; } break; case 73: #line 309 "gram.y" { mods |= ShiftMask; } break; case 74: #line 310 "gram.y" { mods |= LockMask; } break; case 75: #line 311 "gram.y" { mods |= ControlMask; } break; case 76: #line 312 "gram.y" { if (yyvsp[0].num < 1 || yyvsp[0].num > 5) { twmrc_error_prefix(); fprintf (stderr, "bad modifier number (%d), must be 1-5\n", yyvsp[0].num); ParseError = 1; } else { mods |= (Mod1Mask << (yyvsp[0].num - 1)); } } break; case 77: #line 322 "gram.y" { } break; case 80: #line 329 "gram.y" { cont |= C_WINDOW_BIT; } break; case 81: #line 330 "gram.y" { cont |= C_TITLE_BIT; } break; case 82: #line 331 "gram.y" { cont |= C_ICON_BIT; } break; case 83: #line 332 "gram.y" { cont |= C_ROOT_BIT; } break; case 84: #line 333 "gram.y" { cont |= C_FRAME_BIT; } break; case 85: #line 334 "gram.y" { cont |= C_ALL_BITS; } break; case 86: #line 335 "gram.y" { } break; case 89: #line 342 "gram.y" { cont |= C_WINDOW_BIT; } break; case 90: #line 343 "gram.y" { cont |= C_TITLE_BIT; } break; case 91: #line 344 "gram.y" { cont |= C_ICON_BIT; } break; case 92: #line 345 "gram.y" { cont |= C_ROOT_BIT; } break; case 93: #line 346 "gram.y" { cont |= C_FRAME_BIT; } break; case 94: #line 347 "gram.y" { cont |= C_ALL_BITS; } break; case 95: #line 348 "gram.y" { } break; case 96: #line 349 "gram.y" { Name = yyvsp[0].ptr; cont |= C_NAME_BIT; } break; case 100: #line 360 "gram.y" { SetHighlightPixmap (yyvsp[0].ptr); } break; case 104: #line 371 "gram.y" { NewBitmapCursor(&Scr->FrameCursor, yyvsp[-1].ptr, yyvsp[0].ptr); } break; case 105: #line 373 "gram.y" { NewFontCursor(&Scr->FrameCursor, yyvsp[0].ptr); } break; case 106: #line 375 "gram.y" { NewBitmapCursor(&Scr->TitleCursor, yyvsp[-1].ptr, yyvsp[0].ptr); } break; case 107: #line 377 "gram.y" { NewFontCursor(&Scr->TitleCursor, yyvsp[0].ptr); } break; case 108: #line 379 "gram.y" { NewBitmapCursor(&Scr->IconCursor, yyvsp[-1].ptr, yyvsp[0].ptr); } break; case 109: #line 381 "gram.y" { NewFontCursor(&Scr->IconCursor, yyvsp[0].ptr); } break; case 110: #line 383 "gram.y" { NewBitmapCursor(&Scr->ButtonCursor, yyvsp[-1].ptr, yyvsp[0].ptr); } break; case 111: #line 385 "gram.y" { NewFontCursor(&Scr->ButtonCursor, yyvsp[0].ptr); } break; case 112: #line 387 "gram.y" { NewBitmapCursor(&Scr->MoveCursor, yyvsp[-1].ptr, yyvsp[0].ptr); } break; case 113: #line 389 "gram.y" { NewFontCursor(&Scr->MoveCursor, yyvsp[0].ptr); } break; case 114: #line 391 "gram.y" { NewBitmapCursor(&Scr->ResizeCursor, yyvsp[-1].ptr, yyvsp[0].ptr); } break; case 115: #line 393 "gram.y" { NewFontCursor(&Scr->ResizeCursor, yyvsp[0].ptr); } break; case 116: #line 395 "gram.y" { NewBitmapCursor(&Scr->WaitCursor, yyvsp[-1].ptr, yyvsp[0].ptr); } break; case 117: #line 397 "gram.y" { NewFontCursor(&Scr->WaitCursor, yyvsp[0].ptr); } break; case 118: #line 399 "gram.y" { NewBitmapCursor(&Scr->MenuCursor, yyvsp[-1].ptr, yyvsp[0].ptr); } break; case 119: #line 401 "gram.y" { NewFontCursor(&Scr->MenuCursor, yyvsp[0].ptr); } break; case 120: #line 403 "gram.y" { NewBitmapCursor(&Scr->SelectCursor, yyvsp[-1].ptr, yyvsp[0].ptr); } break; case 121: #line 405 "gram.y" { NewFontCursor(&Scr->SelectCursor, yyvsp[0].ptr); } break; case 122: #line 407 "gram.y" { NewBitmapCursor(&Scr->DestroyCursor, yyvsp[-1].ptr, yyvsp[0].ptr); } break; case 123: #line 409 "gram.y" { NewFontCursor(&Scr->DestroyCursor, yyvsp[0].ptr); } break; case 127: #line 421 "gram.y" { if (!do_colorlist_keyword (yyvsp[-1].num, color, yyvsp[0].ptr)) { twmrc_error_prefix(); fprintf (stderr, "unhandled list color keyword %d (string \"%s\")\n", yyvsp[-1].num, yyvsp[0].ptr); ParseError = 1; } } break; case 128: #line 430 "gram.y" { list = do_colorlist_keyword(yyvsp[-1].num,color, yyvsp[0].ptr); if (!list) { twmrc_error_prefix(); fprintf (stderr, "unhandled color list keyword %d (string \"%s\")\n", yyvsp[-1].num, yyvsp[0].ptr); ParseError = 1; } } break; case 129: #line 440 "gram.y" { /* No action */; } break; case 130: #line 441 "gram.y" { if (!do_color_keyword (yyvsp[-1].num, color, yyvsp[0].ptr)) { twmrc_error_prefix(); fprintf (stderr, "unhandled color keyword %d (string \"%s\")\n", yyvsp[-1].num, yyvsp[0].ptr); ParseError = 1; } } break; case 134: #line 459 "gram.y" { do_string_savecolor(color, yyvsp[0].ptr); } break; case 135: #line 460 "gram.y" { do_var_savecolor(yyvsp[0].num); } break; case 139: #line 470 "gram.y" { if (Scr->FirstTime && color == Scr->Monochrome) AddToList(list, yyvsp[-1].ptr, yyvsp[0].ptr); } break; case 140: #line 475 "gram.y" { if (HasShape) Scr->SqueezeTitle = TRUE; } break; case 141: #line 478 "gram.y" { list = &Scr->SqueezeTitleL; if (HasShape && Scr->SqueezeTitle == -1) Scr->SqueezeTitle = TRUE; } break; case 143: #line 483 "gram.y" { Scr->SqueezeTitle = FALSE; } break; case 144: #line 484 "gram.y" { list = &Scr->DontSqueezeTitleL; } break; case 147: #line 489 "gram.y" { if (Scr->FirstTime) { do_squeeze_entry (list, yyvsp[-3].ptr, yyvsp[-2].num, yyvsp[-1].num, yyvsp[0].num); } } break; case 151: #line 503 "gram.y" { if (Scr->FirstTime) AddToList(list, yyvsp[0].ptr, 0); } break; case 155: #line 515 "gram.y" { if (Scr->FirstTime) AddToList(list, yyvsp[-1].ptr, yyvsp[0].ptr); } break; case 159: #line 525 "gram.y" { AddToMenu(root, "", Action, NULL, yyvsp[0].num, NULLSTR, NULLSTR); Action = ""; } break; case 163: #line 538 "gram.y" { AddToMenu(root, yyvsp[-1].ptr, Action, pull, yyvsp[0].num, NULLSTR, NULLSTR); Action = ""; pull = NULL; } break; case 164: #line 543 "gram.y" { AddToMenu(root, yyvsp[-6].ptr, Action, pull, yyvsp[0].num, yyvsp[-4].ptr, yyvsp[-2].ptr); Action = ""; pull = NULL; } break; case 165: #line 551 "gram.y" { yyval.num = yyvsp[0].num; } break; case 166: #line 552 "gram.y" { yyval.num = yyvsp[-1].num; Action = yyvsp[0].ptr; switch (yyvsp[-1].num) { case F_MENU: pull = GetRoot (yyvsp[0].ptr, NULLSTR,NULLSTR); pull->prev = root; break; case F_WARPRING: if (!CheckWarpRingArg (Action)) { twmrc_error_prefix(); fprintf (stderr, "ignoring invalid f.warptoring argument \"%s\"\n", Action); yyval.num = F_NOP; } case F_WARPTOSCREEN: if (!CheckWarpScreenArg (Action)) { twmrc_error_prefix(); fprintf (stderr, "ignoring invalid f.warptoscreen argument \"%s\"\n", Action); yyval.num = F_NOP; } break; case F_COLORMAP: if (CheckColormapArg (Action)) { yyval.num = F_COLORMAP; } else { twmrc_error_prefix(); fprintf (stderr, "ignoring invalid f.colormap argument \"%s\"\n", Action); yyval.num = F_NOP; } break; } /* end switch */ } break; case 167: #line 593 "gram.y" { yyval.num = yyvsp[0].num; } break; case 168: #line 594 "gram.y" { yyval.num = yyvsp[0].num; } break; case 169: #line 595 "gram.y" { yyval.num = -(yyvsp[0].num); } break; case 170: #line 598 "gram.y" { yyval.num = yyvsp[0].num; if (yyvsp[0].num == 0) yyerror("bad button 0"); if (yyvsp[0].num > MAX_BUTTONS) { yyval.num = 0; yyerror("button number too large"); } } break; case 171: #line 610 "gram.y" { ptr = strdup(yyvsp[0].ptr); RemoveDQuote(ptr); yyval.ptr = ptr; } break; case 172: #line 615 "gram.y" { yyval.num = yyvsp[0].num; } break; #line 1782 "gram.c" } yyssp -= yym; yystate = *yyssp; yyvsp -= yym; yym = yylhs[yyn]; if (yystate == 0 && yym == 0) { #if YYDEBUG if (yydebug) printf("%sdebug: after reduction, shifting from state 0 to\ state %d\n", YYPREFIX, YYFINAL); #endif yystate = YYFINAL; *++yyssp = YYFINAL; *++yyvsp = yyval; if (yychar < 0) { if ((yychar = yylex()) < 0) yychar = 0; #if YYDEBUG if (yydebug) { yys = 0; if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; if (!yys) yys = "illegal-symbol"; printf("%sdebug: state %d, reading %d (%s)\n", YYPREFIX, YYFINAL, yychar, yys); } #endif } if (yychar == 0) goto yyaccept; goto yyloop; } if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 && yyn <= YYTABLESIZE && yycheck[yyn] == yystate) yystate = yytable[yyn]; else yystate = yydgoto[yym]; #if YYDEBUG if (yydebug) printf("%sdebug: after reduction, shifting from state %d \ to state %d\n", YYPREFIX, *yyssp, yystate); #endif if (yyssp >= yysslim && yygrowstack()) { goto yyoverflow; } *++yyssp = yystate; *++yyvsp = yyval; goto yyloop; yyoverflow: yyerror("yacc stack overflow"); yyabort: if (yyss) free(yyss); if (yyvs) free(yyvs); yyss = yyssp = NULL; yyvs = yyvsp = NULL; yystacksize = 0; return (1); yyaccept: if (yyss) free(yyss); if (yyvs) free(yyvs); yyss = yyssp = NULL; yyvs = yyvsp = NULL; yystacksize = 0; return (0); }