winprefsyacc.c revision ed6184df
1ed6184dfSmrg/* A Bison parser, made by GNU Bison 3.5.1. */ 205b261ecSmrg 39ace9065Smrg/* Bison implementation for Yacc-like parsers in C 435c4bbdfSmrg 5ed6184dfSmrg Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation, 65a7dfde8Smrg Inc. 735c4bbdfSmrg 84642e01fSmrg This program is free software: you can redistribute it and/or modify 905b261ecSmrg it under the terms of the GNU General Public License as published by 104642e01fSmrg the Free Software Foundation, either version 3 of the License, or 114642e01fSmrg (at your option) any later version. 1235c4bbdfSmrg 1305b261ecSmrg This program is distributed in the hope that it will be useful, 1405b261ecSmrg but WITHOUT ANY WARRANTY; without even the implied warranty of 1505b261ecSmrg MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1605b261ecSmrg GNU General Public License for more details. 1735c4bbdfSmrg 1805b261ecSmrg You should have received a copy of the GNU General Public License 19ed6184dfSmrg along with this program. If not, see <http://www.gnu.org/licenses/>. */ 2005b261ecSmrg 2105b261ecSmrg/* As a special exception, you may create a larger work that contains 2205b261ecSmrg part or all of the Bison parser skeleton and distribute that work 2305b261ecSmrg under terms of your choice, so long as that work isn't itself a 2405b261ecSmrg parser generator using the skeleton or a modified version thereof 2505b261ecSmrg as a parser skeleton. Alternatively, if you modify or redistribute 2605b261ecSmrg the parser skeleton itself, you may (at your option) remove this 2705b261ecSmrg special exception, which will cause the skeleton and the resulting 2805b261ecSmrg Bison output files to be licensed under the GNU General Public 2905b261ecSmrg License without this special exception. 3035c4bbdfSmrg 3105b261ecSmrg This special exception was added by the Free Software Foundation in 3205b261ecSmrg version 2.2 of Bison. */ 3305b261ecSmrg 3405b261ecSmrg/* C LALR(1) parser skeleton written by Richard Stallman, by 3505b261ecSmrg simplifying the original so-called "semantic" parser. */ 3605b261ecSmrg 3705b261ecSmrg/* All symbols defined below should begin with yy or YY, to avoid 3805b261ecSmrg infringing on user name space. This should be done even for local 3905b261ecSmrg variables, as they might otherwise be expanded by user macros. 4005b261ecSmrg There are some unavoidable exceptions within include files to 4105b261ecSmrg define necessary library symbols; they are noted "INFRINGES ON 4205b261ecSmrg USER NAME SPACE" below. */ 4305b261ecSmrg 44ed6184dfSmrg/* Undocumented macros, especially those whose name start with YY_, 45ed6184dfSmrg are private implementation details. Do not rely on them. */ 46ed6184dfSmrg 47ed6184dfSmrg/* Identify Bison output. */ 48ed6184dfSmrg#define YYBISON 1 4905b261ecSmrg 50ed6184dfSmrg/* Bison version. */ 51ed6184dfSmrg#define YYBISON_VERSION "3.5.1" 5205b261ecSmrg 5305b261ecSmrg/* Skeleton name. */ 5405b261ecSmrg#define YYSKELETON_NAME "yacc.c" 5505b261ecSmrg 5605b261ecSmrg/* Pure parsers. */ 5705b261ecSmrg#define YYPURE 0 5805b261ecSmrg 594642e01fSmrg/* Push parsers. */ 604642e01fSmrg#define YYPUSH 0 6105b261ecSmrg 624642e01fSmrg/* Pull parsers. */ 634642e01fSmrg#define YYPULL 1 6405b261ecSmrg 6505b261ecSmrg 6605b261ecSmrg 6705b261ecSmrg 685a7dfde8Smrg/* First part of user prologue. */ 695a7dfde8Smrg#line 1 "winprefsyacc.y" 7005b261ecSmrg 7105b261ecSmrg/* 7205b261ecSmrg * Copyright (C) 1994-2000 The XFree86 Project, Inc. All Rights Reserved. 736747b715Smrg * Copyright (C) Colin Harrison 2005-2008 7405b261ecSmrg * 7505b261ecSmrg * Permission is hereby granted, free of charge, to any person obtaining 7605b261ecSmrg * a copy of this software and associated documentation files (the 7705b261ecSmrg * "Software"), to deal in the Software without restriction, including 7805b261ecSmrg * without limitation the rights to use, copy, modify, merge, publish, 7905b261ecSmrg * distribute, sublicense, and/or sell copies of the Software, and to 8005b261ecSmrg * permit persons to whom the Software is furnished to do so, subject to 8105b261ecSmrg * the following conditions: 8205b261ecSmrg * 8305b261ecSmrg * The above copyright notice and this permission notice shall be 8405b261ecSmrg * included in all copies or substantial portions of the Software. 8505b261ecSmrg * 8605b261ecSmrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 8705b261ecSmrg * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 8805b261ecSmrg * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 8905b261ecSmrg * NONINFRINGEMENT. IN NO EVENT SHALL THE XFREE86 PROJECT BE LIABLE FOR 9005b261ecSmrg * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF 9105b261ecSmrg * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 9205b261ecSmrg * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 9305b261ecSmrg * 9405b261ecSmrg * Except as contained in this notice, the name of the XFree86 Project 9505b261ecSmrg * shall not be used in advertising or otherwise to promote the sale, use 9605b261ecSmrg * or other dealings in this Software without prior written authorization 9705b261ecSmrg * from the XFree86 Project. 9805b261ecSmrg * 9905b261ecSmrg * Authors: Earle F. Philhower, III 1006747b715Smrg * Colin Harrison 10105b261ecSmrg */ 10205b261ecSmrg/* $XFree86: $ */ 10305b261ecSmrg 10405b261ecSmrg#ifdef HAVE_XWIN_CONFIG_H 10505b261ecSmrg#include <xwin-config.h> 10605b261ecSmrg#endif 10705b261ecSmrg#include <stdio.h> 10805b261ecSmrg#include <stdlib.h> 10935c4bbdfSmrg#define _STDLIB_H 1 /* bison checks this to know if stdlib has been included */ 11005b261ecSmrg#include <string.h> 11105b261ecSmrg#include "winprefs.h" 11205b261ecSmrg 11305b261ecSmrg/* The following give better error messages in bison at the cost of a few KB */ 11405b261ecSmrg#define YYERROR_VERBOSE 1 11505b261ecSmrg 1166747b715Smrg/* YYLTYPE_IS_TRIVIAL and YYENABLE_NLS defined to suppress warnings */ 1176747b715Smrg#define YYLTYPE_IS_TRIVIAL 1 1186747b715Smrg#define YYENABLE_NLS 0 1196747b715Smrg 12005b261ecSmrg/* The global pref settings */ 12105b261ecSmrgWINPREFS pref; 12205b261ecSmrg 12305b261ecSmrg/* The working menu */ 12405b261ecSmrgstatic MENUPARSED menu; 12505b261ecSmrg 12605b261ecSmrg/* Functions for parsing the tokens into out structure */ 12705b261ecSmrg/* Defined at the end section of this file */ 12805b261ecSmrg 12905b261ecSmrgstatic void SetIconDirectory (char *path); 13005b261ecSmrgstatic void SetDefaultIcon (char *fname); 13105b261ecSmrgstatic void SetRootMenu (char *menu); 13205b261ecSmrgstatic void SetDefaultSysMenu (char *menu, int pos); 13305b261ecSmrgstatic void SetTrayIcon (char *fname); 13405b261ecSmrg 13505b261ecSmrgstatic void OpenMenu(char *menuname); 13635c4bbdfSmrgstatic void AddMenuLine(const char *name, MENUCOMMANDTYPE cmd, const char *param); 13705b261ecSmrgstatic void CloseMenu(void); 13805b261ecSmrg 13905b261ecSmrgstatic void OpenIcons(void); 14005b261ecSmrgstatic void AddIconLine(char *matchstr, char *iconfile); 14105b261ecSmrgstatic void CloseIcons(void); 14205b261ecSmrg 1436747b715Smrgstatic void OpenStyles(void); 1446747b715Smrgstatic void AddStyleLine(char *matchstr, unsigned long style); 1456747b715Smrgstatic void CloseStyles(void); 1466747b715Smrg 14705b261ecSmrgstatic void OpenSysMenu(void); 14805b261ecSmrgstatic void AddSysMenuLine(char *matchstr, char *menuname, int pos); 14905b261ecSmrgstatic void CloseSysMenu(void); 15005b261ecSmrg 15135c4bbdfSmrgstatic int yyerror (const char *s); 15205b261ecSmrg 15305b261ecSmrgextern char *yytext; 15435c4bbdfSmrgextern int yylineno; 15505b261ecSmrgextern int yylex(void); 15605b261ecSmrg 15705b261ecSmrg 158ed6184dfSmrg#line 159 "winprefsyacc.c" 15905b261ecSmrg 1605a7dfde8Smrg# ifndef YY_CAST 1615a7dfde8Smrg# ifdef __cplusplus 1625a7dfde8Smrg# define YY_CAST(Type, Val) static_cast<Type> (Val) 1635a7dfde8Smrg# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val) 1645a7dfde8Smrg# else 1655a7dfde8Smrg# define YY_CAST(Type, Val) ((Type) (Val)) 1665a7dfde8Smrg# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) 1675a7dfde8Smrg# endif 1685a7dfde8Smrg# endif 16935c4bbdfSmrg# ifndef YY_NULLPTR 1705a7dfde8Smrg# if defined __cplusplus 1715a7dfde8Smrg# if 201103L <= __cplusplus 1725a7dfde8Smrg# define YY_NULLPTR nullptr 1735a7dfde8Smrg# else 1745a7dfde8Smrg# define YY_NULLPTR 0 1755a7dfde8Smrg# endif 17635c4bbdfSmrg# else 1775a7dfde8Smrg# define YY_NULLPTR ((void*)0) 17835c4bbdfSmrg# endif 17935c4bbdfSmrg# endif 18005b261ecSmrg 181ed6184dfSmrg/* Enabling verbose error messages. */ 182ed6184dfSmrg#ifdef YYERROR_VERBOSE 183ed6184dfSmrg# undef YYERROR_VERBOSE 184ed6184dfSmrg# define YYERROR_VERBOSE 1 185ed6184dfSmrg#else 186ed6184dfSmrg# define YYERROR_VERBOSE 0 187ed6184dfSmrg#endif 188ed6184dfSmrg 1895a7dfde8Smrg/* Use api.header.include to #include this header 1905a7dfde8Smrg instead of duplicating it here. */ 19135c4bbdfSmrg#ifndef YY_YY_WINPREFSYACC_H_INCLUDED 19235c4bbdfSmrg# define YY_YY_WINPREFSYACC_H_INCLUDED 19335c4bbdfSmrg/* Debug traces. */ 19435c4bbdfSmrg#ifndef YYDEBUG 19535c4bbdfSmrg# define YYDEBUG 0 19635c4bbdfSmrg#endif 19735c4bbdfSmrg#if YYDEBUG 19835c4bbdfSmrgextern int yydebug; 19905b261ecSmrg#endif 20005b261ecSmrg 201ed6184dfSmrg/* Token type. */ 2024642e01fSmrg#ifndef YYTOKENTYPE 2034642e01fSmrg# define YYTOKENTYPE 20435c4bbdfSmrg enum yytokentype 20535c4bbdfSmrg { 206ed6184dfSmrg NEWLINE = 258, 207ed6184dfSmrg MENU = 259, 208ed6184dfSmrg LB = 260, 209ed6184dfSmrg RB = 261, 210ed6184dfSmrg ICONDIRECTORY = 262, 211ed6184dfSmrg DEFAULTICON = 263, 212ed6184dfSmrg ICONS = 264, 213ed6184dfSmrg STYLES = 265, 214ed6184dfSmrg TOPMOST = 266, 215ed6184dfSmrg MAXIMIZE = 267, 216ed6184dfSmrg MINIMIZE = 268, 217ed6184dfSmrg BOTTOM = 269, 218ed6184dfSmrg NOTITLE = 270, 219ed6184dfSmrg OUTLINE = 271, 220ed6184dfSmrg NOFRAME = 272, 221ed6184dfSmrg DEFAULTSYSMENU = 273, 222ed6184dfSmrg SYSMENU = 274, 223ed6184dfSmrg ROOTMENU = 275, 224ed6184dfSmrg SEPARATOR = 276, 225ed6184dfSmrg ATSTART = 277, 226ed6184dfSmrg ATEND = 278, 227ed6184dfSmrg EXEC = 279, 228ed6184dfSmrg ALWAYSONTOP = 280, 229ed6184dfSmrg DEBUGOUTPUT = 281, 230ed6184dfSmrg RELOAD = 282, 231ed6184dfSmrg TRAYICON = 283, 232ed6184dfSmrg FORCEEXIT = 284, 233ed6184dfSmrg SILENTEXIT = 285, 234ed6184dfSmrg STRING = 286 23535c4bbdfSmrg }; 2364642e01fSmrg#endif 237ed6184dfSmrg/* Tokens. */ 2384642e01fSmrg#define NEWLINE 258 2394642e01fSmrg#define MENU 259 2404642e01fSmrg#define LB 260 2414642e01fSmrg#define RB 261 2424642e01fSmrg#define ICONDIRECTORY 262 2434642e01fSmrg#define DEFAULTICON 263 2444642e01fSmrg#define ICONS 264 2456747b715Smrg#define STYLES 265 2466747b715Smrg#define TOPMOST 266 2476747b715Smrg#define MAXIMIZE 267 2486747b715Smrg#define MINIMIZE 268 2496747b715Smrg#define BOTTOM 269 2506747b715Smrg#define NOTITLE 270 2516747b715Smrg#define OUTLINE 271 2526747b715Smrg#define NOFRAME 272 2536747b715Smrg#define DEFAULTSYSMENU 273 2546747b715Smrg#define SYSMENU 274 2556747b715Smrg#define ROOTMENU 275 2566747b715Smrg#define SEPARATOR 276 2576747b715Smrg#define ATSTART 277 2586747b715Smrg#define ATEND 278 2596747b715Smrg#define EXEC 279 2606747b715Smrg#define ALWAYSONTOP 280 2616747b715Smrg#define DEBUGOUTPUT 281 2626747b715Smrg#define RELOAD 282 2636747b715Smrg#define TRAYICON 283 2646747b715Smrg#define FORCEEXIT 284 2656747b715Smrg#define SILENTEXIT 285 2666747b715Smrg#define STRING 286 2674642e01fSmrg 26835c4bbdfSmrg/* Value type. */ 26905b261ecSmrg#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 27035c4bbdfSmrgunion YYSTYPE 27135c4bbdfSmrg{ 2725a7dfde8Smrg#line 90 "winprefsyacc.y" 2734642e01fSmrg 27405b261ecSmrg char *sVal; 2756747b715Smrg unsigned long uVal; 27605b261ecSmrg int iVal; 2774642e01fSmrg 278ed6184dfSmrg#line 279 "winprefsyacc.c" 2794642e01fSmrg 2805a7dfde8Smrg}; 28135c4bbdfSmrgtypedef union YYSTYPE YYSTYPE; 2824642e01fSmrg# define YYSTYPE_IS_TRIVIAL 1 28305b261ecSmrg# define YYSTYPE_IS_DECLARED 1 28405b261ecSmrg#endif 28505b261ecSmrg 28605b261ecSmrg 28735c4bbdfSmrgextern YYSTYPE yylval; 28835c4bbdfSmrg 28935c4bbdfSmrgint yyparse (void); 29005b261ecSmrg 29135c4bbdfSmrg#endif /* !YY_YY_WINPREFSYACC_H_INCLUDED */ 29235c4bbdfSmrg 29305b261ecSmrg 29405b261ecSmrg 29505b261ecSmrg#ifdef short 29605b261ecSmrg# undef short 29705b261ecSmrg#endif 29805b261ecSmrg 2995a7dfde8Smrg/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure 3005a7dfde8Smrg <limits.h> and (if available) <stdint.h> are included 3015a7dfde8Smrg so that the code can choose integer types of a good width. */ 3025a7dfde8Smrg 3035a7dfde8Smrg#ifndef __PTRDIFF_MAX__ 3045a7dfde8Smrg# include <limits.h> /* INFRINGES ON USER NAME SPACE */ 3055a7dfde8Smrg# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ 3065a7dfde8Smrg# include <stdint.h> /* INFRINGES ON USER NAME SPACE */ 3075a7dfde8Smrg# define YY_STDINT_H 3085a7dfde8Smrg# endif 30905b261ecSmrg#endif 31005b261ecSmrg 3115a7dfde8Smrg/* Narrow types that promote to a signed type and that can represent a 3125a7dfde8Smrg signed or unsigned integer of at least N bits. In tables they can 3135a7dfde8Smrg save space and decrease cache pressure. Promoting to a signed type 3145a7dfde8Smrg helps avoid bugs in integer arithmetic. */ 3155a7dfde8Smrg 3165a7dfde8Smrg#ifdef __INT_LEAST8_MAX__ 3175a7dfde8Smrgtypedef __INT_LEAST8_TYPE__ yytype_int8; 3185a7dfde8Smrg#elif defined YY_STDINT_H 3195a7dfde8Smrgtypedef int_least8_t yytype_int8; 32005b261ecSmrg#else 32135c4bbdfSmrgtypedef signed char yytype_int8; 32205b261ecSmrg#endif 32305b261ecSmrg 3245a7dfde8Smrg#ifdef __INT_LEAST16_MAX__ 3255a7dfde8Smrgtypedef __INT_LEAST16_TYPE__ yytype_int16; 3265a7dfde8Smrg#elif defined YY_STDINT_H 3275a7dfde8Smrgtypedef int_least16_t yytype_int16; 32805b261ecSmrg#else 3295a7dfde8Smrgtypedef short yytype_int16; 33005b261ecSmrg#endif 33105b261ecSmrg 3325a7dfde8Smrg#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ 3335a7dfde8Smrgtypedef __UINT_LEAST8_TYPE__ yytype_uint8; 3345a7dfde8Smrg#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ 3355a7dfde8Smrg && UINT_LEAST8_MAX <= INT_MAX) 3365a7dfde8Smrgtypedef uint_least8_t yytype_uint8; 3375a7dfde8Smrg#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX 3385a7dfde8Smrgtypedef unsigned char yytype_uint8; 33905b261ecSmrg#else 3405a7dfde8Smrgtypedef short yytype_uint8; 3415a7dfde8Smrg#endif 3425a7dfde8Smrg 3435a7dfde8Smrg#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ 3445a7dfde8Smrgtypedef __UINT_LEAST16_TYPE__ yytype_uint16; 3455a7dfde8Smrg#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ 3465a7dfde8Smrg && UINT_LEAST16_MAX <= INT_MAX) 3475a7dfde8Smrgtypedef uint_least16_t yytype_uint16; 3485a7dfde8Smrg#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX 3495a7dfde8Smrgtypedef unsigned short yytype_uint16; 3505a7dfde8Smrg#else 3515a7dfde8Smrgtypedef int yytype_uint16; 3525a7dfde8Smrg#endif 3535a7dfde8Smrg 3545a7dfde8Smrg#ifndef YYPTRDIFF_T 3555a7dfde8Smrg# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ 3565a7dfde8Smrg# define YYPTRDIFF_T __PTRDIFF_TYPE__ 3575a7dfde8Smrg# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ 3585a7dfde8Smrg# elif defined PTRDIFF_MAX 3595a7dfde8Smrg# ifndef ptrdiff_t 3605a7dfde8Smrg# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 3615a7dfde8Smrg# endif 3625a7dfde8Smrg# define YYPTRDIFF_T ptrdiff_t 3635a7dfde8Smrg# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX 3645a7dfde8Smrg# else 3655a7dfde8Smrg# define YYPTRDIFF_T long 3665a7dfde8Smrg# define YYPTRDIFF_MAXIMUM LONG_MAX 3675a7dfde8Smrg# endif 36805b261ecSmrg#endif 36905b261ecSmrg 37005b261ecSmrg#ifndef YYSIZE_T 37105b261ecSmrg# ifdef __SIZE_TYPE__ 37205b261ecSmrg# define YYSIZE_T __SIZE_TYPE__ 37305b261ecSmrg# elif defined size_t 37405b261ecSmrg# define YYSIZE_T size_t 3755a7dfde8Smrg# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ 37605b261ecSmrg# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 37705b261ecSmrg# define YYSIZE_T size_t 37805b261ecSmrg# else 37925da500fSmrg# define YYSIZE_T unsigned 38005b261ecSmrg# endif 38105b261ecSmrg#endif 38205b261ecSmrg 3835a7dfde8Smrg#define YYSIZE_MAXIMUM \ 3845a7dfde8Smrg YY_CAST (YYPTRDIFF_T, \ 3855a7dfde8Smrg (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ 3865a7dfde8Smrg ? YYPTRDIFF_MAXIMUM \ 3875a7dfde8Smrg : YY_CAST (YYSIZE_T, -1))) 3885a7dfde8Smrg 3895a7dfde8Smrg#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) 3905a7dfde8Smrg 3915a7dfde8Smrg/* Stored state numbers (used for stacks). */ 3925a7dfde8Smrgtypedef yytype_int8 yy_state_t; 3935a7dfde8Smrg 3945a7dfde8Smrg/* State numbers in computations. */ 3955a7dfde8Smrgtypedef int yy_state_fast_t; 39605b261ecSmrg 39705b261ecSmrg#ifndef YY_ 3986747b715Smrg# if defined YYENABLE_NLS && YYENABLE_NLS 39905b261ecSmrg# if ENABLE_NLS 40005b261ecSmrg# include <libintl.h> /* INFRINGES ON USER NAME SPACE */ 40135c4bbdfSmrg# define YY_(Msgid) dgettext ("bison-runtime", Msgid) 40205b261ecSmrg# endif 40305b261ecSmrg# endif 40405b261ecSmrg# ifndef YY_ 40535c4bbdfSmrg# define YY_(Msgid) Msgid 40635c4bbdfSmrg# endif 40735c4bbdfSmrg#endif 40835c4bbdfSmrg 40935c4bbdfSmrg#ifndef YY_ATTRIBUTE_PURE 4105a7dfde8Smrg# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) 4115a7dfde8Smrg# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) 4125a7dfde8Smrg# else 4135a7dfde8Smrg# define YY_ATTRIBUTE_PURE 4145a7dfde8Smrg# endif 41535c4bbdfSmrg#endif 41635c4bbdfSmrg 41735c4bbdfSmrg#ifndef YY_ATTRIBUTE_UNUSED 4185a7dfde8Smrg# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) 4195a7dfde8Smrg# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) 42035c4bbdfSmrg# else 4215a7dfde8Smrg# define YY_ATTRIBUTE_UNUSED 42205b261ecSmrg# endif 42305b261ecSmrg#endif 42405b261ecSmrg 42505b261ecSmrg/* Suppress unused-variable warnings by "using" E. */ 42605b261ecSmrg#if ! defined lint || defined __GNUC__ 427ed6184dfSmrg# define YYUSE(E) ((void) (E)) 42805b261ecSmrg#else 429ed6184dfSmrg# define YYUSE(E) /* empty */ 43005b261ecSmrg#endif 43105b261ecSmrg 43225da500fSmrg#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ 43335c4bbdfSmrg/* Suppress an incorrect diagnostic about yylval being uninitialized. */ 4345a7dfde8Smrg# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ 4355a7dfde8Smrg _Pragma ("GCC diagnostic push") \ 4365a7dfde8Smrg _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ 43735c4bbdfSmrg _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") 4385a7dfde8Smrg# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ 43935c4bbdfSmrg _Pragma ("GCC diagnostic pop") 44005b261ecSmrg#else 44135c4bbdfSmrg# define YY_INITIAL_VALUE(Value) Value 44205b261ecSmrg#endif 44335c4bbdfSmrg#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 44435c4bbdfSmrg# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 44535c4bbdfSmrg# define YY_IGNORE_MAYBE_UNINITIALIZED_END 44635c4bbdfSmrg#endif 44735c4bbdfSmrg#ifndef YY_INITIAL_VALUE 44835c4bbdfSmrg# define YY_INITIAL_VALUE(Value) /* Nothing. */ 44905b261ecSmrg#endif 45005b261ecSmrg 4515a7dfde8Smrg#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ 4525a7dfde8Smrg# define YY_IGNORE_USELESS_CAST_BEGIN \ 4535a7dfde8Smrg _Pragma ("GCC diagnostic push") \ 4545a7dfde8Smrg _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") 4555a7dfde8Smrg# define YY_IGNORE_USELESS_CAST_END \ 4565a7dfde8Smrg _Pragma ("GCC diagnostic pop") 4575a7dfde8Smrg#endif 4585a7dfde8Smrg#ifndef YY_IGNORE_USELESS_CAST_BEGIN 4595a7dfde8Smrg# define YY_IGNORE_USELESS_CAST_BEGIN 4605a7dfde8Smrg# define YY_IGNORE_USELESS_CAST_END 4615a7dfde8Smrg#endif 4625a7dfde8Smrg 46335c4bbdfSmrg 4645a7dfde8Smrg#define YY_ASSERT(E) ((void) (0 && (E))) 4655a7dfde8Smrg 466ed6184dfSmrg#if ! defined yyoverflow || YYERROR_VERBOSE 46705b261ecSmrg 46805b261ecSmrg/* The parser invokes alloca or malloc; define the necessary symbols. */ 46905b261ecSmrg 47005b261ecSmrg# ifdef YYSTACK_USE_ALLOCA 47105b261ecSmrg# if YYSTACK_USE_ALLOCA 47205b261ecSmrg# ifdef __GNUC__ 47305b261ecSmrg# define YYSTACK_ALLOC __builtin_alloca 47405b261ecSmrg# elif defined __BUILTIN_VA_ARG_INCR 47505b261ecSmrg# include <alloca.h> /* INFRINGES ON USER NAME SPACE */ 47605b261ecSmrg# elif defined _AIX 47705b261ecSmrg# define YYSTACK_ALLOC __alloca 47805b261ecSmrg# elif defined _MSC_VER 47905b261ecSmrg# include <malloc.h> /* INFRINGES ON USER NAME SPACE */ 48005b261ecSmrg# define alloca _alloca 48105b261ecSmrg# else 48205b261ecSmrg# define YYSTACK_ALLOC alloca 48335c4bbdfSmrg# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS 48405b261ecSmrg# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 48535c4bbdfSmrg /* Use EXIT_SUCCESS as a witness for stdlib.h. */ 4869ace9065Smrg# ifndef EXIT_SUCCESS 4879ace9065Smrg# define EXIT_SUCCESS 0 48805b261ecSmrg# endif 48905b261ecSmrg# endif 49005b261ecSmrg# endif 49105b261ecSmrg# endif 49205b261ecSmrg# endif 49305b261ecSmrg 49405b261ecSmrg# ifdef YYSTACK_ALLOC 49535c4bbdfSmrg /* Pacify GCC's 'empty if-body' warning. */ 49635c4bbdfSmrg# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) 49705b261ecSmrg# ifndef YYSTACK_ALLOC_MAXIMUM 49805b261ecSmrg /* The OS might guarantee only one guard page at the bottom of the stack, 49905b261ecSmrg and a page size can be as small as 4096 bytes. So we cannot safely 50005b261ecSmrg invoke alloca (N) if N exceeds 4096. Use a slightly smaller number 50105b261ecSmrg to allow for a few compiler-allocated temporary stack slots. */ 50205b261ecSmrg# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ 50305b261ecSmrg# endif 50405b261ecSmrg# else 50505b261ecSmrg# define YYSTACK_ALLOC YYMALLOC 50605b261ecSmrg# define YYSTACK_FREE YYFREE 50705b261ecSmrg# ifndef YYSTACK_ALLOC_MAXIMUM 50805b261ecSmrg# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM 50905b261ecSmrg# endif 5109ace9065Smrg# if (defined __cplusplus && ! defined EXIT_SUCCESS \ 51105b261ecSmrg && ! ((defined YYMALLOC || defined malloc) \ 51235c4bbdfSmrg && (defined YYFREE || defined free))) 51305b261ecSmrg# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 5149ace9065Smrg# ifndef EXIT_SUCCESS 5159ace9065Smrg# define EXIT_SUCCESS 0 51605b261ecSmrg# endif 51705b261ecSmrg# endif 51805b261ecSmrg# ifndef YYMALLOC 51905b261ecSmrg# define YYMALLOC malloc 52035c4bbdfSmrg# if ! defined malloc && ! defined EXIT_SUCCESS 52105b261ecSmrgvoid *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ 52205b261ecSmrg# endif 52305b261ecSmrg# endif 52405b261ecSmrg# ifndef YYFREE 52505b261ecSmrg# define YYFREE free 52635c4bbdfSmrg# if ! defined free && ! defined EXIT_SUCCESS 52705b261ecSmrgvoid free (void *); /* INFRINGES ON USER NAME SPACE */ 52805b261ecSmrg# endif 52905b261ecSmrg# endif 53005b261ecSmrg# endif 531ed6184dfSmrg#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ 532ed6184dfSmrg 53305b261ecSmrg 53405b261ecSmrg#if (! defined yyoverflow \ 53505b261ecSmrg && (! defined __cplusplus \ 53635c4bbdfSmrg || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 53705b261ecSmrg 53805b261ecSmrg/* A type that is properly aligned for any stack member. */ 53905b261ecSmrgunion yyalloc 54005b261ecSmrg{ 5415a7dfde8Smrg yy_state_t yyss_alloc; 5424642e01fSmrg YYSTYPE yyvs_alloc; 5434642e01fSmrg}; 54405b261ecSmrg 54505b261ecSmrg/* The size of the maximum gap between one aligned stack and the next. */ 5465a7dfde8Smrg# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) 54705b261ecSmrg 54805b261ecSmrg/* The size of an array large to enough to hold all stacks, each with 54905b261ecSmrg N elements. */ 55005b261ecSmrg# define YYSTACK_BYTES(N) \ 5515a7dfde8Smrg ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \ 55205b261ecSmrg + YYSTACK_GAP_MAXIMUM) 55305b261ecSmrg 5549ace9065Smrg# define YYCOPY_NEEDED 1 55505b261ecSmrg 55605b261ecSmrg/* Relocate STACK from its old location to the new one. The 55705b261ecSmrg local variables YYSIZE and YYSTACKSIZE give the old and new number of 55805b261ecSmrg elements in the stack, and YYPTR gives the new location of the 55905b261ecSmrg stack. Advance YYPTR to a properly aligned location for the next 56005b261ecSmrg stack. */ 56135c4bbdfSmrg# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ 56235c4bbdfSmrg do \ 56335c4bbdfSmrg { \ 5645a7dfde8Smrg YYPTRDIFF_T yynewbytes; \ 56535c4bbdfSmrg YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ 56635c4bbdfSmrg Stack = &yyptr->Stack_alloc; \ 5675a7dfde8Smrg yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ 5685a7dfde8Smrg yyptr += yynewbytes / YYSIZEOF (*yyptr); \ 56935c4bbdfSmrg } \ 57035c4bbdfSmrg while (0) 57105b261ecSmrg 57205b261ecSmrg#endif 57305b261ecSmrg 5749ace9065Smrg#if defined YYCOPY_NEEDED && YYCOPY_NEEDED 57535c4bbdfSmrg/* Copy COUNT objects from SRC to DST. The source and destination do 5769ace9065Smrg not overlap. */ 5779ace9065Smrg# ifndef YYCOPY 5789ace9065Smrg# if defined __GNUC__ && 1 < __GNUC__ 57935c4bbdfSmrg# define YYCOPY(Dst, Src, Count) \ 5805a7dfde8Smrg __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) 5819ace9065Smrg# else 58235c4bbdfSmrg# define YYCOPY(Dst, Src, Count) \ 58335c4bbdfSmrg do \ 58435c4bbdfSmrg { \ 5855a7dfde8Smrg YYPTRDIFF_T yyi; \ 58635c4bbdfSmrg for (yyi = 0; yyi < (Count); yyi++) \ 58735c4bbdfSmrg (Dst)[yyi] = (Src)[yyi]; \ 58835c4bbdfSmrg } \ 58935c4bbdfSmrg while (0) 5909ace9065Smrg# endif 5919ace9065Smrg# endif 5929ace9065Smrg#endif /* !YYCOPY_NEEDED */ 5939ace9065Smrg 59405b261ecSmrg/* YYFINAL -- State number of the termination state. */ 59505b261ecSmrg#define YYFINAL 2 59605b261ecSmrg/* YYLAST -- Last index in YYTABLE. */ 5976747b715Smrg#define YYLAST 98 59805b261ecSmrg 59905b261ecSmrg/* YYNTOKENS -- Number of terminals. */ 6006747b715Smrg#define YYNTOKENS 32 60105b261ecSmrg/* YYNNTS -- Number of nonterminals. */ 6026747b715Smrg#define YYNNTS 33 60305b261ecSmrg/* YYNRULES -- Number of rules. */ 6046747b715Smrg#define YYNRULES 65 60535c4bbdfSmrg/* YYNSTATES -- Number of states. */ 6066747b715Smrg#define YYNSTATES 121 60705b261ecSmrg 608ed6184dfSmrg#define YYUNDEFTOK 2 6096747b715Smrg#define YYMAXUTOK 286 61005b261ecSmrg 6115a7dfde8Smrg 6125a7dfde8Smrg/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM 6135a7dfde8Smrg as returned by yylex, with out-of-bounds checking. */ 614ed6184dfSmrg#define YYTRANSLATE(YYX) \ 615ed6184dfSmrg (0 <= (YYX) && (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 61605b261ecSmrg 61735c4bbdfSmrg/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM 6185a7dfde8Smrg as returned by yylex. */ 6195a7dfde8Smrgstatic const yytype_int8 yytranslate[] = 62005b261ecSmrg{ 62105b261ecSmrg 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 62205b261ecSmrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 62305b261ecSmrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 62405b261ecSmrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 62505b261ecSmrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 62605b261ecSmrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 62705b261ecSmrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 62805b261ecSmrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 62905b261ecSmrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 63005b261ecSmrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 63105b261ecSmrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 63205b261ecSmrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 63305b261ecSmrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 63405b261ecSmrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 63505b261ecSmrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 63605b261ecSmrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 63705b261ecSmrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 63805b261ecSmrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 63905b261ecSmrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 64005b261ecSmrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 64105b261ecSmrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 64205b261ecSmrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 64305b261ecSmrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 64405b261ecSmrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 64505b261ecSmrg 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 64605b261ecSmrg 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 64705b261ecSmrg 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 6486747b715Smrg 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 6496747b715Smrg 25, 26, 27, 28, 29, 30, 31 65005b261ecSmrg}; 65105b261ecSmrg 65205b261ecSmrg#if YYDEBUG 65335c4bbdfSmrg /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ 65405b261ecSmrgstatic const yytype_uint8 yyrline[] = 65505b261ecSmrg{ 65635c4bbdfSmrg 0, 133, 133, 134, 137, 138, 142, 143, 146, 147, 65735c4bbdfSmrg 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 65835c4bbdfSmrg 160, 163, 166, 169, 172, 175, 176, 177, 178, 179, 65935c4bbdfSmrg 182, 183, 186, 186, 189, 192, 193, 196, 196, 199, 66035c4bbdfSmrg 200, 201, 202, 205, 206, 207, 210, 211, 212, 213, 66135c4bbdfSmrg 216, 219, 220, 223, 223, 226, 227, 228, 231, 234, 66235c4bbdfSmrg 235, 238, 238, 241, 244, 247 66305b261ecSmrg}; 66405b261ecSmrg#endif 66505b261ecSmrg 666ed6184dfSmrg#if YYDEBUG || YYERROR_VERBOSE || 0 66705b261ecSmrg/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. 66805b261ecSmrg First, the terminals, then, starting at YYNTOKENS, nonterminals. */ 66905b261ecSmrgstatic const char *const yytname[] = 67005b261ecSmrg{ 671ed6184dfSmrg "$end", "error", "$undefined", "NEWLINE", "MENU", "LB", "RB", 672ed6184dfSmrg "ICONDIRECTORY", "DEFAULTICON", "ICONS", "STYLES", "TOPMOST", "MAXIMIZE", 673ed6184dfSmrg "MINIMIZE", "BOTTOM", "NOTITLE", "OUTLINE", "NOFRAME", "DEFAULTSYSMENU", 674ed6184dfSmrg "SYSMENU", "ROOTMENU", "SEPARATOR", "ATSTART", "ATEND", "EXEC", 675ed6184dfSmrg "ALWAYSONTOP", "\"DEBUG\"", "RELOAD", "TRAYICON", "FORCEEXIT", 6766747b715Smrg "SILENTEXIT", "STRING", "$accept", "input", "line", "newline_or_nada", 6776747b715Smrg "command", "trayicon", "rootmenu", "defaultsysmenu", "defaulticon", 6786747b715Smrg "icondirectory", "menuline", "menulist", "menu", "$@1", "iconline", 6796747b715Smrg "iconlist", "icons", "$@2", "group1", "group2", "stylecombo", 6806747b715Smrg "styleline", "stylelist", "styles", "$@3", "atspot", "sysmenuline", 68135c4bbdfSmrg "sysmenulist", "sysmenu", "$@4", "forceexit", "silentexit", "debug", YY_NULLPTR 68205b261ecSmrg}; 68305b261ecSmrg#endif 68405b261ecSmrg 685ed6184dfSmrg# ifdef YYPRINT 68635c4bbdfSmrg/* YYTOKNUM[NUM] -- (External) token number corresponding to the 68735c4bbdfSmrg (internal) symbol number NUM (which must be that of a token). */ 6885a7dfde8Smrgstatic const yytype_int16 yytoknum[] = 68905b261ecSmrg{ 69005b261ecSmrg 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 69105b261ecSmrg 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 6926747b715Smrg 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 6936747b715Smrg 285, 286 69405b261ecSmrg}; 695ed6184dfSmrg# endif 69605b261ecSmrg 6975a7dfde8Smrg#define YYPACT_NINF (-47) 69805b261ecSmrg 6995a7dfde8Smrg#define yypact_value_is_default(Yyn) \ 7005a7dfde8Smrg ((Yyn) == YYPACT_NINF) 70105b261ecSmrg 7025a7dfde8Smrg#define YYTABLE_NINF (-1) 70305b261ecSmrg 7045a7dfde8Smrg#define yytable_value_is_error(Yyn) \ 70535c4bbdfSmrg 0 70605b261ecSmrg 70735c4bbdfSmrg /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 70835c4bbdfSmrg STATE-NUM. */ 70905b261ecSmrgstatic const yytype_int8 yypact[] = 71005b261ecSmrg{ 7116747b715Smrg -47, 7, -47, -47, -1, 0, 1, 18, 29, 15, 7126747b715Smrg 42, 17, 19, 20, 46, 50, -47, -47, -47, -47, 7136747b715Smrg -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, 7146747b715Smrg 49, 53, 54, -47, -47, 6, 55, 56, 57, 58, 7156747b715Smrg -47, -47, -47, -47, -47, 61, 61, -47, -47, 62, 7166747b715Smrg -47, -47, -47, -47, 61, 61, 35, 38, -47, 61, 7176747b715Smrg -19, -47, 39, 35, 66, 27, 38, 67, 43, 72, 7186747b715Smrg -3, -19, 70, 74, -47, -47, -47, -47, -47, -47, 7196747b715Smrg -47, -47, -47, 3, -8, 75, -47, -47, 48, 43, 7206747b715Smrg 76, 61, 52, 59, 77, 78, -47, -47, 61, -47, 7216747b715Smrg -47, 61, 6, -47, -47, -47, 81, 82, 61, 61, 7226747b715Smrg -47, -47, 83, 61, 61, -47, -47, 61, -47, -47, 7236747b715Smrg -47 72405b261ecSmrg}; 72505b261ecSmrg 72635c4bbdfSmrg /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. 72735c4bbdfSmrg Performed when YYTABLE does not specify something else to do. Zero 72835c4bbdfSmrg means the default is an error. */ 7295a7dfde8Smrgstatic const yytype_int8 yydefact[] = 73035c4bbdfSmrg{ 73135c4bbdfSmrg 2, 0, 1, 4, 0, 0, 0, 0, 0, 0, 73235c4bbdfSmrg 0, 0, 0, 0, 0, 0, 3, 5, 17, 14, 73335c4bbdfSmrg 15, 8, 9, 10, 11, 12, 13, 18, 19, 16, 73435c4bbdfSmrg 0, 0, 0, 37, 53, 55, 0, 0, 0, 0, 73535c4bbdfSmrg 63, 64, 32, 24, 23, 6, 6, 56, 57, 0, 73635c4bbdfSmrg 61, 21, 65, 20, 6, 6, 0, 0, 22, 6, 73735c4bbdfSmrg 0, 7, 0, 35, 0, 0, 51, 0, 0, 0, 73835c4bbdfSmrg 0, 30, 0, 0, 36, 38, 39, 40, 41, 42, 73935c4bbdfSmrg 43, 44, 45, 46, 47, 0, 52, 54, 0, 59, 74035c4bbdfSmrg 0, 6, 0, 0, 0, 0, 31, 33, 6, 48, 74135c4bbdfSmrg 49, 6, 55, 60, 62, 25, 0, 0, 6, 6, 74235c4bbdfSmrg 34, 50, 0, 6, 6, 26, 29, 6, 28, 27, 74335c4bbdfSmrg 58 74435c4bbdfSmrg}; 74535c4bbdfSmrg 74635c4bbdfSmrg /* YYPGOTO[NTERM-NUM]. */ 74705b261ecSmrgstatic const yytype_int8 yypgoto[] = 74805b261ecSmrg{ 7496747b715Smrg -47, -47, -47, -46, -47, -47, -47, -47, -47, -47, 7506747b715Smrg -47, 16, -47, -47, -47, 25, -47, -47, 5, 8, 7516747b715Smrg -47, -47, 26, -47, -47, -9, -47, 9, -47, -47, 7526747b715Smrg -47, -47, -47 75305b261ecSmrg}; 75405b261ecSmrg 75535c4bbdfSmrg /* YYDEFGOTO[NTERM-NUM]. */ 75635c4bbdfSmrgstatic const yytype_int8 yydefgoto[] = 75735c4bbdfSmrg{ 758ed6184dfSmrg -1, 1, 16, 56, 17, 18, 19, 20, 21, 22, 75935c4bbdfSmrg 71, 72, 23, 54, 63, 64, 24, 45, 83, 84, 76035c4bbdfSmrg 85, 66, 67, 25, 46, 49, 89, 90, 26, 59, 76135c4bbdfSmrg 27, 28, 29 76235c4bbdfSmrg}; 76335c4bbdfSmrg 76435c4bbdfSmrg /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If 76535c4bbdfSmrg positive, shift that token. If negative, reduce the rule whose 76635c4bbdfSmrg number is the opposite. If YYTABLE_NINF, syntax error. */ 7675a7dfde8Smrgstatic const yytype_int8 yytable[] = 76805b261ecSmrg{ 7696747b715Smrg 57, 92, 69, 76, 77, 78, 79, 2, 60, 61, 7706747b715Smrg 3, 4, 70, 68, 5, 6, 7, 8, 80, 81, 7716747b715Smrg 82, 93, 94, 33, 95, 9, 10, 11, 47, 48, 7726747b715Smrg 30, 31, 32, 12, 34, 13, 14, 15, 76, 77, 7736747b715Smrg 78, 79, 80, 81, 82, 105, 35, 36, 37, 40, 7746747b715Smrg 38, 39, 110, 41, 42, 111, 43, 44, 50, 51, 7756747b715Smrg 52, 53, 115, 116, 55, 58, 62, 118, 119, 65, 7766747b715Smrg 73, 120, 75, 87, 88, 91, 97, 98, 101, 102, 7776747b715Smrg 108, 109, 104, 106, 113, 114, 117, 96, 74, 100, 7786747b715Smrg 107, 99, 86, 112, 0, 0, 0, 0, 103 77905b261ecSmrg}; 78005b261ecSmrg 7816747b715Smrgstatic const yytype_int8 yycheck[] = 78205b261ecSmrg{ 7836747b715Smrg 46, 4, 21, 11, 12, 13, 14, 0, 54, 55, 7846747b715Smrg 3, 4, 31, 59, 7, 8, 9, 10, 15, 16, 7856747b715Smrg 17, 24, 25, 5, 27, 18, 19, 20, 22, 23, 7866747b715Smrg 31, 31, 31, 26, 5, 28, 29, 30, 11, 12, 7876747b715Smrg 13, 14, 15, 16, 17, 91, 31, 5, 31, 3, 7886747b715Smrg 31, 31, 98, 3, 5, 101, 3, 3, 3, 3, 7896747b715Smrg 3, 3, 108, 109, 3, 3, 31, 113, 114, 31, 7906747b715Smrg 31, 117, 6, 6, 31, 3, 6, 3, 3, 31, 7916747b715Smrg 3, 3, 6, 31, 3, 3, 3, 71, 63, 84, 7926747b715Smrg 31, 83, 66, 102, -1, -1, -1, -1, 89 79305b261ecSmrg}; 79405b261ecSmrg 79535c4bbdfSmrg /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 79635c4bbdfSmrg symbol of state STATE-NUM. */ 7975a7dfde8Smrgstatic const yytype_int8 yystos[] = 79805b261ecSmrg{ 7996747b715Smrg 0, 33, 0, 3, 4, 7, 8, 9, 10, 18, 8006747b715Smrg 19, 20, 26, 28, 29, 30, 34, 36, 37, 38, 8016747b715Smrg 39, 40, 41, 44, 48, 55, 60, 62, 63, 64, 8026747b715Smrg 31, 31, 31, 5, 5, 31, 5, 31, 31, 31, 8036747b715Smrg 3, 3, 5, 3, 3, 49, 56, 22, 23, 57, 8046747b715Smrg 3, 3, 3, 3, 45, 3, 35, 35, 3, 61, 8056747b715Smrg 35, 35, 31, 46, 47, 31, 53, 54, 35, 21, 8066747b715Smrg 31, 42, 43, 31, 47, 6, 11, 12, 13, 14, 8076747b715Smrg 15, 16, 17, 50, 51, 52, 54, 6, 31, 58, 8086747b715Smrg 59, 3, 4, 24, 25, 27, 43, 6, 3, 51, 8096747b715Smrg 50, 3, 31, 59, 6, 35, 31, 31, 3, 3, 8106747b715Smrg 35, 35, 57, 3, 3, 35, 35, 3, 35, 35, 8116747b715Smrg 35 81205b261ecSmrg}; 81305b261ecSmrg 81435c4bbdfSmrg /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 8155a7dfde8Smrgstatic const yytype_int8 yyr1[] = 81635c4bbdfSmrg{ 81735c4bbdfSmrg 0, 32, 33, 33, 34, 34, 35, 35, 36, 36, 81835c4bbdfSmrg 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 81935c4bbdfSmrg 37, 38, 39, 40, 41, 42, 42, 42, 42, 42, 82035c4bbdfSmrg 43, 43, 45, 44, 46, 47, 47, 49, 48, 50, 82135c4bbdfSmrg 50, 50, 50, 51, 51, 51, 52, 52, 52, 52, 82235c4bbdfSmrg 53, 54, 54, 56, 55, 57, 57, 57, 58, 59, 82335c4bbdfSmrg 59, 61, 60, 62, 63, 64 82435c4bbdfSmrg}; 82505b261ecSmrg 82635c4bbdfSmrg /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ 8275a7dfde8Smrgstatic const yytype_int8 yyr2[] = 82835c4bbdfSmrg{ 82935c4bbdfSmrg 0, 2, 0, 2, 1, 1, 0, 2, 1, 1, 83035c4bbdfSmrg 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 83135c4bbdfSmrg 3, 3, 4, 3, 3, 3, 4, 5, 5, 4, 83235c4bbdfSmrg 1, 2, 0, 7, 4, 1, 2, 0, 6, 1, 83335c4bbdfSmrg 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 83435c4bbdfSmrg 4, 1, 2, 0, 6, 0, 1, 1, 5, 1, 83535c4bbdfSmrg 2, 0, 7, 2, 2, 3 83635c4bbdfSmrg}; 83705b261ecSmrg 83805b261ecSmrg 83935c4bbdfSmrg#define yyerrok (yyerrstatus = 0) 84035c4bbdfSmrg#define yyclearin (yychar = YYEMPTY) 841ed6184dfSmrg#define YYEMPTY (-2) 842ed6184dfSmrg#define YYEOF 0 84305b261ecSmrg 84435c4bbdfSmrg#define YYACCEPT goto yyacceptlab 84535c4bbdfSmrg#define YYABORT goto yyabortlab 84635c4bbdfSmrg#define YYERROR goto yyerrorlab 84705b261ecSmrg 84805b261ecSmrg 84935c4bbdfSmrg#define YYRECOVERING() (!!yyerrstatus) 85035c4bbdfSmrg 8515a7dfde8Smrg#define YYBACKUP(Token, Value) \ 8525a7dfde8Smrg do \ 8535a7dfde8Smrg if (yychar == YYEMPTY) \ 8545a7dfde8Smrg { \ 8555a7dfde8Smrg yychar = (Token); \ 8565a7dfde8Smrg yylval = (Value); \ 8575a7dfde8Smrg YYPOPSTACK (yylen); \ 8585a7dfde8Smrg yystate = *yyssp; \ 8595a7dfde8Smrg goto yybackup; \ 8605a7dfde8Smrg } \ 8615a7dfde8Smrg else \ 8625a7dfde8Smrg { \ 8635a7dfde8Smrg yyerror (YY_("syntax error: cannot back up")); \ 8645a7dfde8Smrg YYERROR; \ 8655a7dfde8Smrg } \ 8665a7dfde8Smrg while (0) 8675a7dfde8Smrg 868ed6184dfSmrg/* Error token number */ 869ed6184dfSmrg#define YYTERROR 1 870ed6184dfSmrg#define YYERRCODE 256 871ed6184dfSmrg 87205b261ecSmrg 87305b261ecSmrg 87405b261ecSmrg/* Enable debugging if requested. */ 87505b261ecSmrg#if YYDEBUG 87605b261ecSmrg 87705b261ecSmrg# ifndef YYFPRINTF 87805b261ecSmrg# include <stdio.h> /* INFRINGES ON USER NAME SPACE */ 87905b261ecSmrg# define YYFPRINTF fprintf 88005b261ecSmrg# endif 88105b261ecSmrg 88235c4bbdfSmrg# define YYDPRINTF(Args) \ 88335c4bbdfSmrgdo { \ 88435c4bbdfSmrg if (yydebug) \ 88535c4bbdfSmrg YYFPRINTF Args; \ 88635c4bbdfSmrg} while (0) 88705b261ecSmrg 88835c4bbdfSmrg/* This macro is provided for backward compatibility. */ 889ed6184dfSmrg#ifndef YY_LOCATION_PRINT 890ed6184dfSmrg# define YY_LOCATION_PRINT(File, Loc) ((void) 0) 891ed6184dfSmrg#endif 89205b261ecSmrg 89305b261ecSmrg 894ed6184dfSmrg# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 89535c4bbdfSmrgdo { \ 89635c4bbdfSmrg if (yydebug) \ 89735c4bbdfSmrg { \ 89835c4bbdfSmrg YYFPRINTF (stderr, "%s ", Title); \ 89935c4bbdfSmrg yy_symbol_print (stderr, \ 900ed6184dfSmrg Type, Value); \ 90135c4bbdfSmrg YYFPRINTF (stderr, "\n"); \ 90235c4bbdfSmrg } \ 90335c4bbdfSmrg} while (0) 90435c4bbdfSmrg 90535c4bbdfSmrg 9065a7dfde8Smrg/*-----------------------------------. 9075a7dfde8Smrg| Print this symbol's value on YYO. | 9085a7dfde8Smrg`-----------------------------------*/ 90905b261ecSmrg 91005b261ecSmrgstatic void 911ed6184dfSmrgyy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep) 91205b261ecSmrg{ 9135a7dfde8Smrg FILE *yyoutput = yyo; 914ed6184dfSmrg YYUSE (yyoutput); 91505b261ecSmrg if (!yyvaluep) 91605b261ecSmrg return; 91705b261ecSmrg# ifdef YYPRINT 918ed6184dfSmrg if (yytype < YYNTOKENS) 919ed6184dfSmrg YYPRINT (yyo, yytoknum[yytype], *yyvaluep); 92005b261ecSmrg# endif 9215a7dfde8Smrg YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 922ed6184dfSmrg YYUSE (yytype); 9235a7dfde8Smrg YY_IGNORE_MAYBE_UNINITIALIZED_END 92405b261ecSmrg} 92505b261ecSmrg 92605b261ecSmrg 9275a7dfde8Smrg/*---------------------------. 9285a7dfde8Smrg| Print this symbol on YYO. | 9295a7dfde8Smrg`---------------------------*/ 93005b261ecSmrg 93105b261ecSmrgstatic void 932ed6184dfSmrgyy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep) 93305b261ecSmrg{ 9345a7dfde8Smrg YYFPRINTF (yyo, "%s %s (", 935ed6184dfSmrg yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); 93605b261ecSmrg 937ed6184dfSmrg yy_symbol_value_print (yyo, yytype, yyvaluep); 9385a7dfde8Smrg YYFPRINTF (yyo, ")"); 93905b261ecSmrg} 94005b261ecSmrg 94105b261ecSmrg/*------------------------------------------------------------------. 94205b261ecSmrg| yy_stack_print -- Print the state stack from its BOTTOM up to its | 94305b261ecSmrg| TOP (included). | 94405b261ecSmrg`------------------------------------------------------------------*/ 94505b261ecSmrg 94605b261ecSmrgstatic void 9475a7dfde8Smrgyy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) 94805b261ecSmrg{ 94905b261ecSmrg YYFPRINTF (stderr, "Stack now"); 9504642e01fSmrg for (; yybottom <= yytop; yybottom++) 9514642e01fSmrg { 9524642e01fSmrg int yybot = *yybottom; 9534642e01fSmrg YYFPRINTF (stderr, " %d", yybot); 9544642e01fSmrg } 95505b261ecSmrg YYFPRINTF (stderr, "\n"); 95605b261ecSmrg} 95705b261ecSmrg 95835c4bbdfSmrg# define YY_STACK_PRINT(Bottom, Top) \ 95935c4bbdfSmrgdo { \ 96035c4bbdfSmrg if (yydebug) \ 96135c4bbdfSmrg yy_stack_print ((Bottom), (Top)); \ 96235c4bbdfSmrg} while (0) 96305b261ecSmrg 96405b261ecSmrg 96505b261ecSmrg/*------------------------------------------------. 96605b261ecSmrg| Report that the YYRULE is going to be reduced. | 96705b261ecSmrg`------------------------------------------------*/ 96805b261ecSmrg 96905b261ecSmrgstatic void 970ed6184dfSmrgyy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, int yyrule) 97105b261ecSmrg{ 9725a7dfde8Smrg int yylno = yyrline[yyrule]; 97305b261ecSmrg int yynrhs = yyr2[yyrule]; 97405b261ecSmrg int yyi; 9755a7dfde8Smrg YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", 97635c4bbdfSmrg yyrule - 1, yylno); 97705b261ecSmrg /* The symbols being reduced. */ 97805b261ecSmrg for (yyi = 0; yyi < yynrhs; yyi++) 97905b261ecSmrg { 9804642e01fSmrg YYFPRINTF (stderr, " $%d = ", yyi + 1); 98135c4bbdfSmrg yy_symbol_print (stderr, 982ed6184dfSmrg yystos[+yyssp[yyi + 1 - yynrhs]], 983ed6184dfSmrg &yyvsp[(yyi + 1) - (yynrhs)] 984ed6184dfSmrg ); 9854642e01fSmrg YYFPRINTF (stderr, "\n"); 98605b261ecSmrg } 98705b261ecSmrg} 98805b261ecSmrg 98935c4bbdfSmrg# define YY_REDUCE_PRINT(Rule) \ 99035c4bbdfSmrgdo { \ 99135c4bbdfSmrg if (yydebug) \ 99235c4bbdfSmrg yy_reduce_print (yyssp, yyvsp, Rule); \ 99335c4bbdfSmrg} while (0) 99405b261ecSmrg 99505b261ecSmrg/* Nonzero means print parse trace. It is left uninitialized so that 99605b261ecSmrg multiple parsers can coexist. */ 99705b261ecSmrgint yydebug; 99805b261ecSmrg#else /* !YYDEBUG */ 999ed6184dfSmrg# define YYDPRINTF(Args) 1000ed6184dfSmrg# define YY_SYMBOL_PRINT(Title, Type, Value, Location) 100105b261ecSmrg# define YY_STACK_PRINT(Bottom, Top) 100205b261ecSmrg# define YY_REDUCE_PRINT(Rule) 100305b261ecSmrg#endif /* !YYDEBUG */ 100405b261ecSmrg 100505b261ecSmrg 100605b261ecSmrg/* YYINITDEPTH -- initial size of the parser's stacks. */ 100735c4bbdfSmrg#ifndef YYINITDEPTH 100805b261ecSmrg# define YYINITDEPTH 200 100905b261ecSmrg#endif 101005b261ecSmrg 101105b261ecSmrg/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only 101205b261ecSmrg if the built-in stack extension method is used). 101305b261ecSmrg 101405b261ecSmrg Do not make this value too large; the results are undefined if 101505b261ecSmrg YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) 101605b261ecSmrg evaluated with infinite-precision integer arithmetic. */ 101705b261ecSmrg 101805b261ecSmrg#ifndef YYMAXDEPTH 101905b261ecSmrg# define YYMAXDEPTH 10000 102005b261ecSmrg#endif 102105b261ecSmrg 102205b261ecSmrg 1023ed6184dfSmrg#if YYERROR_VERBOSE 1024ed6184dfSmrg 1025ed6184dfSmrg# ifndef yystrlen 1026ed6184dfSmrg# if defined __GLIBC__ && defined _STRING_H 1027ed6184dfSmrg# define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S))) 1028ed6184dfSmrg# else 1029ed6184dfSmrg/* Return the length of YYSTR. */ 1030ed6184dfSmrgstatic YYPTRDIFF_T 1031ed6184dfSmrgyystrlen (const char *yystr) 1032ed6184dfSmrg{ 1033ed6184dfSmrg YYPTRDIFF_T yylen; 1034ed6184dfSmrg for (yylen = 0; yystr[yylen]; yylen++) 1035ed6184dfSmrg continue; 1036ed6184dfSmrg return yylen; 1037ed6184dfSmrg} 1038ed6184dfSmrg# endif 1039ed6184dfSmrg# endif 1040ed6184dfSmrg 1041ed6184dfSmrg# ifndef yystpcpy 1042ed6184dfSmrg# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE 1043ed6184dfSmrg# define yystpcpy stpcpy 1044ed6184dfSmrg# else 1045ed6184dfSmrg/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in 1046ed6184dfSmrg YYDEST. */ 1047ed6184dfSmrgstatic char * 1048ed6184dfSmrgyystpcpy (char *yydest, const char *yysrc) 1049ed6184dfSmrg{ 1050ed6184dfSmrg char *yyd = yydest; 1051ed6184dfSmrg const char *yys = yysrc; 1052ed6184dfSmrg 1053ed6184dfSmrg while ((*yyd++ = *yys++) != '\0') 1054ed6184dfSmrg continue; 105505b261ecSmrg 1056ed6184dfSmrg return yyd - 1; 1057ed6184dfSmrg} 1058ed6184dfSmrg# endif 1059ed6184dfSmrg# endif 106005b261ecSmrg 1061ed6184dfSmrg# ifndef yytnamerr 1062ed6184dfSmrg/* Copy to YYRES the contents of YYSTR after stripping away unnecessary 1063ed6184dfSmrg quotes and backslashes, so that it's suitable for yyerror. The 1064ed6184dfSmrg heuristic is that double-quoting is unnecessary unless the string 1065ed6184dfSmrg contains an apostrophe, a comma, or backslash (other than 1066ed6184dfSmrg backslash-backslash). YYSTR is taken from yytname. If YYRES is 1067ed6184dfSmrg null, do not copy; instead, return the length of what the result 1068ed6184dfSmrg would have been. */ 1069ed6184dfSmrgstatic YYPTRDIFF_T 1070ed6184dfSmrgyytnamerr (char *yyres, const char *yystr) 1071ed6184dfSmrg{ 1072ed6184dfSmrg if (*yystr == '"') 1073ed6184dfSmrg { 1074ed6184dfSmrg YYPTRDIFF_T yyn = 0; 1075ed6184dfSmrg char const *yyp = yystr; 1076ed6184dfSmrg 1077ed6184dfSmrg for (;;) 1078ed6184dfSmrg switch (*++yyp) 1079ed6184dfSmrg { 1080ed6184dfSmrg case '\'': 1081ed6184dfSmrg case ',': 1082ed6184dfSmrg goto do_not_strip_quotes; 1083ed6184dfSmrg 1084ed6184dfSmrg case '\\': 1085ed6184dfSmrg if (*++yyp != '\\') 1086ed6184dfSmrg goto do_not_strip_quotes; 1087ed6184dfSmrg else 1088ed6184dfSmrg goto append; 1089ed6184dfSmrg 1090ed6184dfSmrg append: 1091ed6184dfSmrg default: 1092ed6184dfSmrg if (yyres) 1093ed6184dfSmrg yyres[yyn] = *yyp; 1094ed6184dfSmrg yyn++; 1095ed6184dfSmrg break; 1096ed6184dfSmrg 1097ed6184dfSmrg case '"': 1098ed6184dfSmrg if (yyres) 1099ed6184dfSmrg yyres[yyn] = '\0'; 1100ed6184dfSmrg return yyn; 1101ed6184dfSmrg } 1102ed6184dfSmrg do_not_strip_quotes: ; 1103ed6184dfSmrg } 110405b261ecSmrg 1105ed6184dfSmrg if (yyres) 1106ed6184dfSmrg return yystpcpy (yyres, yystr) - yyres; 1107ed6184dfSmrg else 1108ed6184dfSmrg return yystrlen (yystr); 1109ed6184dfSmrg} 1110ed6184dfSmrg# endif 1111ed6184dfSmrg 1112ed6184dfSmrg/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message 1113ed6184dfSmrg about the unexpected token YYTOKEN for the state stack whose top is 1114ed6184dfSmrg YYSSP. 1115ed6184dfSmrg 1116ed6184dfSmrg Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is 1117ed6184dfSmrg not large enough to hold the message. In that case, also set 1118ed6184dfSmrg *YYMSG_ALLOC to the required number of bytes. Return 2 if the 1119ed6184dfSmrg required number of bytes is too large to store. */ 1120ed6184dfSmrgstatic int 1121ed6184dfSmrgyysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg, 1122ed6184dfSmrg yy_state_t *yyssp, int yytoken) 1123ed6184dfSmrg{ 1124ed6184dfSmrg enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; 1125ed6184dfSmrg /* Internationalized format string. */ 1126ed6184dfSmrg const char *yyformat = YY_NULLPTR; 1127ed6184dfSmrg /* Arguments of yyformat: reported tokens (one for the "unexpected", 1128ed6184dfSmrg one per "expected"). */ 1129ed6184dfSmrg char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; 1130ed6184dfSmrg /* Actual size of YYARG. */ 1131ed6184dfSmrg int yycount = 0; 1132ed6184dfSmrg /* Cumulated lengths of YYARG. */ 1133ed6184dfSmrg YYPTRDIFF_T yysize = 0; 1134ed6184dfSmrg 1135ed6184dfSmrg /* There are many possibilities here to consider: 1136ed6184dfSmrg - If this state is a consistent state with a default action, then 1137ed6184dfSmrg the only way this function was invoked is if the default action 1138ed6184dfSmrg is an error action. In that case, don't check for expected 1139ed6184dfSmrg tokens because there are none. 1140ed6184dfSmrg - The only way there can be no lookahead present (in yychar) is if 1141ed6184dfSmrg this state is a consistent state with a default action. Thus, 1142ed6184dfSmrg detecting the absence of a lookahead is sufficient to determine 1143ed6184dfSmrg that there is no unexpected or expected token to report. In that 1144ed6184dfSmrg case, just report a simple "syntax error". 1145ed6184dfSmrg - Don't assume there isn't a lookahead just because this state is a 1146ed6184dfSmrg consistent state with a default action. There might have been a 1147ed6184dfSmrg previous inconsistent state, consistent state with a non-default 1148ed6184dfSmrg action, or user semantic action that manipulated yychar. 1149ed6184dfSmrg - Of course, the expected token list depends on states to have 1150ed6184dfSmrg correct lookahead information, and it depends on the parser not 1151ed6184dfSmrg to perform extra reductions after fetching a lookahead from the 1152ed6184dfSmrg scanner and before detecting a syntax error. Thus, state merging 1153ed6184dfSmrg (from LALR or IELR) and default reductions corrupt the expected 1154ed6184dfSmrg token list. However, the list is correct for canonical LR with 1155ed6184dfSmrg one exception: it will still contain any token that will not be 1156ed6184dfSmrg accepted due to an error action in a later state. 1157ed6184dfSmrg */ 1158ed6184dfSmrg if (yytoken != YYEMPTY) 1159ed6184dfSmrg { 1160ed6184dfSmrg int yyn = yypact[+*yyssp]; 1161ed6184dfSmrg YYPTRDIFF_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); 1162ed6184dfSmrg yysize = yysize0; 1163ed6184dfSmrg yyarg[yycount++] = yytname[yytoken]; 1164ed6184dfSmrg if (!yypact_value_is_default (yyn)) 1165ed6184dfSmrg { 1166ed6184dfSmrg /* Start YYX at -YYN if negative to avoid negative indexes in 1167ed6184dfSmrg YYCHECK. In other words, skip the first -YYN actions for 1168ed6184dfSmrg this state because they are default actions. */ 1169ed6184dfSmrg int yyxbegin = yyn < 0 ? -yyn : 0; 1170ed6184dfSmrg /* Stay within bounds of both yycheck and yytname. */ 1171ed6184dfSmrg int yychecklim = YYLAST - yyn + 1; 1172ed6184dfSmrg int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; 1173ed6184dfSmrg int yyx; 1174ed6184dfSmrg 1175ed6184dfSmrg for (yyx = yyxbegin; yyx < yyxend; ++yyx) 1176ed6184dfSmrg if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR 1177ed6184dfSmrg && !yytable_value_is_error (yytable[yyx + yyn])) 1178ed6184dfSmrg { 1179ed6184dfSmrg if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) 1180ed6184dfSmrg { 1181ed6184dfSmrg yycount = 1; 1182ed6184dfSmrg yysize = yysize0; 1183ed6184dfSmrg break; 1184ed6184dfSmrg } 1185ed6184dfSmrg yyarg[yycount++] = yytname[yyx]; 1186ed6184dfSmrg { 1187ed6184dfSmrg YYPTRDIFF_T yysize1 1188ed6184dfSmrg = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); 1189ed6184dfSmrg if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) 1190ed6184dfSmrg yysize = yysize1; 1191ed6184dfSmrg else 1192ed6184dfSmrg return 2; 1193ed6184dfSmrg } 1194ed6184dfSmrg } 1195ed6184dfSmrg } 1196ed6184dfSmrg } 1197ed6184dfSmrg 1198ed6184dfSmrg switch (yycount) 1199ed6184dfSmrg { 1200ed6184dfSmrg# define YYCASE_(N, S) \ 1201ed6184dfSmrg case N: \ 1202ed6184dfSmrg yyformat = S; \ 1203ed6184dfSmrg break 1204ed6184dfSmrg default: /* Avoid compiler warnings. */ 1205ed6184dfSmrg YYCASE_(0, YY_("syntax error")); 1206ed6184dfSmrg YYCASE_(1, YY_("syntax error, unexpected %s")); 1207ed6184dfSmrg YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); 1208ed6184dfSmrg YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); 1209ed6184dfSmrg YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); 1210ed6184dfSmrg YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); 1211ed6184dfSmrg# undef YYCASE_ 1212ed6184dfSmrg } 1213ed6184dfSmrg 1214ed6184dfSmrg { 1215ed6184dfSmrg /* Don't count the "%s"s in the final size, but reserve room for 1216ed6184dfSmrg the terminator. */ 1217ed6184dfSmrg YYPTRDIFF_T yysize1 = yysize + (yystrlen (yyformat) - 2 * yycount) + 1; 1218ed6184dfSmrg if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) 1219ed6184dfSmrg yysize = yysize1; 1220ed6184dfSmrg else 1221ed6184dfSmrg return 2; 1222ed6184dfSmrg } 1223ed6184dfSmrg 1224ed6184dfSmrg if (*yymsg_alloc < yysize) 1225ed6184dfSmrg { 1226ed6184dfSmrg *yymsg_alloc = 2 * yysize; 1227ed6184dfSmrg if (! (yysize <= *yymsg_alloc 1228ed6184dfSmrg && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) 1229ed6184dfSmrg *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; 1230ed6184dfSmrg return 1; 1231ed6184dfSmrg } 1232ed6184dfSmrg 1233ed6184dfSmrg /* Avoid sprintf, as that infringes on the user's name space. 1234ed6184dfSmrg Don't have undefined behavior even if the translation 1235ed6184dfSmrg produced a string with the wrong number of "%s"s. */ 1236ed6184dfSmrg { 1237ed6184dfSmrg char *yyp = *yymsg; 1238ed6184dfSmrg int yyi = 0; 1239ed6184dfSmrg while ((*yyp = *yyformat) != '\0') 1240ed6184dfSmrg if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) 1241ed6184dfSmrg { 1242ed6184dfSmrg yyp += yytnamerr (yyp, yyarg[yyi++]); 1243ed6184dfSmrg yyformat += 2; 1244ed6184dfSmrg } 1245ed6184dfSmrg else 1246ed6184dfSmrg { 1247ed6184dfSmrg ++yyp; 1248ed6184dfSmrg ++yyformat; 1249ed6184dfSmrg } 1250ed6184dfSmrg } 1251ed6184dfSmrg return 0; 1252ed6184dfSmrg} 1253ed6184dfSmrg#endif /* YYERROR_VERBOSE */ 125405b261ecSmrg 125505b261ecSmrg/*-----------------------------------------------. 125605b261ecSmrg| Release the memory associated to this symbol. | 125705b261ecSmrg`-----------------------------------------------*/ 125805b261ecSmrg 125905b261ecSmrgstatic void 1260ed6184dfSmrgyydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) 126105b261ecSmrg{ 1262ed6184dfSmrg YYUSE (yyvaluep); 126305b261ecSmrg if (!yymsg) 126405b261ecSmrg yymsg = "Deleting"; 1265ed6184dfSmrg YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); 126605b261ecSmrg 126735c4bbdfSmrg YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 1268ed6184dfSmrg YYUSE (yytype); 126935c4bbdfSmrg YY_IGNORE_MAYBE_UNINITIALIZED_END 127005b261ecSmrg} 127105b261ecSmrg 12729ace9065Smrg 1273ed6184dfSmrg 1274ed6184dfSmrg 1275ed6184dfSmrg/* The lookahead symbol. */ 127605b261ecSmrgint yychar; 127705b261ecSmrg 12784642e01fSmrg/* The semantic value of the lookahead symbol. */ 127905b261ecSmrgYYSTYPE yylval; 128005b261ecSmrg/* Number of syntax errors so far. */ 128105b261ecSmrgint yynerrs; 128205b261ecSmrg 128305b261ecSmrg 12849ace9065Smrg/*----------. 12859ace9065Smrg| yyparse. | 12869ace9065Smrg`----------*/ 128705b261ecSmrg 128805b261ecSmrgint 128905b261ecSmrgyyparse (void) 129005b261ecSmrg{ 1291ed6184dfSmrg yy_state_fast_t yystate; 12924642e01fSmrg /* Number of tokens to shift before error messages enabled. */ 1293ed6184dfSmrg int yyerrstatus; 129405b261ecSmrg 1295ed6184dfSmrg /* The stacks and their tools: 1296ed6184dfSmrg 'yyss': related to states. 1297ed6184dfSmrg 'yyvs': related to semantic values. 129805b261ecSmrg 1299ed6184dfSmrg Refer to the stacks through separate pointers, to allow yyoverflow 1300ed6184dfSmrg to reallocate them elsewhere. */ 130105b261ecSmrg 1302ed6184dfSmrg /* The state stack. */ 13035a7dfde8Smrg yy_state_t yyssa[YYINITDEPTH]; 1304ed6184dfSmrg yy_state_t *yyss; 1305ed6184dfSmrg yy_state_t *yyssp; 130605b261ecSmrg 1307ed6184dfSmrg /* The semantic value stack. */ 13085a7dfde8Smrg YYSTYPE yyvsa[YYINITDEPTH]; 1309ed6184dfSmrg YYSTYPE *yyvs; 1310ed6184dfSmrg YYSTYPE *yyvsp; 1311ed6184dfSmrg 1312ed6184dfSmrg YYPTRDIFF_T yystacksize; 131305b261ecSmrg 13144642e01fSmrg int yyn; 13154642e01fSmrg int yyresult; 1316ed6184dfSmrg /* Lookahead token as an internal (translated) token number. */ 1317ed6184dfSmrg int yytoken = 0; 131805b261ecSmrg /* The variables used to return semantic value and location from the 131905b261ecSmrg action routines. */ 132005b261ecSmrg YYSTYPE yyval; 132105b261ecSmrg 1322ed6184dfSmrg#if YYERROR_VERBOSE 1323ed6184dfSmrg /* Buffer for error messages, and its allocated size. */ 1324ed6184dfSmrg char yymsgbuf[128]; 1325ed6184dfSmrg char *yymsg = yymsgbuf; 1326ed6184dfSmrg YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf; 1327ed6184dfSmrg#endif 13284642e01fSmrg 13294642e01fSmrg#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) 133005b261ecSmrg 133105b261ecSmrg /* The number of symbols on the RHS of the reduced rule. 133205b261ecSmrg Keep to zero when no symbol should be popped. */ 133305b261ecSmrg int yylen = 0; 133405b261ecSmrg 1335ed6184dfSmrg yyssp = yyss = yyssa; 1336ed6184dfSmrg yyvsp = yyvs = yyvsa; 1337ed6184dfSmrg yystacksize = YYINITDEPTH; 1338ed6184dfSmrg 133905b261ecSmrg YYDPRINTF ((stderr, "Starting parse\n")); 134005b261ecSmrg 1341ed6184dfSmrg yystate = 0; 1342ed6184dfSmrg yyerrstatus = 0; 1343ed6184dfSmrg yynerrs = 0; 13444642e01fSmrg yychar = YYEMPTY; /* Cause a token to be read. */ 134505b261ecSmrg goto yysetstate; 134605b261ecSmrg 13475a7dfde8Smrg 134805b261ecSmrg/*------------------------------------------------------------. 13495a7dfde8Smrg| yynewstate -- push a new state, which is found in yystate. | 135005b261ecSmrg`------------------------------------------------------------*/ 13515a7dfde8Smrgyynewstate: 135205b261ecSmrg /* In all cases, when you get here, the value and location stacks 135305b261ecSmrg have just been pushed. So pushing a state here evens the stacks. */ 135405b261ecSmrg yyssp++; 135505b261ecSmrg 13565a7dfde8Smrg 13575a7dfde8Smrg/*--------------------------------------------------------------------. 13585a7dfde8Smrg| yysetstate -- set current state (the top of the stack) to yystate. | 13595a7dfde8Smrg`--------------------------------------------------------------------*/ 13605a7dfde8Smrgyysetstate: 13615a7dfde8Smrg YYDPRINTF ((stderr, "Entering state %d\n", yystate)); 13625a7dfde8Smrg YY_ASSERT (0 <= yystate && yystate < YYNSTATES); 13635a7dfde8Smrg YY_IGNORE_USELESS_CAST_BEGIN 13645a7dfde8Smrg *yyssp = YY_CAST (yy_state_t, yystate); 13655a7dfde8Smrg YY_IGNORE_USELESS_CAST_END 136605b261ecSmrg 136705b261ecSmrg if (yyss + yystacksize - 1 <= yyssp) 13685a7dfde8Smrg#if !defined yyoverflow && !defined YYSTACK_RELOCATE 13695a7dfde8Smrg goto yyexhaustedlab; 13705a7dfde8Smrg#else 137105b261ecSmrg { 137205b261ecSmrg /* Get the current used size of the three stacks, in elements. */ 13735a7dfde8Smrg YYPTRDIFF_T yysize = yyssp - yyss + 1; 137405b261ecSmrg 13755a7dfde8Smrg# if defined yyoverflow 137605b261ecSmrg { 137735c4bbdfSmrg /* Give user a chance to reallocate the stack. Use copies of 137835c4bbdfSmrg these so that the &'s don't force the real ones into 137935c4bbdfSmrg memory. */ 13805a7dfde8Smrg yy_state_t *yyss1 = yyss; 138135c4bbdfSmrg YYSTYPE *yyvs1 = yyvs; 138235c4bbdfSmrg 138335c4bbdfSmrg /* Each stack pointer address is followed by the size of the 138435c4bbdfSmrg data in use in that stack, in bytes. This used to be a 138535c4bbdfSmrg conditional around just the two extra args, but that might 138635c4bbdfSmrg be undefined if yyoverflow is a macro. */ 138735c4bbdfSmrg yyoverflow (YY_("memory exhausted"), 13885a7dfde8Smrg &yyss1, yysize * YYSIZEOF (*yyssp), 13895a7dfde8Smrg &yyvs1, yysize * YYSIZEOF (*yyvsp), 139035c4bbdfSmrg &yystacksize); 139135c4bbdfSmrg yyss = yyss1; 139235c4bbdfSmrg yyvs = yyvs1; 139305b261ecSmrg } 13945a7dfde8Smrg# else /* defined YYSTACK_RELOCATE */ 139505b261ecSmrg /* Extend the stack our own way. */ 139605b261ecSmrg if (YYMAXDEPTH <= yystacksize) 139735c4bbdfSmrg goto yyexhaustedlab; 139805b261ecSmrg yystacksize *= 2; 139905b261ecSmrg if (YYMAXDEPTH < yystacksize) 140035c4bbdfSmrg yystacksize = YYMAXDEPTH; 140105b261ecSmrg 140205b261ecSmrg { 14035a7dfde8Smrg yy_state_t *yyss1 = yyss; 140435c4bbdfSmrg union yyalloc *yyptr = 14055a7dfde8Smrg YY_CAST (union yyalloc *, 14065a7dfde8Smrg YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); 140735c4bbdfSmrg if (! yyptr) 140835c4bbdfSmrg goto yyexhaustedlab; 140935c4bbdfSmrg YYSTACK_RELOCATE (yyss_alloc, yyss); 141035c4bbdfSmrg YYSTACK_RELOCATE (yyvs_alloc, yyvs); 1411ed6184dfSmrg# undef YYSTACK_RELOCATE 141235c4bbdfSmrg if (yyss1 != yyssa) 141335c4bbdfSmrg YYSTACK_FREE (yyss1); 141405b261ecSmrg } 141505b261ecSmrg# endif 141605b261ecSmrg 141705b261ecSmrg yyssp = yyss + yysize - 1; 141805b261ecSmrg yyvsp = yyvs + yysize - 1; 141905b261ecSmrg 14205a7dfde8Smrg YY_IGNORE_USELESS_CAST_BEGIN 14215a7dfde8Smrg YYDPRINTF ((stderr, "Stack size increased to %ld\n", 14225a7dfde8Smrg YY_CAST (long, yystacksize))); 14235a7dfde8Smrg YY_IGNORE_USELESS_CAST_END 142405b261ecSmrg 142505b261ecSmrg if (yyss + yystacksize - 1 <= yyssp) 142635c4bbdfSmrg YYABORT; 142705b261ecSmrg } 14285a7dfde8Smrg#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ 142905b261ecSmrg 14304642e01fSmrg if (yystate == YYFINAL) 14314642e01fSmrg YYACCEPT; 14324642e01fSmrg 143305b261ecSmrg goto yybackup; 143405b261ecSmrg 14355a7dfde8Smrg 143605b261ecSmrg/*-----------. 143705b261ecSmrg| yybackup. | 143805b261ecSmrg`-----------*/ 143905b261ecSmrgyybackup: 144005b261ecSmrg /* Do appropriate processing given the current state. Read a 14414642e01fSmrg lookahead token if we need one and don't already have one. */ 144205b261ecSmrg 14434642e01fSmrg /* First try to decide what to do without reference to lookahead token. */ 144405b261ecSmrg yyn = yypact[yystate]; 14459ace9065Smrg if (yypact_value_is_default (yyn)) 144605b261ecSmrg goto yydefault; 144705b261ecSmrg 14484642e01fSmrg /* Not known => get a lookahead token if don't already have one. */ 144905b261ecSmrg 1450ed6184dfSmrg /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ 145105b261ecSmrg if (yychar == YYEMPTY) 145205b261ecSmrg { 1453ed6184dfSmrg YYDPRINTF ((stderr, "Reading a token: ")); 145435c4bbdfSmrg yychar = yylex (); 145505b261ecSmrg } 145605b261ecSmrg 145705b261ecSmrg if (yychar <= YYEOF) 145805b261ecSmrg { 1459ed6184dfSmrg yychar = yytoken = YYEOF; 146005b261ecSmrg YYDPRINTF ((stderr, "Now at end of input.\n")); 146105b261ecSmrg } 146205b261ecSmrg else 146305b261ecSmrg { 146405b261ecSmrg yytoken = YYTRANSLATE (yychar); 146505b261ecSmrg YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); 146605b261ecSmrg } 146705b261ecSmrg 146805b261ecSmrg /* If the proper action on seeing token YYTOKEN is to reduce or to 146905b261ecSmrg detect an error, take that action. */ 147005b261ecSmrg yyn += yytoken; 147105b261ecSmrg if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) 147205b261ecSmrg goto yydefault; 147305b261ecSmrg yyn = yytable[yyn]; 147405b261ecSmrg if (yyn <= 0) 147505b261ecSmrg { 14769ace9065Smrg if (yytable_value_is_error (yyn)) 14779ace9065Smrg goto yyerrlab; 147805b261ecSmrg yyn = -yyn; 147905b261ecSmrg goto yyreduce; 148005b261ecSmrg } 148105b261ecSmrg 148205b261ecSmrg /* Count tokens shifted since error; after three, turn off error 148305b261ecSmrg status. */ 148405b261ecSmrg if (yyerrstatus) 148505b261ecSmrg yyerrstatus--; 148605b261ecSmrg 14874642e01fSmrg /* Shift the lookahead token. */ 148805b261ecSmrg YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); 148905b261ecSmrg yystate = yyn; 149035c4bbdfSmrg YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 149105b261ecSmrg *++yyvsp = yylval; 149235c4bbdfSmrg YY_IGNORE_MAYBE_UNINITIALIZED_END 149305b261ecSmrg 14945a7dfde8Smrg /* Discard the shifted token. */ 14955a7dfde8Smrg yychar = YYEMPTY; 149605b261ecSmrg goto yynewstate; 149705b261ecSmrg 149805b261ecSmrg 149905b261ecSmrg/*-----------------------------------------------------------. 150005b261ecSmrg| yydefault -- do the default action for the current state. | 150105b261ecSmrg`-----------------------------------------------------------*/ 150205b261ecSmrgyydefault: 150305b261ecSmrg yyn = yydefact[yystate]; 150405b261ecSmrg if (yyn == 0) 150505b261ecSmrg goto yyerrlab; 150605b261ecSmrg goto yyreduce; 150705b261ecSmrg 150805b261ecSmrg 150905b261ecSmrg/*-----------------------------. 15105a7dfde8Smrg| yyreduce -- do a reduction. | 151105b261ecSmrg`-----------------------------*/ 151205b261ecSmrgyyreduce: 151305b261ecSmrg /* yyn is the number of a rule to reduce with. */ 151405b261ecSmrg yylen = yyr2[yyn]; 151505b261ecSmrg 151605b261ecSmrg /* If YYLEN is nonzero, implement the default value of the action: 151735c4bbdfSmrg '$$ = $1'. 151805b261ecSmrg 151905b261ecSmrg Otherwise, the following line sets YYVAL to garbage. 152005b261ecSmrg This behavior is undocumented and Bison 152105b261ecSmrg users should not rely upon it. Assigning to YYVAL 152205b261ecSmrg unconditionally makes the parser a bit smaller, and it avoids a 152305b261ecSmrg GCC warning that YYVAL may be used uninitialized. */ 152405b261ecSmrg yyval = yyvsp[1-yylen]; 152505b261ecSmrg 152605b261ecSmrg 152705b261ecSmrg YY_REDUCE_PRINT (yyn); 152805b261ecSmrg switch (yyn) 152905b261ecSmrg { 1530ed6184dfSmrg case 20: 15315a7dfde8Smrg#line 160 "winprefsyacc.y" 15325a7dfde8Smrg { SetTrayIcon((yyvsp[-1].sVal)); free((yyvsp[-1].sVal)); } 1533ed6184dfSmrg#line 1534 "winprefsyacc.c" 153405b261ecSmrg break; 153505b261ecSmrg 1536ed6184dfSmrg case 21: 15375a7dfde8Smrg#line 163 "winprefsyacc.y" 15385a7dfde8Smrg { SetRootMenu((yyvsp[-1].sVal)); free((yyvsp[-1].sVal)); } 1539ed6184dfSmrg#line 1540 "winprefsyacc.c" 154005b261ecSmrg break; 154105b261ecSmrg 1542ed6184dfSmrg case 22: 15435a7dfde8Smrg#line 166 "winprefsyacc.y" 15445a7dfde8Smrg { SetDefaultSysMenu((yyvsp[-2].sVal), (yyvsp[-1].iVal)); free((yyvsp[-2].sVal)); } 1545ed6184dfSmrg#line 1546 "winprefsyacc.c" 154605b261ecSmrg break; 154705b261ecSmrg 1548ed6184dfSmrg case 23: 15495a7dfde8Smrg#line 169 "winprefsyacc.y" 15505a7dfde8Smrg { SetDefaultIcon((yyvsp[-1].sVal)); free((yyvsp[-1].sVal)); } 1551ed6184dfSmrg#line 1552 "winprefsyacc.c" 155205b261ecSmrg break; 155305b261ecSmrg 1554ed6184dfSmrg case 24: 15555a7dfde8Smrg#line 172 "winprefsyacc.y" 15565a7dfde8Smrg { SetIconDirectory((yyvsp[-1].sVal)); free((yyvsp[-1].sVal)); } 1557ed6184dfSmrg#line 1558 "winprefsyacc.c" 155805b261ecSmrg break; 155905b261ecSmrg 1560ed6184dfSmrg case 25: 15615a7dfde8Smrg#line 175 "winprefsyacc.y" 15625a7dfde8Smrg { AddMenuLine("-", CMD_SEPARATOR, ""); } 1563ed6184dfSmrg#line 1564 "winprefsyacc.c" 156405b261ecSmrg break; 156505b261ecSmrg 1566ed6184dfSmrg case 26: 15675a7dfde8Smrg#line 176 "winprefsyacc.y" 15685a7dfde8Smrg { AddMenuLine((yyvsp[-3].sVal), CMD_ALWAYSONTOP, ""); free((yyvsp[-3].sVal)); } 1569ed6184dfSmrg#line 1570 "winprefsyacc.c" 157005b261ecSmrg break; 157105b261ecSmrg 1572ed6184dfSmrg case 27: 15735a7dfde8Smrg#line 177 "winprefsyacc.y" 15745a7dfde8Smrg { AddMenuLine((yyvsp[-4].sVal), CMD_EXEC, (yyvsp[-2].sVal)); free((yyvsp[-4].sVal)); free((yyvsp[-2].sVal)); } 1575ed6184dfSmrg#line 1576 "winprefsyacc.c" 157605b261ecSmrg break; 157705b261ecSmrg 1578ed6184dfSmrg case 28: 15795a7dfde8Smrg#line 178 "winprefsyacc.y" 15805a7dfde8Smrg { AddMenuLine((yyvsp[-4].sVal), CMD_MENU, (yyvsp[-2].sVal)); free((yyvsp[-4].sVal)); free((yyvsp[-2].sVal)); } 1581ed6184dfSmrg#line 1582 "winprefsyacc.c" 158205b261ecSmrg break; 158305b261ecSmrg 1584ed6184dfSmrg case 29: 15855a7dfde8Smrg#line 179 "winprefsyacc.y" 15865a7dfde8Smrg { AddMenuLine((yyvsp[-3].sVal), CMD_RELOAD, ""); free((yyvsp[-3].sVal)); } 1587ed6184dfSmrg#line 1588 "winprefsyacc.c" 158805b261ecSmrg break; 158905b261ecSmrg 1590ed6184dfSmrg case 32: 15915a7dfde8Smrg#line 186 "winprefsyacc.y" 15925a7dfde8Smrg { OpenMenu((yyvsp[-1].sVal)); free((yyvsp[-1].sVal)); } 1593ed6184dfSmrg#line 1594 "winprefsyacc.c" 159405b261ecSmrg break; 159505b261ecSmrg 1596ed6184dfSmrg case 33: 15975a7dfde8Smrg#line 186 "winprefsyacc.y" 15985a7dfde8Smrg {CloseMenu();} 1599ed6184dfSmrg#line 1600 "winprefsyacc.c" 160005b261ecSmrg break; 160105b261ecSmrg 1602ed6184dfSmrg case 34: 16035a7dfde8Smrg#line 189 "winprefsyacc.y" 16045a7dfde8Smrg { AddIconLine((yyvsp[-3].sVal), (yyvsp[-2].sVal)); free((yyvsp[-3].sVal)); free((yyvsp[-2].sVal)); } 1605ed6184dfSmrg#line 1606 "winprefsyacc.c" 160605b261ecSmrg break; 160705b261ecSmrg 1608ed6184dfSmrg case 37: 16095a7dfde8Smrg#line 196 "winprefsyacc.y" 16105a7dfde8Smrg {OpenIcons();} 1611ed6184dfSmrg#line 1612 "winprefsyacc.c" 161205b261ecSmrg break; 161305b261ecSmrg 1614ed6184dfSmrg case 38: 16155a7dfde8Smrg#line 196 "winprefsyacc.y" 16165a7dfde8Smrg {CloseIcons();} 1617ed6184dfSmrg#line 1618 "winprefsyacc.c" 161805b261ecSmrg break; 161905b261ecSmrg 1620ed6184dfSmrg case 39: 16215a7dfde8Smrg#line 199 "winprefsyacc.y" 16225a7dfde8Smrg { (yyval.uVal)=STYLE_TOPMOST; } 1623ed6184dfSmrg#line 1624 "winprefsyacc.c" 16246747b715Smrg break; 16256747b715Smrg 1626ed6184dfSmrg case 40: 16275a7dfde8Smrg#line 200 "winprefsyacc.y" 16285a7dfde8Smrg { (yyval.uVal)=STYLE_MAXIMIZE; } 1629ed6184dfSmrg#line 1630 "winprefsyacc.c" 16306747b715Smrg break; 16316747b715Smrg 1632ed6184dfSmrg case 41: 16335a7dfde8Smrg#line 201 "winprefsyacc.y" 16345a7dfde8Smrg { (yyval.uVal)=STYLE_MINIMIZE; } 1635ed6184dfSmrg#line 1636 "winprefsyacc.c" 16366747b715Smrg break; 16376747b715Smrg 1638ed6184dfSmrg case 42: 16395a7dfde8Smrg#line 202 "winprefsyacc.y" 16405a7dfde8Smrg { (yyval.uVal)=STYLE_BOTTOM; } 1641ed6184dfSmrg#line 1642 "winprefsyacc.c" 16426747b715Smrg break; 16436747b715Smrg 1644ed6184dfSmrg case 43: 16455a7dfde8Smrg#line 205 "winprefsyacc.y" 16465a7dfde8Smrg { (yyval.uVal)=STYLE_NOTITLE; } 1647ed6184dfSmrg#line 1648 "winprefsyacc.c" 16486747b715Smrg break; 16496747b715Smrg 1650ed6184dfSmrg case 44: 16515a7dfde8Smrg#line 206 "winprefsyacc.y" 16525a7dfde8Smrg { (yyval.uVal)=STYLE_OUTLINE; } 1653ed6184dfSmrg#line 1654 "winprefsyacc.c" 16546747b715Smrg break; 16556747b715Smrg 1656ed6184dfSmrg case 45: 16575a7dfde8Smrg#line 207 "winprefsyacc.y" 16585a7dfde8Smrg { (yyval.uVal)=STYLE_NOFRAME; } 1659ed6184dfSmrg#line 1660 "winprefsyacc.c" 16606747b715Smrg break; 16616747b715Smrg 1662ed6184dfSmrg case 46: 16635a7dfde8Smrg#line 210 "winprefsyacc.y" 16645a7dfde8Smrg { (yyval.uVal)=(yyvsp[0].uVal); } 1665ed6184dfSmrg#line 1666 "winprefsyacc.c" 16666747b715Smrg break; 16676747b715Smrg 1668ed6184dfSmrg case 47: 16695a7dfde8Smrg#line 211 "winprefsyacc.y" 16705a7dfde8Smrg { (yyval.uVal)=(yyvsp[0].uVal); } 1671ed6184dfSmrg#line 1672 "winprefsyacc.c" 16726747b715Smrg break; 16736747b715Smrg 1674ed6184dfSmrg case 48: 16755a7dfde8Smrg#line 212 "winprefsyacc.y" 16765a7dfde8Smrg { (yyval.uVal)=(yyvsp[-1].uVal)|(yyvsp[0].uVal); } 1677ed6184dfSmrg#line 1678 "winprefsyacc.c" 16786747b715Smrg break; 16796747b715Smrg 1680ed6184dfSmrg case 49: 16815a7dfde8Smrg#line 213 "winprefsyacc.y" 16825a7dfde8Smrg { (yyval.uVal)=(yyvsp[-1].uVal)|(yyvsp[0].uVal); } 1683ed6184dfSmrg#line 1684 "winprefsyacc.c" 16846747b715Smrg break; 16856747b715Smrg 1686ed6184dfSmrg case 50: 16875a7dfde8Smrg#line 216 "winprefsyacc.y" 16885a7dfde8Smrg { AddStyleLine((yyvsp[-3].sVal), (yyvsp[-2].uVal)); free((yyvsp[-3].sVal)); } 1689ed6184dfSmrg#line 1690 "winprefsyacc.c" 16906747b715Smrg break; 16916747b715Smrg 1692ed6184dfSmrg case 53: 16935a7dfde8Smrg#line 223 "winprefsyacc.y" 16945a7dfde8Smrg {OpenStyles();} 1695ed6184dfSmrg#line 1696 "winprefsyacc.c" 16966747b715Smrg break; 16976747b715Smrg 1698ed6184dfSmrg case 54: 16995a7dfde8Smrg#line 223 "winprefsyacc.y" 17005a7dfde8Smrg {CloseStyles();} 1701ed6184dfSmrg#line 1702 "winprefsyacc.c" 17026747b715Smrg break; 17036747b715Smrg 1704ed6184dfSmrg case 55: 17055a7dfde8Smrg#line 226 "winprefsyacc.y" 17065a7dfde8Smrg { (yyval.iVal)=AT_END; } 1707ed6184dfSmrg#line 1708 "winprefsyacc.c" 170805b261ecSmrg break; 170905b261ecSmrg 1710ed6184dfSmrg case 56: 17115a7dfde8Smrg#line 227 "winprefsyacc.y" 17125a7dfde8Smrg { (yyval.iVal)=AT_START; } 1713ed6184dfSmrg#line 1714 "winprefsyacc.c" 171405b261ecSmrg break; 171505b261ecSmrg 1716ed6184dfSmrg case 57: 17175a7dfde8Smrg#line 228 "winprefsyacc.y" 17185a7dfde8Smrg { (yyval.iVal)=AT_END; } 1719ed6184dfSmrg#line 1720 "winprefsyacc.c" 172005b261ecSmrg break; 172105b261ecSmrg 1722ed6184dfSmrg case 58: 17235a7dfde8Smrg#line 231 "winprefsyacc.y" 17245a7dfde8Smrg { AddSysMenuLine((yyvsp[-4].sVal), (yyvsp[-3].sVal), (yyvsp[-2].iVal)); free((yyvsp[-4].sVal)); free((yyvsp[-3].sVal)); } 1725ed6184dfSmrg#line 1726 "winprefsyacc.c" 172605b261ecSmrg break; 172705b261ecSmrg 1728ed6184dfSmrg case 61: 17295a7dfde8Smrg#line 238 "winprefsyacc.y" 17305a7dfde8Smrg {OpenSysMenu();} 1731ed6184dfSmrg#line 1732 "winprefsyacc.c" 173205b261ecSmrg break; 173305b261ecSmrg 1734ed6184dfSmrg case 62: 17355a7dfde8Smrg#line 238 "winprefsyacc.y" 17365a7dfde8Smrg {CloseSysMenu();} 1737ed6184dfSmrg#line 1738 "winprefsyacc.c" 173805b261ecSmrg break; 173905b261ecSmrg 1740ed6184dfSmrg case 63: 17415a7dfde8Smrg#line 241 "winprefsyacc.y" 17425a7dfde8Smrg { pref.fForceExit = TRUE; } 1743ed6184dfSmrg#line 1744 "winprefsyacc.c" 17446747b715Smrg break; 17456747b715Smrg 1746ed6184dfSmrg case 64: 17475a7dfde8Smrg#line 244 "winprefsyacc.y" 17485a7dfde8Smrg { pref.fSilentExit = TRUE; } 1749ed6184dfSmrg#line 1750 "winprefsyacc.c" 175005b261ecSmrg break; 175105b261ecSmrg 1752ed6184dfSmrg case 65: 17535a7dfde8Smrg#line 247 "winprefsyacc.y" 17545a7dfde8Smrg { ErrorF("LoadPreferences: %s\n", (yyvsp[-1].sVal)); free((yyvsp[-1].sVal)); } 1755ed6184dfSmrg#line 1756 "winprefsyacc.c" 175605b261ecSmrg break; 175705b261ecSmrg 175805b261ecSmrg 1759ed6184dfSmrg#line 1760 "winprefsyacc.c" 17605a7dfde8Smrg 176105b261ecSmrg default: break; 176205b261ecSmrg } 17639ace9065Smrg /* User semantic actions sometimes alter yychar, and that requires 17649ace9065Smrg that yytoken be updated with the new translation. We take the 17659ace9065Smrg approach of translating immediately before every use of yytoken. 17669ace9065Smrg One alternative is translating here after every semantic action, 17679ace9065Smrg but that translation would be missed if the semantic action invokes 17689ace9065Smrg YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or 17699ace9065Smrg if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an 17709ace9065Smrg incorrect destructor might then be invoked immediately. In the 17719ace9065Smrg case of YYERROR or YYBACKUP, subsequent parser actions might lead 17729ace9065Smrg to an incorrect destructor call or verbose syntax error message 17739ace9065Smrg before the lookahead is translated. */ 1774ed6184dfSmrg YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); 177505b261ecSmrg 177605b261ecSmrg YYPOPSTACK (yylen); 177705b261ecSmrg yylen = 0; 1778ed6184dfSmrg YY_STACK_PRINT (yyss, yyssp); 177905b261ecSmrg 178005b261ecSmrg *++yyvsp = yyval; 178105b261ecSmrg 178235c4bbdfSmrg /* Now 'shift' the result of the reduction. Determine what state 178305b261ecSmrg that goes to, based on the state we popped back to and the rule 178405b261ecSmrg number reduced by. */ 17855a7dfde8Smrg { 17865a7dfde8Smrg const int yylhs = yyr1[yyn] - YYNTOKENS; 17875a7dfde8Smrg const int yyi = yypgoto[yylhs] + *yyssp; 17885a7dfde8Smrg yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp 17895a7dfde8Smrg ? yytable[yyi] 17905a7dfde8Smrg : yydefgoto[yylhs]); 17915a7dfde8Smrg } 179205b261ecSmrg 179305b261ecSmrg goto yynewstate; 179405b261ecSmrg 179505b261ecSmrg 179635c4bbdfSmrg/*--------------------------------------. 179735c4bbdfSmrg| yyerrlab -- here on detecting error. | 179835c4bbdfSmrg`--------------------------------------*/ 179905b261ecSmrgyyerrlab: 18009ace9065Smrg /* Make sure we have latest lookahead translation. See comments at 18019ace9065Smrg user semantic actions for why this is necessary. */ 1802ed6184dfSmrg yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); 1803ed6184dfSmrg 180405b261ecSmrg /* If not already recovering from an error, report this error. */ 180505b261ecSmrg if (!yyerrstatus) 180605b261ecSmrg { 180705b261ecSmrg ++yynerrs; 1808ed6184dfSmrg#if ! YYERROR_VERBOSE 180905b261ecSmrg yyerror (YY_("syntax error")); 1810ed6184dfSmrg#else 1811ed6184dfSmrg# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ 1812ed6184dfSmrg yyssp, yytoken) 1813ed6184dfSmrg { 1814ed6184dfSmrg char const *yymsgp = YY_("syntax error"); 1815ed6184dfSmrg int yysyntax_error_status; 1816ed6184dfSmrg yysyntax_error_status = YYSYNTAX_ERROR; 1817ed6184dfSmrg if (yysyntax_error_status == 0) 1818ed6184dfSmrg yymsgp = yymsg; 1819ed6184dfSmrg else if (yysyntax_error_status == 1) 1820ed6184dfSmrg { 1821ed6184dfSmrg if (yymsg != yymsgbuf) 1822ed6184dfSmrg YYSTACK_FREE (yymsg); 1823ed6184dfSmrg yymsg = YY_CAST (char *, YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc))); 1824ed6184dfSmrg if (!yymsg) 1825ed6184dfSmrg { 1826ed6184dfSmrg yymsg = yymsgbuf; 1827ed6184dfSmrg yymsg_alloc = sizeof yymsgbuf; 1828ed6184dfSmrg yysyntax_error_status = 2; 1829ed6184dfSmrg } 1830ed6184dfSmrg else 1831ed6184dfSmrg { 1832ed6184dfSmrg yysyntax_error_status = YYSYNTAX_ERROR; 1833ed6184dfSmrg yymsgp = yymsg; 1834ed6184dfSmrg } 1835ed6184dfSmrg } 1836ed6184dfSmrg yyerror (yymsgp); 1837ed6184dfSmrg if (yysyntax_error_status == 2) 1838ed6184dfSmrg goto yyexhaustedlab; 1839ed6184dfSmrg } 1840ed6184dfSmrg# undef YYSYNTAX_ERROR 1841ed6184dfSmrg#endif 184205b261ecSmrg } 184305b261ecSmrg 1844ed6184dfSmrg 1845ed6184dfSmrg 184605b261ecSmrg if (yyerrstatus == 3) 184705b261ecSmrg { 18484642e01fSmrg /* If just tried and failed to reuse lookahead token after an 184935c4bbdfSmrg error, discard it. */ 185005b261ecSmrg 185105b261ecSmrg if (yychar <= YYEOF) 185235c4bbdfSmrg { 185335c4bbdfSmrg /* Return failure if at end of input. */ 185435c4bbdfSmrg if (yychar == YYEOF) 185535c4bbdfSmrg YYABORT; 185635c4bbdfSmrg } 185705b261ecSmrg else 185835c4bbdfSmrg { 185935c4bbdfSmrg yydestruct ("Error: discarding", 186035c4bbdfSmrg yytoken, &yylval); 186135c4bbdfSmrg yychar = YYEMPTY; 186235c4bbdfSmrg } 186305b261ecSmrg } 186405b261ecSmrg 18654642e01fSmrg /* Else will try to reuse lookahead token after shifting the error 186605b261ecSmrg token. */ 186705b261ecSmrg goto yyerrlab1; 186805b261ecSmrg 186905b261ecSmrg 187005b261ecSmrg/*---------------------------------------------------. 187105b261ecSmrg| yyerrorlab -- error raised explicitly by YYERROR. | 187205b261ecSmrg`---------------------------------------------------*/ 187305b261ecSmrgyyerrorlab: 18745a7dfde8Smrg /* Pacify compilers when the user code never invokes YYERROR and the 18755a7dfde8Smrg label yyerrorlab therefore never appears in user code. */ 18765a7dfde8Smrg if (0) 18775a7dfde8Smrg YYERROR; 187805b261ecSmrg 187935c4bbdfSmrg /* Do not reclaim the symbols of the rule whose action triggered 188005b261ecSmrg this YYERROR. */ 188105b261ecSmrg YYPOPSTACK (yylen); 188205b261ecSmrg yylen = 0; 188305b261ecSmrg YY_STACK_PRINT (yyss, yyssp); 188405b261ecSmrg yystate = *yyssp; 188505b261ecSmrg goto yyerrlab1; 188605b261ecSmrg 188705b261ecSmrg 188805b261ecSmrg/*-------------------------------------------------------------. 188905b261ecSmrg| yyerrlab1 -- common code for both syntax error and YYERROR. | 189005b261ecSmrg`-------------------------------------------------------------*/ 189105b261ecSmrgyyerrlab1: 189235c4bbdfSmrg yyerrstatus = 3; /* Each real token shifted decrements this. */ 189305b261ecSmrg 189405b261ecSmrg for (;;) 189505b261ecSmrg { 189605b261ecSmrg yyn = yypact[yystate]; 18979ace9065Smrg if (!yypact_value_is_default (yyn)) 189835c4bbdfSmrg { 1899ed6184dfSmrg yyn += YYTERROR; 1900ed6184dfSmrg if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) 190135c4bbdfSmrg { 190235c4bbdfSmrg yyn = yytable[yyn]; 190335c4bbdfSmrg if (0 < yyn) 190435c4bbdfSmrg break; 190535c4bbdfSmrg } 190635c4bbdfSmrg } 190705b261ecSmrg 190805b261ecSmrg /* Pop the current state because it cannot handle the error token. */ 190905b261ecSmrg if (yyssp == yyss) 191035c4bbdfSmrg YYABORT; 191105b261ecSmrg 191205b261ecSmrg 191305b261ecSmrg yydestruct ("Error: popping", 1914ed6184dfSmrg yystos[yystate], yyvsp); 191505b261ecSmrg YYPOPSTACK (1); 191605b261ecSmrg yystate = *yyssp; 191705b261ecSmrg YY_STACK_PRINT (yyss, yyssp); 191805b261ecSmrg } 191905b261ecSmrg 192035c4bbdfSmrg YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 192105b261ecSmrg *++yyvsp = yylval; 192235c4bbdfSmrg YY_IGNORE_MAYBE_UNINITIALIZED_END 192305b261ecSmrg 192405b261ecSmrg 192505b261ecSmrg /* Shift the error token. */ 1926ed6184dfSmrg YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); 192705b261ecSmrg 192805b261ecSmrg yystate = yyn; 192905b261ecSmrg goto yynewstate; 193005b261ecSmrg 193105b261ecSmrg 193205b261ecSmrg/*-------------------------------------. 193305b261ecSmrg| yyacceptlab -- YYACCEPT comes here. | 193405b261ecSmrg`-------------------------------------*/ 193505b261ecSmrgyyacceptlab: 193605b261ecSmrg yyresult = 0; 193705b261ecSmrg goto yyreturn; 193805b261ecSmrg 19395a7dfde8Smrg 194005b261ecSmrg/*-----------------------------------. 194105b261ecSmrg| yyabortlab -- YYABORT comes here. | 194205b261ecSmrg`-----------------------------------*/ 194305b261ecSmrgyyabortlab: 194405b261ecSmrg yyresult = 1; 194505b261ecSmrg goto yyreturn; 194605b261ecSmrg 19475a7dfde8Smrg 1948ed6184dfSmrg#if !defined yyoverflow || YYERROR_VERBOSE 194905b261ecSmrg/*-------------------------------------------------. 195005b261ecSmrg| yyexhaustedlab -- memory exhaustion comes here. | 195105b261ecSmrg`-------------------------------------------------*/ 195205b261ecSmrgyyexhaustedlab: 195305b261ecSmrg yyerror (YY_("memory exhausted")); 195405b261ecSmrg yyresult = 2; 1955ed6184dfSmrg /* Fall through. */ 195605b261ecSmrg#endif 195705b261ecSmrg 19585a7dfde8Smrg 1959ed6184dfSmrg/*-----------------------------------------------------. 1960ed6184dfSmrg| yyreturn -- parsing is finished, return the result. | 1961ed6184dfSmrg`-----------------------------------------------------*/ 196205b261ecSmrgyyreturn: 19634642e01fSmrg if (yychar != YYEMPTY) 19649ace9065Smrg { 19659ace9065Smrg /* Make sure we have latest lookahead translation. See comments at 19669ace9065Smrg user semantic actions for why this is necessary. */ 19679ace9065Smrg yytoken = YYTRANSLATE (yychar); 19689ace9065Smrg yydestruct ("Cleanup: discarding lookahead", 19699ace9065Smrg yytoken, &yylval); 19709ace9065Smrg } 197135c4bbdfSmrg /* Do not reclaim the symbols of the rule whose action triggered 197205b261ecSmrg this YYABORT or YYACCEPT. */ 197305b261ecSmrg YYPOPSTACK (yylen); 197405b261ecSmrg YY_STACK_PRINT (yyss, yyssp); 197505b261ecSmrg while (yyssp != yyss) 197605b261ecSmrg { 197705b261ecSmrg yydestruct ("Cleanup: popping", 1978ed6184dfSmrg yystos[+*yyssp], yyvsp); 197905b261ecSmrg YYPOPSTACK (1); 198005b261ecSmrg } 198105b261ecSmrg#ifndef yyoverflow 198205b261ecSmrg if (yyss != yyssa) 198305b261ecSmrg YYSTACK_FREE (yyss); 198405b261ecSmrg#endif 1985ed6184dfSmrg#if YYERROR_VERBOSE 1986ed6184dfSmrg if (yymsg != yymsgbuf) 1987ed6184dfSmrg YYSTACK_FREE (yymsg); 1988ed6184dfSmrg#endif 198935c4bbdfSmrg return yyresult; 199005b261ecSmrg} 19915a7dfde8Smrg#line 251 "winprefsyacc.y" 199205b261ecSmrg 199305b261ecSmrg/* 199405b261ecSmrg * Errors in parsing abort and print log messages 199505b261ecSmrg */ 199605b261ecSmrgstatic int 199735c4bbdfSmrgyyerror (const char *s) 199805b261ecSmrg{ 199905b261ecSmrg ErrorF("LoadPreferences: %s line %d\n", s, yylineno); 200005b261ecSmrg return 1; 200105b261ecSmrg} 200205b261ecSmrg 200305b261ecSmrg/* Miscellaneous functions to store TOKENs into the structure */ 200405b261ecSmrgstatic void 200505b261ecSmrgSetIconDirectory (char *path) 200605b261ecSmrg{ 200705b261ecSmrg strncpy (pref.iconDirectory, path, PATH_MAX); 200805b261ecSmrg pref.iconDirectory[PATH_MAX] = 0; 200905b261ecSmrg} 201005b261ecSmrg 201105b261ecSmrgstatic void 201205b261ecSmrgSetDefaultIcon (char *fname) 201305b261ecSmrg{ 201405b261ecSmrg strncpy (pref.defaultIconName, fname, NAME_MAX); 201505b261ecSmrg pref.defaultIconName[NAME_MAX] = 0; 201605b261ecSmrg} 201705b261ecSmrg 201805b261ecSmrgstatic void 201905b261ecSmrgSetTrayIcon (char *fname) 202005b261ecSmrg{ 202105b261ecSmrg strncpy (pref.trayIconName, fname, NAME_MAX); 202205b261ecSmrg pref.trayIconName[NAME_MAX] = 0; 202305b261ecSmrg} 202405b261ecSmrg 202505b261ecSmrgstatic void 202635c4bbdfSmrgSetRootMenu (char *menuname) 202705b261ecSmrg{ 202835c4bbdfSmrg strncpy (pref.rootMenuName, menuname, MENU_MAX); 202905b261ecSmrg pref.rootMenuName[MENU_MAX] = 0; 203005b261ecSmrg} 203105b261ecSmrg 203205b261ecSmrgstatic void 203335c4bbdfSmrgSetDefaultSysMenu (char *menuname, int pos) 203405b261ecSmrg{ 203535c4bbdfSmrg strncpy (pref.defaultSysMenuName, menuname, MENU_MAX); 203605b261ecSmrg pref.defaultSysMenuName[MENU_MAX] = 0; 203705b261ecSmrg pref.defaultSysMenuPos = pos; 203805b261ecSmrg} 203905b261ecSmrg 204005b261ecSmrgstatic void 204105b261ecSmrgOpenMenu (char *menuname) 204205b261ecSmrg{ 204305b261ecSmrg if (menu.menuItem) free(menu.menuItem); 204405b261ecSmrg menu.menuItem = NULL; 204505b261ecSmrg strncpy(menu.menuName, menuname, MENU_MAX); 204605b261ecSmrg menu.menuName[MENU_MAX] = 0; 204705b261ecSmrg menu.menuItems = 0; 204805b261ecSmrg} 204905b261ecSmrg 205005b261ecSmrgstatic void 205135c4bbdfSmrgAddMenuLine (const char *text, MENUCOMMANDTYPE cmd, const char *param) 205205b261ecSmrg{ 205305b261ecSmrg if (menu.menuItem==NULL) 205435c4bbdfSmrg menu.menuItem = malloc(sizeof(MENUITEM)); 205505b261ecSmrg else 205635c4bbdfSmrg menu.menuItem = realloc(menu.menuItem, sizeof(MENUITEM)*(menu.menuItems+1)); 205705b261ecSmrg 205805b261ecSmrg strncpy (menu.menuItem[menu.menuItems].text, text, MENU_MAX); 205905b261ecSmrg menu.menuItem[menu.menuItems].text[MENU_MAX] = 0; 206005b261ecSmrg 206105b261ecSmrg menu.menuItem[menu.menuItems].cmd = cmd; 206205b261ecSmrg 206305b261ecSmrg strncpy(menu.menuItem[menu.menuItems].param, param, PARAM_MAX); 206405b261ecSmrg menu.menuItem[menu.menuItems].param[PARAM_MAX] = 0; 206505b261ecSmrg 206605b261ecSmrg menu.menuItem[menu.menuItems].commandID = 0; 206705b261ecSmrg 206805b261ecSmrg menu.menuItems++; 206905b261ecSmrg} 207005b261ecSmrg 207105b261ecSmrgstatic void 207205b261ecSmrgCloseMenu (void) 207305b261ecSmrg{ 207405b261ecSmrg if (menu.menuItem==NULL || menu.menuItems==0) 207505b261ecSmrg { 207605b261ecSmrg ErrorF("LoadPreferences: Empty menu detected\n"); 207705b261ecSmrg return; 207805b261ecSmrg } 207905b261ecSmrg 208005b261ecSmrg if (pref.menuItems) 208135c4bbdfSmrg pref.menu = realloc (pref.menu, (pref.menuItems+1)*sizeof(MENUPARSED)); 208205b261ecSmrg else 208335c4bbdfSmrg pref.menu = malloc (sizeof(MENUPARSED)); 208405b261ecSmrg 208505b261ecSmrg memcpy (pref.menu+pref.menuItems, &menu, sizeof(MENUPARSED)); 208605b261ecSmrg pref.menuItems++; 208705b261ecSmrg 208805b261ecSmrg memset (&menu, 0, sizeof(MENUPARSED)); 208905b261ecSmrg} 209005b261ecSmrg 209105b261ecSmrgstatic void 209205b261ecSmrgOpenIcons (void) 209305b261ecSmrg{ 209405b261ecSmrg if (pref.icon != NULL) { 209505b261ecSmrg ErrorF("LoadPreferences: Redefining icon mappings\n"); 209605b261ecSmrg free(pref.icon); 209705b261ecSmrg pref.icon = NULL; 209805b261ecSmrg } 209905b261ecSmrg pref.iconItems = 0; 210005b261ecSmrg} 210105b261ecSmrg 210205b261ecSmrgstatic void 210305b261ecSmrgAddIconLine (char *matchstr, char *iconfile) 210405b261ecSmrg{ 210505b261ecSmrg if (pref.icon==NULL) 210635c4bbdfSmrg pref.icon = malloc(sizeof(ICONITEM)); 210705b261ecSmrg else 210835c4bbdfSmrg pref.icon = realloc(pref.icon, sizeof(ICONITEM)*(pref.iconItems+1)); 210905b261ecSmrg 211005b261ecSmrg strncpy(pref.icon[pref.iconItems].match, matchstr, MENU_MAX); 211105b261ecSmrg pref.icon[pref.iconItems].match[MENU_MAX] = 0; 211205b261ecSmrg 211305b261ecSmrg strncpy(pref.icon[pref.iconItems].iconFile, iconfile, PATH_MAX+NAME_MAX+1); 211405b261ecSmrg pref.icon[pref.iconItems].iconFile[PATH_MAX+NAME_MAX+1] = 0; 211505b261ecSmrg 211605b261ecSmrg pref.icon[pref.iconItems].hicon = 0; 211705b261ecSmrg 211805b261ecSmrg pref.iconItems++; 211905b261ecSmrg} 212005b261ecSmrg 212105b261ecSmrgstatic void 212205b261ecSmrgCloseIcons (void) 212305b261ecSmrg{ 212405b261ecSmrg} 212505b261ecSmrg 21266747b715Smrgstatic void 21276747b715SmrgOpenStyles (void) 21286747b715Smrg{ 21296747b715Smrg if (pref.style != NULL) { 21306747b715Smrg ErrorF("LoadPreferences: Redefining window style\n"); 21316747b715Smrg free(pref.style); 21326747b715Smrg pref.style = NULL; 21336747b715Smrg } 21346747b715Smrg pref.styleItems = 0; 21356747b715Smrg} 21366747b715Smrg 21376747b715Smrgstatic void 21386747b715SmrgAddStyleLine (char *matchstr, unsigned long style) 21396747b715Smrg{ 21406747b715Smrg if (pref.style==NULL) 214135c4bbdfSmrg pref.style = malloc(sizeof(STYLEITEM)); 21426747b715Smrg else 214335c4bbdfSmrg pref.style = realloc(pref.style, sizeof(STYLEITEM)*(pref.styleItems+1)); 21446747b715Smrg 21456747b715Smrg strncpy(pref.style[pref.styleItems].match, matchstr, MENU_MAX); 21466747b715Smrg pref.style[pref.styleItems].match[MENU_MAX] = 0; 21476747b715Smrg 21486747b715Smrg pref.style[pref.styleItems].type = style; 21496747b715Smrg 21506747b715Smrg pref.styleItems++; 21516747b715Smrg} 21526747b715Smrg 21536747b715Smrgstatic void 21546747b715SmrgCloseStyles (void) 21556747b715Smrg{ 21566747b715Smrg} 21576747b715Smrg 215805b261ecSmrgstatic void 215905b261ecSmrgOpenSysMenu (void) 216005b261ecSmrg{ 216105b261ecSmrg if (pref.sysMenu != NULL) { 216205b261ecSmrg ErrorF("LoadPreferences: Redefining system menu\n"); 216305b261ecSmrg free(pref.sysMenu); 216405b261ecSmrg pref.sysMenu = NULL; 216505b261ecSmrg } 216605b261ecSmrg pref.sysMenuItems = 0; 216705b261ecSmrg} 216805b261ecSmrg 216905b261ecSmrgstatic void 217005b261ecSmrgAddSysMenuLine (char *matchstr, char *menuname, int pos) 217105b261ecSmrg{ 217205b261ecSmrg if (pref.sysMenu==NULL) 217335c4bbdfSmrg pref.sysMenu = malloc(sizeof(SYSMENUITEM)); 217405b261ecSmrg else 217535c4bbdfSmrg pref.sysMenu = realloc(pref.sysMenu, sizeof(SYSMENUITEM)*(pref.sysMenuItems+1)); 217605b261ecSmrg 217705b261ecSmrg strncpy (pref.sysMenu[pref.sysMenuItems].match, matchstr, MENU_MAX); 217805b261ecSmrg pref.sysMenu[pref.sysMenuItems].match[MENU_MAX] = 0; 217905b261ecSmrg 218005b261ecSmrg strncpy (pref.sysMenu[pref.sysMenuItems].menuName, menuname, MENU_MAX); 218105b261ecSmrg pref.sysMenu[pref.sysMenuItems].menuName[MENU_MAX] = 0; 218205b261ecSmrg 218305b261ecSmrg pref.sysMenu[pref.sysMenuItems].menuPos = pos; 218405b261ecSmrg 218505b261ecSmrg pref.sysMenuItems++; 218605b261ecSmrg} 218705b261ecSmrg 218805b261ecSmrgstatic void 218905b261ecSmrgCloseSysMenu (void) 219005b261ecSmrg{ 219105b261ecSmrg} 219205b261ecSmrg 2193