Blame src/conf_yacc.c

Packit 762fc5
/* A Bison parser, made by GNU Bison 3.0.4.  */
Packit 762fc5
Packit 762fc5
/* Bison implementation for Yacc-like parsers in C
Packit 762fc5
Packit 762fc5
   Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
Packit 762fc5
Packit 762fc5
   This program is free software: you can redistribute it and/or modify
Packit 762fc5
   it under the terms of the GNU General Public License as published by
Packit 762fc5
   the Free Software Foundation, either version 3 of the License, or
Packit 762fc5
   (at your option) any later version.
Packit 762fc5
Packit 762fc5
   This program is distributed in the hope that it will be useful,
Packit 762fc5
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 762fc5
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit 762fc5
   GNU General Public License for more details.
Packit 762fc5
Packit 762fc5
   You should have received a copy of the GNU General Public License
Packit 762fc5
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
Packit 762fc5
Packit 762fc5
/* As a special exception, you may create a larger work that contains
Packit 762fc5
   part or all of the Bison parser skeleton and distribute that work
Packit 762fc5
   under terms of your choice, so long as that work isn't itself a
Packit 762fc5
   parser generator using the skeleton or a modified version thereof
Packit 762fc5
   as a parser skeleton.  Alternatively, if you modify or redistribute
Packit 762fc5
   the parser skeleton itself, you may (at your option) remove this
Packit 762fc5
   special exception, which will cause the skeleton and the resulting
Packit 762fc5
   Bison output files to be licensed under the GNU General Public
Packit 762fc5
   License without this special exception.
Packit 762fc5
Packit 762fc5
   This special exception was added by the Free Software Foundation in
Packit 762fc5
   version 2.2 of Bison.  */
Packit 762fc5
Packit 762fc5
/* C LALR(1) parser skeleton written by Richard Stallman, by
Packit 762fc5
   simplifying the original so-called "semantic" parser.  */
Packit 762fc5
Packit 762fc5
/* All symbols defined below should begin with yy or YY, to avoid
Packit 762fc5
   infringing on user name space.  This should be done even for local
Packit 762fc5
   variables, as they might otherwise be expanded by user macros.
Packit 762fc5
   There are some unavoidable exceptions within include files to
Packit 762fc5
   define necessary library symbols; they are noted "INFRINGES ON
Packit 762fc5
   USER NAME SPACE" below.  */
Packit 762fc5
Packit 762fc5
/* Identify Bison output.  */
Packit 762fc5
#define YYBISON 1
Packit 762fc5
Packit 762fc5
/* Bison version.  */
Packit 762fc5
#define YYBISON_VERSION "3.0.4"
Packit 762fc5
Packit 762fc5
/* Skeleton name.  */
Packit 762fc5
#define YYSKELETON_NAME "yacc.c"
Packit 762fc5
Packit 762fc5
/* Pure parsers.  */
Packit 762fc5
#define YYPURE 0
Packit 762fc5
Packit 762fc5
/* Push parsers.  */
Packit 762fc5
#define YYPUSH 0
Packit 762fc5
Packit 762fc5
/* Pull parsers.  */
Packit 762fc5
#define YYPULL 1
Packit 762fc5
Packit 762fc5
Packit 762fc5
/* Substitute the variable and function names.  */
Packit 762fc5
#define yyparse         confparse
Packit 762fc5
#define yylex           conflex
Packit 762fc5
#define yyerror         conferror
Packit 762fc5
#define yydebug         confdebug
Packit 762fc5
#define yynerrs         confnerrs
Packit 762fc5
Packit 762fc5
#define yylval          conflval
Packit 762fc5
#define yychar          confchar
Packit 762fc5
Packit 762fc5
/* Copy the first part of user declarations.  */
Packit 762fc5
#line 1 "src/conf_yacc.y" /* yacc.c:339  */
Packit 762fc5
 
Packit 762fc5
Packit 762fc5
/*	
Packit 762fc5
 * Copyright (C) 1999-2006,2010-2013,2015,2016 Rami Lehti, Pablo Virolainen,
Packit 762fc5
 * Richard van den Berg, Hannes von Haugwitz
Packit 762fc5
 * $Header$
Packit 762fc5
 * This program is free software; you can redistribute it and/or
Packit 762fc5
 * modify it under the terms of the GNU General Public License as
Packit 762fc5
 * published by the Free Software Foundation; either version 2 of the
Packit 762fc5
 * License, or (at your option) any later version.
Packit 762fc5
 *
Packit 762fc5
 * This program is distributed in the hope that it will be useful, but
Packit 762fc5
 * WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 762fc5
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Packit 762fc5
 * General Public License for more details.
Packit 762fc5
 *
Packit 762fc5
 * You should have received a copy of the GNU General Public License
Packit 762fc5
 * along with this program; if not, write to the Free Software
Packit 762fc5
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
Packit 762fc5
 */
Packit 762fc5
Packit 762fc5
#include "aide.h"
Packit 762fc5
#include <stdio.h>
Packit 762fc5
#include <stdlib.h>
Packit 762fc5
#include <ctype.h>
Packit 762fc5
#include <errno.h>
Packit 762fc5
#include <string.h>
Packit 762fc5
#include "list.h"
Packit 762fc5
#include "gen_list.h"
Packit 762fc5
#include "db.h"
Packit 762fc5
#include "db_config.h"
Packit 762fc5
#include "symboltable.h"
Packit 762fc5
#include "util.h"
Packit 762fc5
#include "commandconf.h"
Packit 762fc5
Packit 762fc5
DB_ATTR_TYPE retval=0;
Packit 762fc5
extern int conflex();
Packit 762fc5
void conferror(const char*);
Packit 762fc5
Packit 762fc5
extern char *conftext;
Packit 762fc5
extern long conf_lineno;
Packit 762fc5
Packit 762fc5
Packit 762fc5
Packit 762fc5
#line 119 "src/conf_yacc.c" /* yacc.c:339  */
Packit 762fc5
Packit 762fc5
# ifndef YY_NULLPTR
Packit 762fc5
#  if defined __cplusplus && 201103L <= __cplusplus
Packit 762fc5
#   define YY_NULLPTR nullptr
Packit 762fc5
#  else
Packit 762fc5
#   define YY_NULLPTR 0
Packit 762fc5
#  endif
Packit 762fc5
# endif
Packit 762fc5
Packit 762fc5
/* Enabling verbose error messages.  */
Packit 762fc5
#ifdef YYERROR_VERBOSE
Packit 762fc5
# undef YYERROR_VERBOSE
Packit 762fc5
# define YYERROR_VERBOSE 1
Packit 762fc5
#else
Packit 762fc5
# define YYERROR_VERBOSE 0
Packit 762fc5
#endif
Packit 762fc5
Packit 762fc5
/* In a future release of Bison, this section will be replaced
Packit 762fc5
   by #include "conf_yacc.h".  */
Packit 762fc5
#ifndef YY_CONF_SRC_CONF_YACC_H_INCLUDED
Packit 762fc5
# define YY_CONF_SRC_CONF_YACC_H_INCLUDED
Packit 762fc5
/* Debug traces.  */
Packit 762fc5
#ifndef YYDEBUG
Packit 762fc5
# define YYDEBUG 0
Packit 762fc5
#endif
Packit 762fc5
#if YYDEBUG
Packit 762fc5
extern int confdebug;
Packit 762fc5
#endif
Packit 762fc5
Packit 762fc5
/* Token type.  */
Packit 762fc5
#ifndef YYTOKENTYPE
Packit 762fc5
# define YYTOKENTYPE
Packit 762fc5
  enum yytokentype
Packit 762fc5
  {
Packit 762fc5
    TDEFINE = 258,
Packit 762fc5
    TUNDEF = 259,
Packit 762fc5
    TIFDEF = 260,
Packit 762fc5
    TIFNDEF = 261,
Packit 762fc5
    TIFNHOST = 262,
Packit 762fc5
    TIFHOST = 263,
Packit 762fc5
    TELSE = 264,
Packit 762fc5
    TENDIF = 265,
Packit 762fc5
    TINCLUDE = 266,
Packit 762fc5
    TBEGIN_CONFIG = 267,
Packit 762fc5
    TEND_CONFIG = 268,
Packit 762fc5
    TBEGIN_DB = 269,
Packit 762fc5
    TEND_DB = 270,
Packit 762fc5
    TEND_DBNOMD = 271,
Packit 762fc5
    TID = 272,
Packit 762fc5
    TSTRING = 273,
Packit 762fc5
    TACLNOSYMLINKFOLLOW = 274,
Packit 762fc5
    TWARNDEADSYMLINKS = 275,
Packit 762fc5
    TGROUPED = 276,
Packit 762fc5
    TSUMMARIZECHANGES = 277,
Packit 762fc5
    TNEWLINE = 278,
Packit 762fc5
    TVERBOSE = 279,
Packit 762fc5
    TDATABASEADDMETADATA = 280,
Packit 762fc5
    TREPORTDETAILEDINIT = 281,
Packit 762fc5
    TREPORTBASE16 = 282,
Packit 762fc5
    TREPORTQUIET = 283,
Packit 762fc5
    TREPORTIGNOREE2FSATTRS = 284,
Packit 762fc5
    TCONFIG_FILE = 285,
Packit 762fc5
    TDATABASE = 286,
Packit 762fc5
    TDATABASE_OUT = 287,
Packit 762fc5
    TDATABASE_NEW = 288,
Packit 762fc5
    TDATABASE_ATTRS = 289,
Packit 762fc5
    TREPORT_URL = 290,
Packit 762fc5
    TGZIPDBOUT = 291,
Packit 762fc5
    TROOT_PREFIX = 292,
Packit 762fc5
    TUMASK = 293,
Packit 762fc5
    TTRUE = 294,
Packit 762fc5
    TFALSE = 295,
Packit 762fc5
    TRECSTOP = 296,
Packit 762fc5
    TCONFIG_VERSION = 297,
Packit 762fc5
    TSELRXRULE = 298,
Packit 762fc5
    TEQURXRULE = 299,
Packit 762fc5
    TNEGRXRULE = 300,
Packit 762fc5
    TRIGHTS = 301,
Packit 762fc5
    TUSER = 302,
Packit 762fc5
    TGROUP = 303,
Packit 762fc5
    TINODE = 304,
Packit 762fc5
    TLINKCOUNT = 305,
Packit 762fc5
    TFTYPE = 306,
Packit 762fc5
    TSIZE = 307,
Packit 762fc5
    TGROWINGSIZE = 308,
Packit 762fc5
    TATIME = 309,
Packit 762fc5
    TCTIME = 310,
Packit 762fc5
    TMTIME = 311,
Packit 762fc5
    TACL = 312,
Packit 762fc5
    TXATTRS = 313,
Packit 762fc5
    TSELINUX = 314,
Packit 762fc5
    TE2FSATTRS = 315,
Packit 762fc5
    TTIGER = 316,
Packit 762fc5
    TSHA1 = 317,
Packit 762fc5
    TRMD160 = 318,
Packit 762fc5
    TMD2 = 319,
Packit 762fc5
    TMD4 = 320,
Packit 762fc5
    TMD5 = 321,
Packit 762fc5
    TSHA256 = 322,
Packit 762fc5
    TSHA512 = 323,
Packit 762fc5
    TWHIRLPOOL = 324,
Packit 762fc5
    TL = 325,
Packit 762fc5
    TR = 326,
Packit 762fc5
    TGZIPHEADER = 327,
Packit 762fc5
    TDBSPEC = 328,
Packit 762fc5
    TUNKNOWN = 329,
Packit 762fc5
    TNAME = 330,
Packit 762fc5
    TERROR = 331,
Packit 762fc5
    TEOF = 332
Packit 762fc5
  };
Packit 762fc5
#endif
Packit 762fc5
/* Tokens.  */
Packit 762fc5
#define TDEFINE 258
Packit 762fc5
#define TUNDEF 259
Packit 762fc5
#define TIFDEF 260
Packit 762fc5
#define TIFNDEF 261
Packit 762fc5
#define TIFNHOST 262
Packit 762fc5
#define TIFHOST 263
Packit 762fc5
#define TELSE 264
Packit 762fc5
#define TENDIF 265
Packit 762fc5
#define TINCLUDE 266
Packit 762fc5
#define TBEGIN_CONFIG 267
Packit 762fc5
#define TEND_CONFIG 268
Packit 762fc5
#define TBEGIN_DB 269
Packit 762fc5
#define TEND_DB 270
Packit 762fc5
#define TEND_DBNOMD 271
Packit 762fc5
#define TID 272
Packit 762fc5
#define TSTRING 273
Packit 762fc5
#define TACLNOSYMLINKFOLLOW 274
Packit 762fc5
#define TWARNDEADSYMLINKS 275
Packit 762fc5
#define TGROUPED 276
Packit 762fc5
#define TSUMMARIZECHANGES 277
Packit 762fc5
#define TNEWLINE 278
Packit 762fc5
#define TVERBOSE 279
Packit 762fc5
#define TDATABASEADDMETADATA 280
Packit 762fc5
#define TREPORTDETAILEDINIT 281
Packit 762fc5
#define TREPORTBASE16 282
Packit 762fc5
#define TREPORTQUIET 283
Packit 762fc5
#define TREPORTIGNOREE2FSATTRS 284
Packit 762fc5
#define TCONFIG_FILE 285
Packit 762fc5
#define TDATABASE 286
Packit 762fc5
#define TDATABASE_OUT 287
Packit 762fc5
#define TDATABASE_NEW 288
Packit 762fc5
#define TDATABASE_ATTRS 289
Packit 762fc5
#define TREPORT_URL 290
Packit 762fc5
#define TGZIPDBOUT 291
Packit 762fc5
#define TROOT_PREFIX 292
Packit 762fc5
#define TUMASK 293
Packit 762fc5
#define TTRUE 294
Packit 762fc5
#define TFALSE 295
Packit 762fc5
#define TRECSTOP 296
Packit 762fc5
#define TCONFIG_VERSION 297
Packit 762fc5
#define TSELRXRULE 298
Packit 762fc5
#define TEQURXRULE 299
Packit 762fc5
#define TNEGRXRULE 300
Packit 762fc5
#define TRIGHTS 301
Packit 762fc5
#define TUSER 302
Packit 762fc5
#define TGROUP 303
Packit 762fc5
#define TINODE 304
Packit 762fc5
#define TLINKCOUNT 305
Packit 762fc5
#define TFTYPE 306
Packit 762fc5
#define TSIZE 307
Packit 762fc5
#define TGROWINGSIZE 308
Packit 762fc5
#define TATIME 309
Packit 762fc5
#define TCTIME 310
Packit 762fc5
#define TMTIME 311
Packit 762fc5
#define TACL 312
Packit 762fc5
#define TXATTRS 313
Packit 762fc5
#define TSELINUX 314
Packit 762fc5
#define TE2FSATTRS 315
Packit 762fc5
#define TTIGER 316
Packit 762fc5
#define TSHA1 317
Packit 762fc5
#define TRMD160 318
Packit 762fc5
#define TMD2 319
Packit 762fc5
#define TMD4 320
Packit 762fc5
#define TMD5 321
Packit 762fc5
#define TSHA256 322
Packit 762fc5
#define TSHA512 323
Packit 762fc5
#define TWHIRLPOOL 324
Packit 762fc5
#define TL 325
Packit 762fc5
#define TR 326
Packit 762fc5
#define TGZIPHEADER 327
Packit 762fc5
#define TDBSPEC 328
Packit 762fc5
#define TUNKNOWN 329
Packit 762fc5
#define TNAME 330
Packit 762fc5
#define TERROR 331
Packit 762fc5
#define TEOF 332
Packit 762fc5
Packit 762fc5
/* Value type.  */
Packit 762fc5
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
Packit 762fc5
Packit 762fc5
union YYSTYPE
Packit 762fc5
{
Packit 762fc5
#line 45 "src/conf_yacc.y" /* yacc.c:355  */
Packit 762fc5
Packit 762fc5
  char* s;
Packit 762fc5
  DB_ATTR_TYPE i;
Packit 762fc5
  RESTRICTION_TYPE r;
Packit 762fc5
Packit 762fc5
#line 319 "src/conf_yacc.c" /* yacc.c:355  */
Packit 762fc5
};
Packit 762fc5
Packit 762fc5
typedef union YYSTYPE YYSTYPE;
Packit 762fc5
# define YYSTYPE_IS_TRIVIAL 1
Packit 762fc5
# define YYSTYPE_IS_DECLARED 1
Packit 762fc5
#endif
Packit 762fc5
Packit 762fc5
Packit 762fc5
extern YYSTYPE conflval;
Packit 762fc5
Packit 762fc5
int confparse (void);
Packit 762fc5
Packit 762fc5
#endif /* !YY_CONF_SRC_CONF_YACC_H_INCLUDED  */
Packit 762fc5
Packit 762fc5
/* Copy the second part of user declarations.  */
Packit 762fc5
Packit 762fc5
#line 336 "src/conf_yacc.c" /* yacc.c:358  */
Packit 762fc5
Packit 762fc5
#ifdef short
Packit 762fc5
# undef short
Packit 762fc5
#endif
Packit 762fc5
Packit 762fc5
#ifdef YYTYPE_UINT8
Packit 762fc5
typedef YYTYPE_UINT8 yytype_uint8;
Packit 762fc5
#else
Packit 762fc5
typedef unsigned char yytype_uint8;
Packit 762fc5
#endif
Packit 762fc5
Packit 762fc5
#ifdef YYTYPE_INT8
Packit 762fc5
typedef YYTYPE_INT8 yytype_int8;
Packit 762fc5
#else
Packit 762fc5
typedef signed char yytype_int8;
Packit 762fc5
#endif
Packit 762fc5
Packit 762fc5
#ifdef YYTYPE_UINT16
Packit 762fc5
typedef YYTYPE_UINT16 yytype_uint16;
Packit 762fc5
#else
Packit 762fc5
typedef unsigned short int yytype_uint16;
Packit 762fc5
#endif
Packit 762fc5
Packit 762fc5
#ifdef YYTYPE_INT16
Packit 762fc5
typedef YYTYPE_INT16 yytype_int16;
Packit 762fc5
#else
Packit 762fc5
typedef short int yytype_int16;
Packit 762fc5
#endif
Packit 762fc5
Packit 762fc5
#ifndef YYSIZE_T
Packit 762fc5
# ifdef __SIZE_TYPE__
Packit 762fc5
#  define YYSIZE_T __SIZE_TYPE__
Packit 762fc5
# elif defined size_t
Packit 762fc5
#  define YYSIZE_T size_t
Packit 762fc5
# elif ! defined YYSIZE_T
Packit 762fc5
#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
Packit 762fc5
#  define YYSIZE_T size_t
Packit 762fc5
# else
Packit 762fc5
#  define YYSIZE_T unsigned int
Packit 762fc5
# endif
Packit 762fc5
#endif
Packit 762fc5
Packit 762fc5
#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
Packit 762fc5
Packit 762fc5
#ifndef YY_
Packit 762fc5
# if defined YYENABLE_NLS && YYENABLE_NLS
Packit 762fc5
#  if ENABLE_NLS
Packit 762fc5
#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
Packit 762fc5
#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
Packit 762fc5
#  endif
Packit 762fc5
# endif
Packit 762fc5
# ifndef YY_
Packit 762fc5
#  define YY_(Msgid) Msgid
Packit 762fc5
# endif
Packit 762fc5
#endif
Packit 762fc5
Packit 762fc5
#ifndef YY_ATTRIBUTE
Packit 762fc5
# if (defined __GNUC__                                               \
Packit 762fc5
      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
Packit 762fc5
     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
Packit 762fc5
#  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
Packit 762fc5
# else
Packit 762fc5
#  define YY_ATTRIBUTE(Spec) /* empty */
Packit 762fc5
# endif
Packit 762fc5
#endif
Packit 762fc5
Packit 762fc5
#ifndef YY_ATTRIBUTE_PURE
Packit 762fc5
# define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
Packit 762fc5
#endif
Packit 762fc5
Packit 762fc5
#ifndef YY_ATTRIBUTE_UNUSED
Packit 762fc5
# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
Packit 762fc5
#endif
Packit 762fc5
Packit 762fc5
#if !defined _Noreturn \
Packit 762fc5
     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
Packit 762fc5
# if defined _MSC_VER && 1200 <= _MSC_VER
Packit 762fc5
#  define _Noreturn __declspec (noreturn)
Packit 762fc5
# else
Packit 762fc5
#  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
Packit 762fc5
# endif
Packit 762fc5
#endif
Packit 762fc5
Packit 762fc5
/* Suppress unused-variable warnings by "using" E.  */
Packit 762fc5
#if ! defined lint || defined __GNUC__
Packit 762fc5
# define YYUSE(E) ((void) (E))
Packit 762fc5
#else
Packit 762fc5
# define YYUSE(E) /* empty */
Packit 762fc5
#endif
Packit 762fc5
Packit 762fc5
#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
Packit 762fc5
/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
Packit 762fc5
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
Packit 762fc5
    _Pragma ("GCC diagnostic push") \
Packit 762fc5
    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
Packit 762fc5
    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
Packit 762fc5
# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
Packit 762fc5
    _Pragma ("GCC diagnostic pop")
Packit 762fc5
#else
Packit 762fc5
# define YY_INITIAL_VALUE(Value) Value
Packit 762fc5
#endif
Packit 762fc5
#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
Packit 762fc5
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
Packit 762fc5
# define YY_IGNORE_MAYBE_UNINITIALIZED_END
Packit 762fc5
#endif
Packit 762fc5
#ifndef YY_INITIAL_VALUE
Packit 762fc5
# define YY_INITIAL_VALUE(Value) /* Nothing. */
Packit 762fc5
#endif
Packit 762fc5
Packit 762fc5
Packit 762fc5
#if ! defined yyoverflow || YYERROR_VERBOSE
Packit 762fc5
Packit 762fc5
/* The parser invokes alloca or malloc; define the necessary symbols.  */
Packit 762fc5
Packit 762fc5
# ifdef YYSTACK_USE_ALLOCA
Packit 762fc5
#  if YYSTACK_USE_ALLOCA
Packit 762fc5
#   ifdef __GNUC__
Packit 762fc5
#    define YYSTACK_ALLOC __builtin_alloca
Packit 762fc5
#   elif defined __BUILTIN_VA_ARG_INCR
Packit 762fc5
#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
Packit 762fc5
#   elif defined _AIX
Packit 762fc5
#    define YYSTACK_ALLOC __alloca
Packit 762fc5
#   elif defined _MSC_VER
Packit 762fc5
#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
Packit 762fc5
#    define alloca _alloca
Packit 762fc5
#   else
Packit 762fc5
#    define YYSTACK_ALLOC alloca
Packit 762fc5
#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
Packit 762fc5
#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
Packit 762fc5
      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
Packit 762fc5
#     ifndef EXIT_SUCCESS
Packit 762fc5
#      define EXIT_SUCCESS 0
Packit 762fc5
#     endif
Packit 762fc5
#    endif
Packit 762fc5
#   endif
Packit 762fc5
#  endif
Packit 762fc5
# endif
Packit 762fc5
Packit 762fc5
# ifdef YYSTACK_ALLOC
Packit 762fc5
   /* Pacify GCC's 'empty if-body' warning.  */
Packit 762fc5
#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
Packit 762fc5
#  ifndef YYSTACK_ALLOC_MAXIMUM
Packit 762fc5
    /* The OS might guarantee only one guard page at the bottom of the stack,
Packit 762fc5
       and a page size can be as small as 4096 bytes.  So we cannot safely
Packit 762fc5
       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
Packit 762fc5
       to allow for a few compiler-allocated temporary stack slots.  */
Packit 762fc5
#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
Packit 762fc5
#  endif
Packit 762fc5
# else
Packit 762fc5
#  define YYSTACK_ALLOC YYMALLOC
Packit 762fc5
#  define YYSTACK_FREE YYFREE
Packit 762fc5
#  ifndef YYSTACK_ALLOC_MAXIMUM
Packit 762fc5
#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
Packit 762fc5
#  endif
Packit 762fc5
#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
Packit 762fc5
       && ! ((defined YYMALLOC || defined malloc) \
Packit 762fc5
             && (defined YYFREE || defined free)))
Packit 762fc5
#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
Packit 762fc5
#   ifndef EXIT_SUCCESS
Packit 762fc5
#    define EXIT_SUCCESS 0
Packit 762fc5
#   endif
Packit 762fc5
#  endif
Packit 762fc5
#  ifndef YYMALLOC
Packit 762fc5
#   define YYMALLOC malloc
Packit 762fc5
#   if ! defined malloc && ! defined EXIT_SUCCESS
Packit 762fc5
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
Packit 762fc5
#   endif
Packit 762fc5
#  endif
Packit 762fc5
#  ifndef YYFREE
Packit 762fc5
#   define YYFREE free
Packit 762fc5
#   if ! defined free && ! defined EXIT_SUCCESS
Packit 762fc5
void free (void *); /* INFRINGES ON USER NAME SPACE */
Packit 762fc5
#   endif
Packit 762fc5
#  endif
Packit 762fc5
# endif
Packit 762fc5
#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
Packit 762fc5
Packit 762fc5
Packit 762fc5
#if (! defined yyoverflow \
Packit 762fc5
     && (! defined __cplusplus \
Packit 762fc5
         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
Packit 762fc5
Packit 762fc5
/* A type that is properly aligned for any stack member.  */
Packit 762fc5
union yyalloc
Packit 762fc5
{
Packit 762fc5
  yytype_int16 yyss_alloc;
Packit 762fc5
  YYSTYPE yyvs_alloc;
Packit 762fc5
};
Packit 762fc5
Packit 762fc5
/* The size of the maximum gap between one aligned stack and the next.  */
Packit 762fc5
# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
Packit 762fc5
Packit 762fc5
/* The size of an array large to enough to hold all stacks, each with
Packit 762fc5
   N elements.  */
Packit 762fc5
# define YYSTACK_BYTES(N) \
Packit 762fc5
     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
Packit 762fc5
      + YYSTACK_GAP_MAXIMUM)
Packit 762fc5
Packit 762fc5
# define YYCOPY_NEEDED 1
Packit 762fc5
Packit 762fc5
/* Relocate STACK from its old location to the new one.  The
Packit 762fc5
   local variables YYSIZE and YYSTACKSIZE give the old and new number of
Packit 762fc5
   elements in the stack, and YYPTR gives the new location of the
Packit 762fc5
   stack.  Advance YYPTR to a properly aligned location for the next
Packit 762fc5
   stack.  */
Packit 762fc5
# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
Packit 762fc5
    do                                                                  \
Packit 762fc5
      {                                                                 \
Packit 762fc5
        YYSIZE_T yynewbytes;                                            \
Packit 762fc5
        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
Packit 762fc5
        Stack = &yyptr->Stack_alloc;                                    \
Packit 762fc5
        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
Packit 762fc5
        yyptr += yynewbytes / sizeof (*yyptr);                          \
Packit 762fc5
      }                                                                 \
Packit 762fc5
    while (0)
Packit 762fc5
Packit 762fc5
#endif
Packit 762fc5
Packit 762fc5
#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
Packit 762fc5
/* Copy COUNT objects from SRC to DST.  The source and destination do
Packit 762fc5
   not overlap.  */
Packit 762fc5
# ifndef YYCOPY
Packit 762fc5
#  if defined __GNUC__ && 1 < __GNUC__
Packit 762fc5
#   define YYCOPY(Dst, Src, Count) \
Packit 762fc5
      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
Packit 762fc5
#  else
Packit 762fc5
#   define YYCOPY(Dst, Src, Count)              \
Packit 762fc5
      do                                        \
Packit 762fc5
        {                                       \
Packit 762fc5
          YYSIZE_T yyi;                         \
Packit 762fc5
          for (yyi = 0; yyi < (Count); yyi++)   \
Packit 762fc5
            (Dst)[yyi] = (Src)[yyi];            \
Packit 762fc5
        }                                       \
Packit 762fc5
      while (0)
Packit 762fc5
#  endif
Packit 762fc5
# endif
Packit 762fc5
#endif /* !YYCOPY_NEEDED */
Packit 762fc5
Packit 762fc5
/* YYFINAL -- State number of the termination state.  */
Packit 762fc5
#define YYFINAL  2
Packit 762fc5
/* YYLAST -- Last index in YYTABLE.  */
Packit 762fc5
#define YYLAST   315
Packit 762fc5
Packit 762fc5
/* YYNTOKENS -- Number of terminals.  */
Packit 762fc5
#define YYNTOKENS  82
Packit 762fc5
/* YYNNTS -- Number of nonterminals.  */
Packit 762fc5
#define YYNNTS  45
Packit 762fc5
/* YYNRULES -- Number of rules.  */
Packit 762fc5
#define YYNRULES  123
Packit 762fc5
/* YYNSTATES -- Number of states.  */
Packit 762fc5
#define YYNSTATES  174
Packit 762fc5
Packit 762fc5
/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
Packit 762fc5
   by yylex, with out-of-bounds checking.  */
Packit 762fc5
#define YYUNDEFTOK  2
Packit 762fc5
#define YYMAXUTOK   332
Packit 762fc5
Packit 762fc5
#define YYTRANSLATE(YYX)                                                \
Packit 762fc5
  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
Packit 762fc5
Packit 762fc5
/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
Packit 762fc5
   as returned by yylex, without out-of-bounds checking.  */
Packit 762fc5
static const yytype_uint8 yytranslate[] =
Packit 762fc5
{
Packit 762fc5
       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit 762fc5
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit 762fc5
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit 762fc5
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit 762fc5
       2,     2,     2,    79,    81,    80,     2,     2,     2,     2,
Packit 762fc5
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit 762fc5
       2,    19,     2,     2,     2,     2,     2,     2,     2,     2,
Packit 762fc5
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit 762fc5
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit 762fc5
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit 762fc5
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit 762fc5
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit 762fc5
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit 762fc5
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit 762fc5
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit 762fc5
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit 762fc5
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit 762fc5
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit 762fc5
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit 762fc5
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit 762fc5
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit 762fc5
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit 762fc5
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit 762fc5
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit 762fc5
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit 762fc5
       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
Packit 762fc5
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
Packit 762fc5
      15,    16,    17,    18,    20,    21,    22,    23,    24,    25,
Packit 762fc5
      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
Packit 762fc5
      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
Packit 762fc5
      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
Packit 762fc5
      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
Packit 762fc5
      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
Packit 762fc5
      76,    77,    78
Packit 762fc5
};
Packit 762fc5
Packit 762fc5
#if YYDEBUG
Packit 762fc5
  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
Packit 762fc5
static const yytype_uint16 yyrline[] =
Packit 762fc5
{
Packit 762fc5
       0,   157,   157,   157,   159,   159,   159,   159,   159,   160,
Packit 762fc5
     160,   160,   160,   161,   161,   161,   161,   161,   161,   161,
Packit 762fc5
     161,   162,   162,   162,   162,   162,   162,   163,   163,   163,
Packit 762fc5
     163,   164,   164,   164,   164,   165,   169,   170,   174,   178,
Packit 762fc5
     181,   186,   189,   192,   195,   198,   201,   204,   205,   210,
Packit 762fc5
     211,   221,   222,   223,   225,   226,   227,   237,   237,   238,
Packit 762fc5
     238,   239,   239,   239,   240,   240,   241,   241,   241,   242,
Packit 762fc5
     242,   242,   243,   243,   245,   245,   245,   246,   246,   246,
Packit 762fc5
     247,   249,   251,   253,   253,   260,   260,   267,   267,   274,
Packit 762fc5
     274,   281,   282,   284,   286,   288,   290,   292,   294,   296,
Packit 762fc5
     305,   312,   316,   324,   332,   336,   340,   344,   348,   352,
Packit 762fc5
     356,   364,   368,   372,   376,   380,   384,   386,   390,   394,
Packit 762fc5
     398,   405,   411,   416
Packit 762fc5
};
Packit 762fc5
#endif
Packit 762fc5
Packit 762fc5
#if YYDEBUG || YYERROR_VERBOSE || 0
Packit 762fc5
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
Packit 762fc5
   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
Packit 762fc5
static const char *const yytname[] =
Packit 762fc5
{
Packit 762fc5
  "$end", "error", "$undefined", "TDEFINE", "TUNDEF", "TIFDEF", "TIFNDEF",
Packit 762fc5
  "TIFNHOST", "TIFHOST", "TELSE", "TENDIF", "TINCLUDE", "TBEGIN_CONFIG",
Packit 762fc5
  "TEND_CONFIG", "TBEGIN_DB", "TEND_DB", "TEND_DBNOMD", "TID", "TSTRING",
Packit 762fc5
  "'='", "TACLNOSYMLINKFOLLOW", "TWARNDEADSYMLINKS", "TGROUPED",
Packit 762fc5
  "TSUMMARIZECHANGES", "TNEWLINE", "TVERBOSE", "TDATABASEADDMETADATA",
Packit 762fc5
  "TREPORTDETAILEDINIT", "TREPORTBASE16", "TREPORTQUIET",
Packit 762fc5
  "TREPORTIGNOREE2FSATTRS", "TCONFIG_FILE", "TDATABASE", "TDATABASE_OUT",
Packit 762fc5
  "TDATABASE_NEW", "TDATABASE_ATTRS", "TREPORT_URL", "TGZIPDBOUT",
Packit 762fc5
  "TROOT_PREFIX", "TUMASK", "TTRUE", "TFALSE", "TRECSTOP",
Packit 762fc5
  "TCONFIG_VERSION", "TSELRXRULE", "TEQURXRULE", "TNEGRXRULE", "TRIGHTS",
Packit 762fc5
  "TUSER", "TGROUP", "TINODE", "TLINKCOUNT", "TFTYPE", "TSIZE",
Packit 762fc5
  "TGROWINGSIZE", "TATIME", "TCTIME", "TMTIME", "TACL", "TXATTRS",
Packit 762fc5
  "TSELINUX", "TE2FSATTRS", "TTIGER", "TSHA1", "TRMD160", "TMD2", "TMD4",
Packit 762fc5
  "TMD5", "TSHA256", "TSHA512", "TWHIRLPOOL", "TL", "TR", "TGZIPHEADER",
Packit 762fc5
  "TDBSPEC", "TUNKNOWN", "TNAME", "TERROR", "TEOF", "'+'", "'-'", "','",
Packit 762fc5
  "$accept", "lines", "line", "rule", "equrule", "negrule", "newlineoreof",
Packit 762fc5
  "restriction", "expr", "primary", "other", "hash", "definestmt",
Packit 762fc5
  "undefstmt", "ifdefstmt", "$@1", "ifndefstmt", "$@2", "ifhoststmt",
Packit 762fc5
  "$@3", "ifnhoststmt", "$@4", "ifstmtlist", "groupdef", "db_in", "db_out",
Packit 762fc5
  "db_new", "verbose", "report", "db_attrs", "beginconfigstmt",
Packit 762fc5
  "endconfigstmt", "acl_no_symlink_follow", "warn_dead_symlinks",
Packit 762fc5
  "database_add_metadata", "report_detailed_init",
Packit 762fc5
  "report_ignore_e2fsattrs", "report_base16", "report_quiet", "grouped",
Packit 762fc5
  "root_prefix", "summarize_changes", "gzipdbout", "recursion_stopper",
Packit 762fc5
  "config_version", YY_NULLPTR
Packit 762fc5
};
Packit 762fc5
#endif
Packit 762fc5
Packit 762fc5
# ifdef YYPRINT
Packit 762fc5
/* YYTOKNUM[NUM] -- (External) token number corresponding to the
Packit 762fc5
   (internal) symbol number NUM (which must be that of a token).  */
Packit 762fc5
static const yytype_uint16 yytoknum[] =
Packit 762fc5
{
Packit 762fc5
       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
Packit 762fc5
     265,   266,   267,   268,   269,   270,   271,   272,   273,    61,
Packit 762fc5
     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
Packit 762fc5
     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
Packit 762fc5
     294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
Packit 762fc5
     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
Packit 762fc5
     314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
Packit 762fc5
     324,   325,   326,   327,   328,   329,   330,   331,   332,    43,
Packit 762fc5
      45,    44
Packit 762fc5
};
Packit 762fc5
# endif
Packit 762fc5
Packit 762fc5
#define YYPACT_NINF -135
Packit 762fc5
Packit 762fc5
#define yypact_value_is_default(Yystate) \
Packit 762fc5
  (!!((Yystate) == (-135)))
Packit 762fc5
Packit 762fc5
#define YYTABLE_NINF -57
Packit 762fc5
Packit 762fc5
#define yytable_value_is_error(Yytable_value) \
Packit 762fc5
  0
Packit 762fc5
Packit 762fc5
  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
Packit 762fc5
     STATE-NUM.  */
Packit 762fc5
static const yytype_int16 yypact[] =
Packit 762fc5
{
Packit 762fc5
    -135,     5,  -135,  -135,   -11,    64,    68,    77,    79,    84,
Packit 762fc5
      94,  -135,  -135,  -135,   111,   -19,    31,    40,    44,  -135,
Packit 762fc5
     117,    48,    51,    67,    69,   118,   120,   132,   148,   196,
Packit 762fc5
     149,    74,   150,   151,   153,   243,   243,    28,  -135,  -135,
Packit 762fc5
    -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,
Packit 762fc5
    -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,
Packit 762fc5
    -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,
Packit 762fc5
    -135,  -135,   154,  -135,  -135,  -135,  -135,  -135,  -135,   196,
Packit 762fc5
    -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,
Packit 762fc5
    -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,
Packit 762fc5
    -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,
Packit 762fc5
    -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,
Packit 762fc5
    -135,  -135,  -135,  -135,  -135,  -135,    37,  -135,  -135,  -135,
Packit 762fc5
    -135,  -135,  -135,  -135,  -135,  -135,    20,     6,    80,     6,
Packit 762fc5
      80,  -135,  -135,  -135,  -135,    12,  -135,  -135,  -135,  -135,
Packit 762fc5
    -135,    37,   196,   196,   155,    80,  -135,    80,  -135,  -135,
Packit 762fc5
     119,  -135,  -135,  -135,  -135,  -135,  -135,    93,  -135,  -135,
Packit 762fc5
    -135,  -135,   195,  -135
Packit 762fc5
};
Packit 762fc5
Packit 762fc5
  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
Packit 762fc5
     Performed when YYTABLE does not specify something else to do.  Zero
Packit 762fc5
     means the default is an error.  */
Packit 762fc5
static const yytype_uint8 yydefact[] =
Packit 762fc5
{
Packit 762fc5
       3,     0,     1,    40,     0,     0,     0,     0,     0,     0,
Packit 762fc5
       0,   101,    38,    39,     0,     0,     0,     0,     0,    36,
Packit 762fc5
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
Packit 762fc5
       0,     0,     0,     0,     0,     0,     0,     0,    37,    35,
Packit 762fc5
       2,     4,     5,     6,     7,     8,     9,    10,    11,    12,
Packit 762fc5
      13,    14,    15,    16,    18,    22,    17,    33,    34,    32,
Packit 762fc5
      29,    21,    19,    27,    25,    26,    30,    24,    31,    23,
Packit 762fc5
      28,    20,     0,    82,    83,    85,    89,    87,   100,     0,
Packit 762fc5
     102,   103,   104,   105,   115,   117,   118,   119,    97,   106,
Packit 762fc5
     107,   108,   109,   111,   112,   113,   114,   110,    94,    95,
Packit 762fc5
      96,    56,    57,    58,    59,    60,    61,    62,    63,    64,
Packit 762fc5
      65,    66,    67,    70,    71,    72,    73,    74,    75,    76,
Packit 762fc5
      77,    78,    79,    80,    68,    69,    99,    53,    55,    54,
Packit 762fc5
      98,   120,   121,   116,   122,   123,    50,     0,     0,     0,
Packit 762fc5
       0,    50,    47,    48,    43,     0,    81,     3,     3,     3,
Packit 762fc5
       3,    93,     0,     0,     0,     0,    41,     0,    42,    46,
Packit 762fc5
       0,    84,    86,    90,    88,    51,    52,    49,    44,    45,
Packit 762fc5
       3,    91,     0,    92
Packit 762fc5
};
Packit 762fc5
Packit 762fc5
  /* YYPGOTO[NTERM-NUM].  */
Packit 762fc5
static const yytype_int16 yypgoto[] =
Packit 762fc5
{
Packit 762fc5
    -135,     0,  -135,  -135,  -135,  -135,   -44,   -33,   -34,  -135,
Packit 762fc5
    -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,
Packit 762fc5
    -135,  -135,  -134,  -135,  -135,  -135,  -135,  -135,  -135,  -135,
Packit 762fc5
    -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,
Packit 762fc5
    -135,  -135,  -135,  -135,  -135
Packit 762fc5
};
Packit 762fc5
Packit 762fc5
  /* YYDEFGOTO[NTERM-NUM].  */
Packit 762fc5
static const yytype_int16 yydefgoto[] =
Packit 762fc5
{
Packit 762fc5
      -1,   160,    40,    41,    42,    43,   144,   137,   126,   127,
Packit 762fc5
     128,   129,    44,    45,    46,   147,    47,   148,    48,   150,
Packit 762fc5
      49,   149,   161,    50,    51,    52,    53,    54,    55,    56,
Packit 762fc5
      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
Packit 762fc5
      67,    68,    69,    70,    71
Packit 762fc5
};
Packit 762fc5
Packit 762fc5
  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
Packit 762fc5
     positive, shift that token.  If negative, reduce the rule whose
Packit 762fc5
     number is the opposite.  If YYTABLE_NINF, syntax error.  */
Packit 762fc5
static const yytype_int16 yytable[] =
Packit 762fc5
{
Packit 762fc5
       1,   138,   140,   139,   145,     2,     3,    72,     4,     5,
Packit 762fc5
       6,     7,     8,     9,   162,   163,   164,    10,    11,    12,
Packit 762fc5
      13,    80,    81,    14,   101,    15,    16,    17,    18,    19,
Packit 762fc5
      20,    21,    22,    23,    24,    25,   142,    26,    27,    28,
Packit 762fc5
      29,    30,    31,    32,   -56,   151,   141,    33,    34,    35,
Packit 762fc5
      36,    37,   142,   102,   103,   104,   105,   106,   107,   108,
Packit 762fc5
     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
Packit 762fc5
     119,    82,    83,   120,   121,   122,   123,   124,   125,    38,
Packit 762fc5
      84,    85,    73,    39,    86,    87,    74,   154,    89,    90,
Packit 762fc5
     143,    91,    92,   154,   156,    75,   158,    76,   -56,   -56,
Packit 762fc5
     -56,   159,    77,   155,   142,   157,   143,    93,    94,    95,
Packit 762fc5
      96,   168,    78,   169,   131,   132,   152,   153,   165,   166,
Packit 762fc5
       3,   167,     4,     5,     6,     7,     8,     9,   170,   171,
Packit 762fc5
      79,    10,    11,    12,    13,    88,    97,    14,    98,    15,
Packit 762fc5
      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
Packit 762fc5
      99,    26,    27,    28,    29,    30,    31,    32,   143,   152,
Packit 762fc5
     153,    33,    34,    35,    36,    37,   100,   130,   133,   134,
Packit 762fc5
     172,   135,   146,   141,   154,     0,     0,     0,     0,     0,
Packit 762fc5
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
Packit 762fc5
       0,     0,     0,    38,     0,     0,     3,    39,     4,     5,
Packit 762fc5
       6,     7,     8,     9,     0,   173,     0,    10,    11,    12,
Packit 762fc5
      13,     0,     0,    14,   101,    15,    16,    17,    18,    19,
Packit 762fc5
      20,    21,    22,    23,    24,    25,     0,    26,    27,    28,
Packit 762fc5
      29,    30,    31,    32,     0,     0,     0,    33,    34,    35,
Packit 762fc5
      36,    37,     0,   102,   103,   104,   105,   106,   107,   108,
Packit 762fc5
     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
Packit 762fc5
     119,   136,     0,   120,   121,   122,   123,   124,   125,    38,
Packit 762fc5
       0,     0,     0,    39,     0,     0,     0,     0,     0,     0,
Packit 762fc5
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
Packit 762fc5
     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
Packit 762fc5
     112,   113,   114,   115,   116,   117,   118,   119,     0,     0,
Packit 762fc5
     120,   121,   122,   123,   124,   125
Packit 762fc5
};
Packit 762fc5
Packit 762fc5
static const yytype_int16 yycheck[] =
Packit 762fc5
{
Packit 762fc5
       0,    35,    36,    36,    37,     0,     1,    18,     3,     4,
Packit 762fc5
       5,     6,     7,     8,   148,   149,   150,    12,    13,    14,
Packit 762fc5
      15,    40,    41,    18,    18,    20,    21,    22,    23,    24,
Packit 762fc5
      25,    26,    27,    28,    29,    30,    24,    32,    33,    34,
Packit 762fc5
      35,    36,    37,    38,    24,    79,    18,    42,    43,    44,
Packit 762fc5
      45,    46,    24,    47,    48,    49,    50,    51,    52,    53,
Packit 762fc5
      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
Packit 762fc5
      64,    40,    41,    67,    68,    69,    70,    71,    72,    74,
Packit 762fc5
      40,    41,    18,    78,    40,    41,    18,    81,    40,    41,
Packit 762fc5
      78,    40,    41,    81,   138,    18,   140,    18,    78,    79,
Packit 762fc5
      80,   145,    18,   137,    24,   139,    78,    40,    41,    40,
Packit 762fc5
      41,   155,    18,   157,    40,    41,    79,    80,   152,   153,
Packit 762fc5
       1,   154,     3,     4,     5,     6,     7,     8,     9,    10,
Packit 762fc5
      19,    12,    13,    14,    15,    18,    18,    18,    18,    20,
Packit 762fc5
      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
Packit 762fc5
      18,    32,    33,    34,    35,    36,    37,    38,    78,    79,
Packit 762fc5
      80,    42,    43,    44,    45,    46,    18,    18,    18,    18,
Packit 762fc5
     170,    18,    18,    18,    81,    -1,    -1,    -1,    -1,    -1,
Packit 762fc5
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
Packit 762fc5
      -1,    -1,    -1,    74,    -1,    -1,     1,    78,     3,     4,
Packit 762fc5
       5,     6,     7,     8,    -1,    10,    -1,    12,    13,    14,
Packit 762fc5
      15,    -1,    -1,    18,    18,    20,    21,    22,    23,    24,
Packit 762fc5
      25,    26,    27,    28,    29,    30,    -1,    32,    33,    34,
Packit 762fc5
      35,    36,    37,    38,    -1,    -1,    -1,    42,    43,    44,
Packit 762fc5
      45,    46,    -1,    47,    48,    49,    50,    51,    52,    53,
Packit 762fc5
      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
Packit 762fc5
      64,    18,    -1,    67,    68,    69,    70,    71,    72,    74,
Packit 762fc5
      -1,    -1,    -1,    78,    -1,    -1,    -1,    -1,    -1,    -1,
Packit 762fc5
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
Packit 762fc5
      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
Packit 762fc5
      57,    58,    59,    60,    61,    62,    63,    64,    -1,    -1,
Packit 762fc5
      67,    68,    69,    70,    71,    72
Packit 762fc5
};
Packit 762fc5
Packit 762fc5
  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
Packit 762fc5
     symbol of state STATE-NUM.  */
Packit 762fc5
static const yytype_uint8 yystos[] =
Packit 762fc5
{
Packit 762fc5
       0,    83,     0,     1,     3,     4,     5,     6,     7,     8,
Packit 762fc5
      12,    13,    14,    15,    18,    20,    21,    22,    23,    24,
Packit 762fc5
      25,    26,    27,    28,    29,    30,    32,    33,    34,    35,
Packit 762fc5
      36,    37,    38,    42,    43,    44,    45,    46,    74,    78,
Packit 762fc5
      84,    85,    86,    87,    94,    95,    96,    98,   100,   102,
Packit 762fc5
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
Packit 762fc5
     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
Packit 762fc5
     125,   126,    18,    18,    18,    18,    18,    18,    18,    19,
Packit 762fc5
      40,    41,    40,    41,    40,    41,    40,    41,    18,    40,
Packit 762fc5
      41,    40,    41,    40,    41,    40,    41,    18,    18,    18,
Packit 762fc5
      18,    18,    47,    48,    49,    50,    51,    52,    53,    54,
Packit 762fc5
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
Packit 762fc5
      67,    68,    69,    70,    71,    72,    90,    91,    92,    93,
Packit 762fc5
      18,    40,    41,    18,    18,    18,    18,    89,    90,    89,
Packit 762fc5
      90,    18,    24,    78,    88,    89,    18,    97,    99,   103,
Packit 762fc5
     101,    90,    79,    80,    81,    90,    88,    90,    88,    88,
Packit 762fc5
      83,   104,   104,   104,   104,    90,    90,    89,    88,    88,
Packit 762fc5
       9,    10,    83,    10
Packit 762fc5
};
Packit 762fc5
Packit 762fc5
  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
Packit 762fc5
static const yytype_uint8 yyr1[] =
Packit 762fc5
{
Packit 762fc5
       0,    82,    83,    83,    84,    84,    84,    84,    84,    84,
Packit 762fc5
      84,    84,    84,    84,    84,    84,    84,    84,    84,    84,
Packit 762fc5
      84,    84,    84,    84,    84,    84,    84,    84,    84,    84,
Packit 762fc5
      84,    84,    84,    84,    84,    84,    84,    84,    84,    84,
Packit 762fc5
      84,    85,    86,    87,    85,    86,    87,    88,    88,    89,
Packit 762fc5
      89,    90,    90,    90,    91,    91,    91,    92,    92,    92,
Packit 762fc5
      92,    92,    92,    92,    92,    92,    92,    92,    92,    92,
Packit 762fc5
      92,    92,    92,    92,    93,    93,    93,    93,    93,    93,
Packit 762fc5
      93,    94,    95,    97,    96,    99,    98,   101,   100,   103,
Packit 762fc5
     102,   104,   104,   105,   106,   107,   108,   109,   110,   111,
Packit 762fc5
     112,   113,   114,   114,   115,   115,   116,   116,   117,   117,
Packit 762fc5
     118,   119,   119,   120,   120,   121,   122,   121,   123,   123,
Packit 762fc5
     124,   124,   125,   126
Packit 762fc5
};
Packit 762fc5
Packit 762fc5
  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
Packit 762fc5
static const yytype_uint8 yyr2[] =
Packit 762fc5
{
Packit 762fc5
       0,     2,     2,     0,     1,     1,     1,     1,     1,     1,
Packit 762fc5
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
Packit 762fc5
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
Packit 762fc5
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
Packit 762fc5
       1,     3,     3,     2,     4,     4,     3,     1,     1,     3,
Packit 762fc5
       1,     3,     3,     1,     1,     1,     1,     1,     1,     1,
Packit 762fc5
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
Packit 762fc5
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
Packit 762fc5
       1,     3,     2,     0,     4,     0,     4,     0,     4,     0,
Packit 762fc5
       4,     2,     4,     3,     2,     2,     2,     2,     2,     2,
Packit 762fc5
       2,     1,     2,     2,     2,     2,     2,     2,     2,     2,
Packit 762fc5
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Packit 762fc5
       2,     2,     2,     2
Packit 762fc5
};
Packit 762fc5
Packit 762fc5
Packit 762fc5
#define yyerrok         (yyerrstatus = 0)
Packit 762fc5
#define yyclearin       (yychar = YYEMPTY)
Packit 762fc5
#define YYEMPTY         (-2)
Packit 762fc5
#define YYEOF           0
Packit 762fc5
Packit 762fc5
#define YYACCEPT        goto yyacceptlab
Packit 762fc5
#define YYABORT         goto yyabortlab
Packit 762fc5
#define YYERROR         goto yyerrorlab
Packit 762fc5
Packit 762fc5
Packit 762fc5
#define YYRECOVERING()  (!!yyerrstatus)
Packit 762fc5
Packit 762fc5
#define YYBACKUP(Token, Value)                                  \
Packit 762fc5
do                                                              \
Packit 762fc5
  if (yychar == YYEMPTY)                                        \
Packit 762fc5
    {                                                           \
Packit 762fc5
      yychar = (Token);                                         \
Packit 762fc5
      yylval = (Value);                                         \
Packit 762fc5
      YYPOPSTACK (yylen);                                       \
Packit 762fc5
      yystate = *yyssp;                                         \
Packit 762fc5
      goto yybackup;                                            \
Packit 762fc5
    }                                                           \
Packit 762fc5
  else                                                          \
Packit 762fc5
    {                                                           \
Packit 762fc5
      yyerror (YY_("syntax error: cannot back up")); \
Packit 762fc5
      YYERROR;                                                  \
Packit 762fc5
    }                                                           \
Packit 762fc5
while (0)
Packit 762fc5
Packit 762fc5
/* Error token number */
Packit 762fc5
#define YYTERROR        1
Packit 762fc5
#define YYERRCODE       256
Packit 762fc5
Packit 762fc5
Packit 762fc5
Packit 762fc5
/* Enable debugging if requested.  */
Packit 762fc5
#if YYDEBUG
Packit 762fc5
Packit 762fc5
# ifndef YYFPRINTF
Packit 762fc5
#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
Packit 762fc5
#  define YYFPRINTF fprintf
Packit 762fc5
# endif
Packit 762fc5
Packit 762fc5
# define YYDPRINTF(Args)                        \
Packit 762fc5
do {                                            \
Packit 762fc5
  if (yydebug)                                  \
Packit 762fc5
    YYFPRINTF Args;                             \
Packit 762fc5
} while (0)
Packit 762fc5
Packit 762fc5
/* This macro is provided for backward compatibility. */
Packit 762fc5
#ifndef YY_LOCATION_PRINT
Packit 762fc5
# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
Packit 762fc5
#endif
Packit 762fc5
Packit 762fc5
Packit 762fc5
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
Packit 762fc5
do {                                                                      \
Packit 762fc5
  if (yydebug)                                                            \
Packit 762fc5
    {                                                                     \
Packit 762fc5
      YYFPRINTF (stderr, "%s ", Title);                                   \
Packit 762fc5
      yy_symbol_print (stderr,                                            \
Packit 762fc5
                  Type, Value); \
Packit 762fc5
      YYFPRINTF (stderr, "\n");                                           \
Packit 762fc5
    }                                                                     \
Packit 762fc5
} while (0)
Packit 762fc5
Packit 762fc5
Packit 762fc5
/*----------------------------------------.
Packit 762fc5
| Print this symbol's value on YYOUTPUT.  |
Packit 762fc5
`----------------------------------------*/
Packit 762fc5
Packit 762fc5
static void
Packit 762fc5
yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
Packit 762fc5
{
Packit 762fc5
  FILE *yyo = yyoutput;
Packit 762fc5
  YYUSE (yyo);
Packit 762fc5
  if (!yyvaluep)
Packit 762fc5
    return;
Packit 762fc5
# ifdef YYPRINT
Packit 762fc5
  if (yytype < YYNTOKENS)
Packit 762fc5
    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
Packit 762fc5
# endif
Packit 762fc5
  YYUSE (yytype);
Packit 762fc5
}
Packit 762fc5
Packit 762fc5
Packit 762fc5
/*--------------------------------.
Packit 762fc5
| Print this symbol on YYOUTPUT.  |
Packit 762fc5
`--------------------------------*/
Packit 762fc5
Packit 762fc5
static void
Packit 762fc5
yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
Packit 762fc5
{
Packit 762fc5
  YYFPRINTF (yyoutput, "%s %s (",
Packit 762fc5
             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
Packit 762fc5
Packit 762fc5
  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
Packit 762fc5
  YYFPRINTF (yyoutput, ")");
Packit 762fc5
}
Packit 762fc5
Packit 762fc5
/*------------------------------------------------------------------.
Packit 762fc5
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
Packit 762fc5
| TOP (included).                                                   |
Packit 762fc5
`------------------------------------------------------------------*/
Packit 762fc5
Packit 762fc5
static void
Packit 762fc5
yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
Packit 762fc5
{
Packit 762fc5
  YYFPRINTF (stderr, "Stack now");
Packit 762fc5
  for (; yybottom <= yytop; yybottom++)
Packit 762fc5
    {
Packit 762fc5
      int yybot = *yybottom;
Packit 762fc5
      YYFPRINTF (stderr, " %d", yybot);
Packit 762fc5
    }
Packit 762fc5
  YYFPRINTF (stderr, "\n");
Packit 762fc5
}
Packit 762fc5
Packit 762fc5
# define YY_STACK_PRINT(Bottom, Top)                            \
Packit 762fc5
do {                                                            \
Packit 762fc5
  if (yydebug)                                                  \
Packit 762fc5
    yy_stack_print ((Bottom), (Top));                           \
Packit 762fc5
} while (0)
Packit 762fc5
Packit 762fc5
Packit 762fc5
/*------------------------------------------------.
Packit 762fc5
| Report that the YYRULE is going to be reduced.  |
Packit 762fc5
`------------------------------------------------*/
Packit 762fc5
Packit 762fc5
static void
Packit 762fc5
yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
Packit 762fc5
{
Packit 762fc5
  unsigned long int yylno = yyrline[yyrule];
Packit 762fc5
  int yynrhs = yyr2[yyrule];
Packit 762fc5
  int yyi;
Packit 762fc5
  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
Packit 762fc5
             yyrule - 1, yylno);
Packit 762fc5
  /* The symbols being reduced.  */
Packit 762fc5
  for (yyi = 0; yyi < yynrhs; yyi++)
Packit 762fc5
    {
Packit 762fc5
      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
Packit 762fc5
      yy_symbol_print (stderr,
Packit 762fc5
                       yystos[yyssp[yyi + 1 - yynrhs]],
Packit 762fc5
                       &(yyvsp[(yyi + 1) - (yynrhs)])
Packit 762fc5
                                              );
Packit 762fc5
      YYFPRINTF (stderr, "\n");
Packit 762fc5
    }
Packit 762fc5
}
Packit 762fc5
Packit 762fc5
# define YY_REDUCE_PRINT(Rule)          \
Packit 762fc5
do {                                    \
Packit 762fc5
  if (yydebug)                          \
Packit 762fc5
    yy_reduce_print (yyssp, yyvsp, Rule); \
Packit 762fc5
} while (0)
Packit 762fc5
Packit 762fc5
/* Nonzero means print parse trace.  It is left uninitialized so that
Packit 762fc5
   multiple parsers can coexist.  */
Packit 762fc5
int yydebug;
Packit 762fc5
#else /* !YYDEBUG */
Packit 762fc5
# define YYDPRINTF(Args)
Packit 762fc5
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
Packit 762fc5
# define YY_STACK_PRINT(Bottom, Top)
Packit 762fc5
# define YY_REDUCE_PRINT(Rule)
Packit 762fc5
#endif /* !YYDEBUG */
Packit 762fc5
Packit 762fc5
Packit 762fc5
/* YYINITDEPTH -- initial size of the parser's stacks.  */
Packit 762fc5
#ifndef YYINITDEPTH
Packit 762fc5
# define YYINITDEPTH 200
Packit 762fc5
#endif
Packit 762fc5
Packit 762fc5
/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
Packit 762fc5
   if the built-in stack extension method is used).
Packit 762fc5
Packit 762fc5
   Do not make this value too large; the results are undefined if
Packit 762fc5
   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
Packit 762fc5
   evaluated with infinite-precision integer arithmetic.  */
Packit 762fc5
Packit 762fc5
#ifndef YYMAXDEPTH
Packit 762fc5
# define YYMAXDEPTH 10000
Packit 762fc5
#endif
Packit 762fc5
Packit 762fc5
Packit 762fc5
#if YYERROR_VERBOSE
Packit 762fc5
Packit 762fc5
# ifndef yystrlen
Packit 762fc5
#  if defined __GLIBC__ && defined _STRING_H
Packit 762fc5
#   define yystrlen strlen
Packit 762fc5
#  else
Packit 762fc5
/* Return the length of YYSTR.  */
Packit 762fc5
static YYSIZE_T
Packit 762fc5
yystrlen (const char *yystr)
Packit 762fc5
{
Packit 762fc5
  YYSIZE_T yylen;
Packit 762fc5
  for (yylen = 0; yystr[yylen]; yylen++)
Packit 762fc5
    continue;
Packit 762fc5
  return yylen;
Packit 762fc5
}
Packit 762fc5
#  endif
Packit 762fc5
# endif
Packit 762fc5
Packit 762fc5
# ifndef yystpcpy
Packit 762fc5
#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
Packit 762fc5
#   define yystpcpy stpcpy
Packit 762fc5
#  else
Packit 762fc5
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
Packit 762fc5
   YYDEST.  */
Packit 762fc5
static char *
Packit 762fc5
yystpcpy (char *yydest, const char *yysrc)
Packit 762fc5
{
Packit 762fc5
  char *yyd = yydest;
Packit 762fc5
  const char *yys = yysrc;
Packit 762fc5
Packit 762fc5
  while ((*yyd++ = *yys++) != '\0')
Packit 762fc5
    continue;
Packit 762fc5
Packit 762fc5
  return yyd - 1;
Packit 762fc5
}
Packit 762fc5
#  endif
Packit 762fc5
# endif
Packit 762fc5
Packit 762fc5
# ifndef yytnamerr
Packit 762fc5
/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
Packit 762fc5
   quotes and backslashes, so that it's suitable for yyerror.  The
Packit 762fc5
   heuristic is that double-quoting is unnecessary unless the string
Packit 762fc5
   contains an apostrophe, a comma, or backslash (other than
Packit 762fc5
   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
Packit 762fc5
   null, do not copy; instead, return the length of what the result
Packit 762fc5
   would have been.  */
Packit 762fc5
static YYSIZE_T
Packit 762fc5
yytnamerr (char *yyres, const char *yystr)
Packit 762fc5
{
Packit 762fc5
  if (*yystr == '"')
Packit 762fc5
    {
Packit 762fc5
      YYSIZE_T yyn = 0;
Packit 762fc5
      char const *yyp = yystr;
Packit 762fc5
Packit 762fc5
      for (;;)
Packit 762fc5
        switch (*++yyp)
Packit 762fc5
          {
Packit 762fc5
          case '\'':
Packit 762fc5
          case ',':
Packit 762fc5
            goto do_not_strip_quotes;
Packit 762fc5
Packit 762fc5
          case '\\':
Packit 762fc5
            if (*++yyp != '\\')
Packit 762fc5
              goto do_not_strip_quotes;
Packit 762fc5
            /* Fall through.  */
Packit 762fc5
          default:
Packit 762fc5
            if (yyres)
Packit 762fc5
              yyres[yyn] = *yyp;
Packit 762fc5
            yyn++;
Packit 762fc5
            break;
Packit 762fc5
Packit 762fc5
          case '"':
Packit 762fc5
            if (yyres)
Packit 762fc5
              yyres[yyn] = '\0';
Packit 762fc5
            return yyn;
Packit 762fc5
          }
Packit 762fc5
    do_not_strip_quotes: ;
Packit 762fc5
    }
Packit 762fc5
Packit 762fc5
  if (! yyres)
Packit 762fc5
    return yystrlen (yystr);
Packit 762fc5
Packit 762fc5
  return yystpcpy (yyres, yystr) - yyres;
Packit 762fc5
}
Packit 762fc5
# endif
Packit 762fc5
Packit 762fc5
/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
Packit 762fc5
   about the unexpected token YYTOKEN for the state stack whose top is
Packit 762fc5
   YYSSP.
Packit 762fc5
Packit 762fc5
   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
Packit 762fc5
   not large enough to hold the message.  In that case, also set
Packit 762fc5
   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
Packit 762fc5
   required number of bytes is too large to store.  */
Packit 762fc5
static int
Packit 762fc5
yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
Packit 762fc5
                yytype_int16 *yyssp, int yytoken)
Packit 762fc5
{
Packit 762fc5
  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
Packit 762fc5
  YYSIZE_T yysize = yysize0;
Packit 762fc5
  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
Packit 762fc5
  /* Internationalized format string. */
Packit 762fc5
  const char *yyformat = YY_NULLPTR;
Packit 762fc5
  /* Arguments of yyformat. */
Packit 762fc5
  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
Packit 762fc5
  /* Number of reported tokens (one for the "unexpected", one per
Packit 762fc5
     "expected"). */
Packit 762fc5
  int yycount = 0;
Packit 762fc5
Packit 762fc5
  /* There are many possibilities here to consider:
Packit 762fc5
     - If this state is a consistent state with a default action, then
Packit 762fc5
       the only way this function was invoked is if the default action
Packit 762fc5
       is an error action.  In that case, don't check for expected
Packit 762fc5
       tokens because there are none.
Packit 762fc5
     - The only way there can be no lookahead present (in yychar) is if
Packit 762fc5
       this state is a consistent state with a default action.  Thus,
Packit 762fc5
       detecting the absence of a lookahead is sufficient to determine
Packit 762fc5
       that there is no unexpected or expected token to report.  In that
Packit 762fc5
       case, just report a simple "syntax error".
Packit 762fc5
     - Don't assume there isn't a lookahead just because this state is a
Packit 762fc5
       consistent state with a default action.  There might have been a
Packit 762fc5
       previous inconsistent state, consistent state with a non-default
Packit 762fc5
       action, or user semantic action that manipulated yychar.
Packit 762fc5
     - Of course, the expected token list depends on states to have
Packit 762fc5
       correct lookahead information, and it depends on the parser not
Packit 762fc5
       to perform extra reductions after fetching a lookahead from the
Packit 762fc5
       scanner and before detecting a syntax error.  Thus, state merging
Packit 762fc5
       (from LALR or IELR) and default reductions corrupt the expected
Packit 762fc5
       token list.  However, the list is correct for canonical LR with
Packit 762fc5
       one exception: it will still contain any token that will not be
Packit 762fc5
       accepted due to an error action in a later state.
Packit 762fc5
  */
Packit 762fc5
  if (yytoken != YYEMPTY)
Packit 762fc5
    {
Packit 762fc5
      int yyn = yypact[*yyssp];
Packit 762fc5
      yyarg[yycount++] = yytname[yytoken];
Packit 762fc5
      if (!yypact_value_is_default (yyn))
Packit 762fc5
        {
Packit 762fc5
          /* Start YYX at -YYN if negative to avoid negative indexes in
Packit 762fc5
             YYCHECK.  In other words, skip the first -YYN actions for
Packit 762fc5
             this state because they are default actions.  */
Packit 762fc5
          int yyxbegin = yyn < 0 ? -yyn : 0;
Packit 762fc5
          /* Stay within bounds of both yycheck and yytname.  */
Packit 762fc5
          int yychecklim = YYLAST - yyn + 1;
Packit 762fc5
          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
Packit 762fc5
          int yyx;
Packit 762fc5
Packit 762fc5
          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
Packit 762fc5
            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
Packit 762fc5
                && !yytable_value_is_error (yytable[yyx + yyn]))
Packit 762fc5
              {
Packit 762fc5
                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
Packit 762fc5
                  {
Packit 762fc5
                    yycount = 1;
Packit 762fc5
                    yysize = yysize0;
Packit 762fc5
                    break;
Packit 762fc5
                  }
Packit 762fc5
                yyarg[yycount++] = yytname[yyx];
Packit 762fc5
                {
Packit 762fc5
                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
Packit 762fc5
                  if (! (yysize <= yysize1
Packit 762fc5
                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
Packit 762fc5
                    return 2;
Packit 762fc5
                  yysize = yysize1;
Packit 762fc5
                }
Packit 762fc5
              }
Packit 762fc5
        }
Packit 762fc5
    }
Packit 762fc5
Packit 762fc5
  switch (yycount)
Packit 762fc5
    {
Packit 762fc5
# define YYCASE_(N, S)                      \
Packit 762fc5
      case N:                               \
Packit 762fc5
        yyformat = S;                       \
Packit 762fc5
      break
Packit 762fc5
      YYCASE_(0, YY_("syntax error"));
Packit 762fc5
      YYCASE_(1, YY_("syntax error, unexpected %s"));
Packit 762fc5
      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
Packit 762fc5
      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
Packit 762fc5
      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
Packit 762fc5
      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
Packit 762fc5
# undef YYCASE_
Packit 762fc5
    }
Packit 762fc5
Packit 762fc5
  {
Packit 762fc5
    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
Packit 762fc5
    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
Packit 762fc5
      return 2;
Packit 762fc5
    yysize = yysize1;
Packit 762fc5
  }
Packit 762fc5
Packit 762fc5
  if (*yymsg_alloc < yysize)
Packit 762fc5
    {
Packit 762fc5
      *yymsg_alloc = 2 * yysize;
Packit 762fc5
      if (! (yysize <= *yymsg_alloc
Packit 762fc5
             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
Packit 762fc5
        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
Packit 762fc5
      return 1;
Packit 762fc5
    }
Packit 762fc5
Packit 762fc5
  /* Avoid sprintf, as that infringes on the user's name space.
Packit 762fc5
     Don't have undefined behavior even if the translation
Packit 762fc5
     produced a string with the wrong number of "%s"s.  */
Packit 762fc5
  {
Packit 762fc5
    char *yyp = *yymsg;
Packit 762fc5
    int yyi = 0;
Packit 762fc5
    while ((*yyp = *yyformat) != '\0')
Packit 762fc5
      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
Packit 762fc5
        {
Packit 762fc5
          yyp += yytnamerr (yyp, yyarg[yyi++]);
Packit 762fc5
          yyformat += 2;
Packit 762fc5
        }
Packit 762fc5
      else
Packit 762fc5
        {
Packit 762fc5
          yyp++;
Packit 762fc5
          yyformat++;
Packit 762fc5
        }
Packit 762fc5
  }
Packit 762fc5
  return 0;
Packit 762fc5
}
Packit 762fc5
#endif /* YYERROR_VERBOSE */
Packit 762fc5
Packit 762fc5
/*-----------------------------------------------.
Packit 762fc5
| Release the memory associated to this symbol.  |
Packit 762fc5
`-----------------------------------------------*/
Packit 762fc5
Packit 762fc5
static void
Packit 762fc5
yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
Packit 762fc5
{
Packit 762fc5
  YYUSE (yyvaluep);
Packit 762fc5
  if (!yymsg)
Packit 762fc5
    yymsg = "Deleting";
Packit 762fc5
  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
Packit 762fc5
Packit 762fc5
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
Packit 762fc5
  YYUSE (yytype);
Packit 762fc5
  YY_IGNORE_MAYBE_UNINITIALIZED_END
Packit 762fc5
}
Packit 762fc5
Packit 762fc5
Packit 762fc5
Packit 762fc5
Packit 762fc5
/* The lookahead symbol.  */
Packit 762fc5
int yychar;
Packit 762fc5
Packit 762fc5
/* The semantic value of the lookahead symbol.  */
Packit 762fc5
YYSTYPE yylval;
Packit 762fc5
/* Number of syntax errors so far.  */
Packit 762fc5
int yynerrs;
Packit 762fc5
Packit 762fc5
Packit 762fc5
/*----------.
Packit 762fc5
| yyparse.  |
Packit 762fc5
`----------*/
Packit 762fc5
Packit 762fc5
int
Packit 762fc5
yyparse (void)
Packit 762fc5
{
Packit 762fc5
    int yystate;
Packit 762fc5
    /* Number of tokens to shift before error messages enabled.  */
Packit 762fc5
    int yyerrstatus;
Packit 762fc5
Packit 762fc5
    /* The stacks and their tools:
Packit 762fc5
       'yyss': related to states.
Packit 762fc5
       'yyvs': related to semantic values.
Packit 762fc5
Packit 762fc5
       Refer to the stacks through separate pointers, to allow yyoverflow
Packit 762fc5
       to reallocate them elsewhere.  */
Packit 762fc5
Packit 762fc5
    /* The state stack.  */
Packit 762fc5
    yytype_int16 yyssa[YYINITDEPTH];
Packit 762fc5
    yytype_int16 *yyss;
Packit 762fc5
    yytype_int16 *yyssp;
Packit 762fc5
Packit 762fc5
    /* The semantic value stack.  */
Packit 762fc5
    YYSTYPE yyvsa[YYINITDEPTH];
Packit 762fc5
    YYSTYPE *yyvs;
Packit 762fc5
    YYSTYPE *yyvsp;
Packit 762fc5
Packit 762fc5
    YYSIZE_T yystacksize;
Packit 762fc5
Packit 762fc5
  int yyn;
Packit 762fc5
  int yyresult;
Packit 762fc5
  /* Lookahead token as an internal (translated) token number.  */
Packit 762fc5
  int yytoken = 0;
Packit 762fc5
  /* The variables used to return semantic value and location from the
Packit 762fc5
     action routines.  */
Packit 762fc5
  YYSTYPE yyval;
Packit 762fc5
Packit 762fc5
#if YYERROR_VERBOSE
Packit 762fc5
  /* Buffer for error messages, and its allocated size.  */
Packit 762fc5
  char yymsgbuf[128];
Packit 762fc5
  char *yymsg = yymsgbuf;
Packit 762fc5
  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
Packit 762fc5
#endif
Packit 762fc5
Packit 762fc5
#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
Packit 762fc5
Packit 762fc5
  /* The number of symbols on the RHS of the reduced rule.
Packit 762fc5
     Keep to zero when no symbol should be popped.  */
Packit 762fc5
  int yylen = 0;
Packit 762fc5
Packit 762fc5
  yyssp = yyss = yyssa;
Packit 762fc5
  yyvsp = yyvs = yyvsa;
Packit 762fc5
  yystacksize = YYINITDEPTH;
Packit 762fc5
Packit 762fc5
  YYDPRINTF ((stderr, "Starting parse\n"));
Packit 762fc5
Packit 762fc5
  yystate = 0;
Packit 762fc5
  yyerrstatus = 0;
Packit 762fc5
  yynerrs = 0;
Packit 762fc5
  yychar = YYEMPTY; /* Cause a token to be read.  */
Packit 762fc5
  goto yysetstate;
Packit 762fc5
Packit 762fc5
/*------------------------------------------------------------.
Packit 762fc5
| yynewstate -- Push a new state, which is found in yystate.  |
Packit 762fc5
`------------------------------------------------------------*/
Packit 762fc5
 yynewstate:
Packit 762fc5
  /* In all cases, when you get here, the value and location stacks
Packit 762fc5
     have just been pushed.  So pushing a state here evens the stacks.  */
Packit 762fc5
  yyssp++;
Packit 762fc5
Packit 762fc5
 yysetstate:
Packit 762fc5
  *yyssp = yystate;
Packit 762fc5
Packit 762fc5
  if (yyss + yystacksize - 1 <= yyssp)
Packit 762fc5
    {
Packit 762fc5
      /* Get the current used size of the three stacks, in elements.  */
Packit 762fc5
      YYSIZE_T yysize = yyssp - yyss + 1;
Packit 762fc5
Packit 762fc5
#ifdef yyoverflow
Packit 762fc5
      {
Packit 762fc5
        /* Give user a chance to reallocate the stack.  Use copies of
Packit 762fc5
           these so that the &'s don't force the real ones into
Packit 762fc5
           memory.  */
Packit 762fc5
        YYSTYPE *yyvs1 = yyvs;
Packit 762fc5
        yytype_int16 *yyss1 = yyss;
Packit 762fc5
Packit 762fc5
        /* Each stack pointer address is followed by the size of the
Packit 762fc5
           data in use in that stack, in bytes.  This used to be a
Packit 762fc5
           conditional around just the two extra args, but that might
Packit 762fc5
           be undefined if yyoverflow is a macro.  */
Packit 762fc5
        yyoverflow (YY_("memory exhausted"),
Packit 762fc5
                    &yyss1, yysize * sizeof (*yyssp),
Packit 762fc5
                    &yyvs1, yysize * sizeof (*yyvsp),
Packit 762fc5
                    &yystacksize);
Packit 762fc5
Packit 762fc5
        yyss = yyss1;
Packit 762fc5
        yyvs = yyvs1;
Packit 762fc5
      }
Packit 762fc5
#else /* no yyoverflow */
Packit 762fc5
# ifndef YYSTACK_RELOCATE
Packit 762fc5
      goto yyexhaustedlab;
Packit 762fc5
# else
Packit 762fc5
      /* Extend the stack our own way.  */
Packit 762fc5
      if (YYMAXDEPTH <= yystacksize)
Packit 762fc5
        goto yyexhaustedlab;
Packit 762fc5
      yystacksize *= 2;
Packit 762fc5
      if (YYMAXDEPTH < yystacksize)
Packit 762fc5
        yystacksize = YYMAXDEPTH;
Packit 762fc5
Packit 762fc5
      {
Packit 762fc5
        yytype_int16 *yyss1 = yyss;
Packit 762fc5
        union yyalloc *yyptr =
Packit 762fc5
          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
Packit 762fc5
        if (! yyptr)
Packit 762fc5
          goto yyexhaustedlab;
Packit 762fc5
        YYSTACK_RELOCATE (yyss_alloc, yyss);
Packit 762fc5
        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
Packit 762fc5
#  undef YYSTACK_RELOCATE
Packit 762fc5
        if (yyss1 != yyssa)
Packit 762fc5
          YYSTACK_FREE (yyss1);
Packit 762fc5
      }
Packit 762fc5
# endif
Packit 762fc5
#endif /* no yyoverflow */
Packit 762fc5
Packit 762fc5
      yyssp = yyss + yysize - 1;
Packit 762fc5
      yyvsp = yyvs + yysize - 1;
Packit 762fc5
Packit 762fc5
      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
Packit 762fc5
                  (unsigned long int) yystacksize));
Packit 762fc5
Packit 762fc5
      if (yyss + yystacksize - 1 <= yyssp)
Packit 762fc5
        YYABORT;
Packit 762fc5
    }
Packit 762fc5
Packit 762fc5
  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
Packit 762fc5
Packit 762fc5
  if (yystate == YYFINAL)
Packit 762fc5
    YYACCEPT;
Packit 762fc5
Packit 762fc5
  goto yybackup;
Packit 762fc5
Packit 762fc5
/*-----------.
Packit 762fc5
| yybackup.  |
Packit 762fc5
`-----------*/
Packit 762fc5
yybackup:
Packit 762fc5
Packit 762fc5
  /* Do appropriate processing given the current state.  Read a
Packit 762fc5
     lookahead token if we need one and don't already have one.  */
Packit 762fc5
Packit 762fc5
  /* First try to decide what to do without reference to lookahead token.  */
Packit 762fc5
  yyn = yypact[yystate];
Packit 762fc5
  if (yypact_value_is_default (yyn))
Packit 762fc5
    goto yydefault;
Packit 762fc5
Packit 762fc5
  /* Not known => get a lookahead token if don't already have one.  */
Packit 762fc5
Packit 762fc5
  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
Packit 762fc5
  if (yychar == YYEMPTY)
Packit 762fc5
    {
Packit 762fc5
      YYDPRINTF ((stderr, "Reading a token: "));
Packit 762fc5
      yychar = yylex ();
Packit 762fc5
    }
Packit 762fc5
Packit 762fc5
  if (yychar <= YYEOF)
Packit 762fc5
    {
Packit 762fc5
      yychar = yytoken = YYEOF;
Packit 762fc5
      YYDPRINTF ((stderr, "Now at end of input.\n"));
Packit 762fc5
    }
Packit 762fc5
  else
Packit 762fc5
    {
Packit 762fc5
      yytoken = YYTRANSLATE (yychar);
Packit 762fc5
      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
Packit 762fc5
    }
Packit 762fc5
Packit 762fc5
  /* If the proper action on seeing token YYTOKEN is to reduce or to
Packit 762fc5
     detect an error, take that action.  */
Packit 762fc5
  yyn += yytoken;
Packit 762fc5
  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
Packit 762fc5
    goto yydefault;
Packit 762fc5
  yyn = yytable[yyn];
Packit 762fc5
  if (yyn <= 0)
Packit 762fc5
    {
Packit 762fc5
      if (yytable_value_is_error (yyn))
Packit 762fc5
        goto yyerrlab;
Packit 762fc5
      yyn = -yyn;
Packit 762fc5
      goto yyreduce;
Packit 762fc5
    }
Packit 762fc5
Packit 762fc5
  /* Count tokens shifted since error; after three, turn off error
Packit 762fc5
     status.  */
Packit 762fc5
  if (yyerrstatus)
Packit 762fc5
    yyerrstatus--;
Packit 762fc5
Packit 762fc5
  /* Shift the lookahead token.  */
Packit 762fc5
  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
Packit 762fc5
Packit 762fc5
  /* Discard the shifted token.  */
Packit 762fc5
  yychar = YYEMPTY;
Packit 762fc5
Packit 762fc5
  yystate = yyn;
Packit 762fc5
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
Packit 762fc5
  *++yyvsp = yylval;
Packit 762fc5
  YY_IGNORE_MAYBE_UNINITIALIZED_END
Packit 762fc5
Packit 762fc5
  goto yynewstate;
Packit 762fc5
Packit 762fc5
Packit 762fc5
/*-----------------------------------------------------------.
Packit 762fc5
| yydefault -- do the default action for the current state.  |
Packit 762fc5
`-----------------------------------------------------------*/
Packit 762fc5
yydefault:
Packit 762fc5
  yyn = yydefact[yystate];
Packit 762fc5
  if (yyn == 0)
Packit 762fc5
    goto yyerrlab;
Packit 762fc5
  goto yyreduce;
Packit 762fc5
Packit 762fc5
Packit 762fc5
/*-----------------------------.
Packit 762fc5
| yyreduce -- Do a reduction.  |
Packit 762fc5
`-----------------------------*/
Packit 762fc5
yyreduce:
Packit 762fc5
  /* yyn is the number of a rule to reduce with.  */
Packit 762fc5
  yylen = yyr2[yyn];
Packit 762fc5
Packit 762fc5
  /* If YYLEN is nonzero, implement the default value of the action:
Packit 762fc5
     '$$ = $1'.
Packit 762fc5
Packit 762fc5
     Otherwise, the following line sets YYVAL to garbage.
Packit 762fc5
     This behavior is undocumented and Bison
Packit 762fc5
     users should not rely upon it.  Assigning to YYVAL
Packit 762fc5
     unconditionally makes the parser a bit smaller, and it avoids a
Packit 762fc5
     GCC warning that YYVAL may be used uninitialized.  */
Packit 762fc5
  yyval = yyvsp[1-yylen];
Packit 762fc5
Packit 762fc5
Packit 762fc5
  YY_REDUCE_PRINT (yyn);
Packit 762fc5
  switch (yyn)
Packit 762fc5
    {
Packit 762fc5
        case 35:
Packit 762fc5
#line 165 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {
Packit 762fc5
            newlinelastinconfig=1;
Packit 762fc5
	    YYACCEPT;
Packit 762fc5
          }
Packit 762fc5
#line 1600 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 37:
Packit 762fc5
#line 170 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {
Packit 762fc5
          error(220,"Got @@dbspec.Stopping\n");
Packit 762fc5
	  YYACCEPT;
Packit 762fc5
          }
Packit 762fc5
#line 1609 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 38:
Packit 762fc5
#line 174 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {
Packit 762fc5
	  error(220,"Got @@begin_db. Stopping\n");
Packit 762fc5
	  YYACCEPT;
Packit 762fc5
          }
Packit 762fc5
#line 1618 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 39:
Packit 762fc5
#line 178 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {
Packit 762fc5
	  conferror("Error while reading configuration");
Packit 762fc5
          }
Packit 762fc5
#line 1626 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 40:
Packit 762fc5
#line 181 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {
Packit 762fc5
	  conferror("Error while reading configuration");
Packit 762fc5
	  YYABORT;
Packit 762fc5
          }
Packit 762fc5
#line 1635 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 41:
Packit 762fc5
#line 187 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { decode_string((yyvsp[-2].s)); conf->selrxlst=append_rxlist((yyvsp[-2].s),(yyvsp[-1].i),conf->selrxlst, RESTRICTION_NULL); }
Packit 762fc5
#line 1641 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 42:
Packit 762fc5
#line 190 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { decode_string((yyvsp[-2].s)); conf->equrxlst=append_rxlist((yyvsp[-2].s),(yyvsp[-1].i),conf->equrxlst, RESTRICTION_NULL); }
Packit 762fc5
#line 1647 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 43:
Packit 762fc5
#line 193 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { decode_string((yyvsp[-1].s)); conf->negrxlst=append_rxlist((yyvsp[-1].s),0,conf->negrxlst, RESTRICTION_NULL); }
Packit 762fc5
#line 1653 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 44:
Packit 762fc5
#line 196 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { decode_string((yyvsp[-3].s)); conf->selrxlst=append_rxlist((yyvsp[-3].s),(yyvsp[-1].i),conf->selrxlst, (yyvsp[-2].r)); }
Packit 762fc5
#line 1659 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 45:
Packit 762fc5
#line 199 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { decode_string((yyvsp[-3].s)); conf->equrxlst=append_rxlist((yyvsp[-3].s),(yyvsp[-1].i),conf->equrxlst, (yyvsp[-2].r)); }
Packit 762fc5
#line 1665 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 46:
Packit 762fc5
#line 202 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { decode_string((yyvsp[-2].s)); conf->negrxlst=append_rxlist((yyvsp[-2].s),0,conf->negrxlst, (yyvsp[-1].r)); }
Packit 762fc5
#line 1671 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 48:
Packit 762fc5
#line 205 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {
Packit 762fc5
            newlinelastinconfig=0;
Packit 762fc5
	    YYACCEPT;
Packit 762fc5
          }
Packit 762fc5
#line 1680 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 49:
Packit 762fc5
#line 210 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { (yyval.r) =(yyvsp[-2].r)  | (yyvsp[0].r) ; }
Packit 762fc5
#line 1686 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 50:
Packit 762fc5
#line 211 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {
Packit 762fc5
       if((retval=get_restrictionval((yyvsp[0].s))) != RESTRICTION_NULL) {
Packit 762fc5
            (yyval.r)=retval;
Packit 762fc5
       } else {
Packit 762fc5
            conf_lineno++;
Packit 762fc5
            conferror("Error in restriction");
Packit 762fc5
            YYABORT;
Packit 762fc5
       }
Packit 762fc5
    }
Packit 762fc5
#line 1700 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 51:
Packit 762fc5
#line 221 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { (yyval.i) =(yyvsp[-2].i)  | (yyvsp[0].i) ; }
Packit 762fc5
#line 1706 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 52:
Packit 762fc5
#line 222 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { (yyval.i) =(yyvsp[-2].i)  & (~(yyvsp[0].i) ); }
Packit 762fc5
#line 1712 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 53:
Packit 762fc5
#line 223 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { (yyval.i) =(yyvsp[0].i) ;}
Packit 762fc5
#line 1718 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 54:
Packit 762fc5
#line 225 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { (yyval.i) =(yyvsp[0].i) ; }
Packit 762fc5
#line 1724 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 55:
Packit 762fc5
#line 226 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { (yyval.i) =(yyvsp[0].i) ; }
Packit 762fc5
#line 1730 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 56:
Packit 762fc5
#line 227 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { if((retval=get_groupval((yyvsp[0].s))) != DB_ATTR_UNDEF) {
Packit 762fc5
	    (yyval.i)=retval;
Packit 762fc5
	  }
Packit 762fc5
	  else {
Packit 762fc5
		  conf_lineno++; // Hack
Packit 762fc5
	    conferror("Error in expression");
Packit 762fc5
	    YYABORT;
Packit 762fc5
	  }
Packit 762fc5
	  }
Packit 762fc5
#line 1744 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 57:
Packit 762fc5
#line 237 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { (yyval.i) =(yyvsp[0].i) ;}
Packit 762fc5
#line 1750 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 58:
Packit 762fc5
#line 237 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {(yyval.i) =(yyvsp[0].i) ;}
Packit 762fc5
#line 1756 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 59:
Packit 762fc5
#line 238 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {(yyval.i) =(yyvsp[0].i) ;}
Packit 762fc5
#line 1762 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 60:
Packit 762fc5
#line 238 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {(yyval.i) =(yyvsp[0].i) ;}
Packit 762fc5
#line 1768 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 61:
Packit 762fc5
#line 239 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {(yyval.i) =(yyvsp[0].i) ;}
Packit 762fc5
#line 1774 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 62:
Packit 762fc5
#line 239 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {(yyval.i) =(yyvsp[0].i) ;}
Packit 762fc5
#line 1780 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 63:
Packit 762fc5
#line 239 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {(yyval.i) =(yyvsp[0].i) ;}
Packit 762fc5
#line 1786 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 64:
Packit 762fc5
#line 240 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {(yyval.i) =(yyvsp[0].i) ;}
Packit 762fc5
#line 1792 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 65:
Packit 762fc5
#line 240 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {(yyval.i) =(yyvsp[0].i) ;}
Packit 762fc5
#line 1798 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 66:
Packit 762fc5
#line 241 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {(yyval.i) =(yyvsp[0].i) ;}
Packit 762fc5
#line 1804 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 67:
Packit 762fc5
#line 241 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {(yyval.i) =(yyvsp[0].i) ;}
Packit 762fc5
#line 1810 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 68:
Packit 762fc5
#line 241 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {(yyval.i) = (yyvsp[0].i);}
Packit 762fc5
#line 1816 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 69:
Packit 762fc5
#line 242 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {(yyval.i) = (yyvsp[0].i);}
Packit 762fc5
#line 1822 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 70:
Packit 762fc5
#line 242 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {(yyval.i) =(yyvsp[0].i) ;}
Packit 762fc5
#line 1828 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 71:
Packit 762fc5
#line 242 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {(yyval.i) =(yyvsp[0].i) ;}
Packit 762fc5
#line 1834 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 72:
Packit 762fc5
#line 243 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {(yyval.i) =(yyvsp[0].i) ;}
Packit 762fc5
#line 1840 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 73:
Packit 762fc5
#line 243 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {(yyval.i) =(yyvsp[0].i) ;}
Packit 762fc5
#line 1846 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 74:
Packit 762fc5
#line 245 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { (yyval.i) =(yyvsp[0].i) ;}
Packit 762fc5
#line 1852 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 75:
Packit 762fc5
#line 245 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { (yyval.i) =(yyvsp[0].i) ;}
Packit 762fc5
#line 1858 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 76:
Packit 762fc5
#line 245 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { (yyval.i) =(yyvsp[0].i) ;}
Packit 762fc5
#line 1864 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 77:
Packit 762fc5
#line 246 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {(yyval.i) =(yyvsp[0].i) ;}
Packit 762fc5
#line 1870 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 78:
Packit 762fc5
#line 246 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { (yyval.i) =(yyvsp[0].i) ;}
Packit 762fc5
#line 1876 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 79:
Packit 762fc5
#line 246 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { (yyval.i) =(yyvsp[0].i) ;}
Packit 762fc5
#line 1882 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 80:
Packit 762fc5
#line 247 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { (yyval.i) =(yyvsp[0].i) ;}
Packit 762fc5
#line 1888 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 81:
Packit 762fc5
#line 249 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { do_define((yyvsp[-1].s),(yyvsp[0].s)); }
Packit 762fc5
#line 1894 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 82:
Packit 762fc5
#line 251 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { do_undefine((yyvsp[0].s)); }
Packit 762fc5
#line 1900 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 83:
Packit 762fc5
#line 253 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { 
Packit 762fc5
  if(do_ifxdef(1,(yyvsp[0].s))==-1){
Packit 762fc5
    error(0,"ifdef error\n");
Packit 762fc5
    YYABORT; 
Packit 762fc5
  };
Packit 762fc5
 }
Packit 762fc5
#line 1911 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 85:
Packit 762fc5
#line 260 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { 
Packit 762fc5
  if(do_ifxdef(0,(yyvsp[0].s))==-1){
Packit 762fc5
    error(0,"ifndef error\n");
Packit 762fc5
    YYABORT; 
Packit 762fc5
  };
Packit 762fc5
 }
Packit 762fc5
#line 1922 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 86:
Packit 762fc5
#line 265 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { error(220,"Ifndef statement ended\n");}
Packit 762fc5
#line 1928 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 87:
Packit 762fc5
#line 267 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { 
Packit 762fc5
  if(do_ifxhost(1,(yyvsp[0].s))==-1){
Packit 762fc5
    error(0,"ifhost error\n");
Packit 762fc5
    YYABORT;
Packit 762fc5
  };
Packit 762fc5
 }
Packit 762fc5
#line 1939 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 89:
Packit 762fc5
#line 274 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { 
Packit 762fc5
  if(do_ifxhost(0,(yyvsp[0].s))==-1){
Packit 762fc5
    error(0,"ifnhost error\n");
Packit 762fc5
    YYABORT; 
Packit 762fc5
  };
Packit 762fc5
 }
Packit 762fc5
#line 1950 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 91:
Packit 762fc5
#line 281 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { error(220,"Endif stmt matched\n");}
Packit 762fc5
#line 1956 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 92:
Packit 762fc5
#line 282 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {error(220,"Endifelse stmt matched\n");}
Packit 762fc5
#line 1962 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 93:
Packit 762fc5
#line 284 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { do_groupdef((yyvsp[-2].s),(yyvsp[0].i)); }
Packit 762fc5
#line 1968 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 94:
Packit 762fc5
#line 286 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { do_dbdef(DB_OLD,(yyvsp[0].s)); }
Packit 762fc5
#line 1974 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 95:
Packit 762fc5
#line 288 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { do_dbdef(DB_WRITE,(yyvsp[0].s)); }
Packit 762fc5
#line 1980 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 96:
Packit 762fc5
#line 290 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { do_dbdef(DB_NEW,(yyvsp[0].s)); }
Packit 762fc5
#line 1986 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 97:
Packit 762fc5
#line 292 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { do_verbdef((yyvsp[0].s)); }
Packit 762fc5
#line 1992 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 98:
Packit 762fc5
#line 294 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { do_repurldef((yyvsp[0].s)); }
Packit 762fc5
#line 1998 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 99:
Packit 762fc5
#line 296 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {
Packit 762fc5
  DB_ATTR_TYPE attr;
Packit 762fc5
  if((attr = (yyvsp[0].i)&(~DB_HASHES))){
Packit 762fc5
    error(0, "%li: invalid attribute(s) in database_attrs: %llx\n", conf_lineno-1, attr);
Packit 762fc5
    YYABORT;
Packit 762fc5
  }
Packit 762fc5
  conf->db_attrs=(yyvsp[0].i);
Packit 762fc5
}
Packit 762fc5
#line 2011 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 100:
Packit 762fc5
#line 305 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {
Packit 762fc5
#ifdef WITH_MHASH
Packit 762fc5
  conf->do_configmd=1;
Packit 762fc5
  conf->old_confmdstr=strdup((yyvsp[0].s));
Packit 762fc5
#endif
Packit 762fc5
}
Packit 762fc5
#line 2022 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 101:
Packit 762fc5
#line 312 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {
Packit 762fc5
  YYACCEPT;
Packit 762fc5
}
Packit 762fc5
#line 2030 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 102:
Packit 762fc5
#line 316 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { 
Packit 762fc5
#ifdef WITH_ACL
Packit 762fc5
  conf->no_acl_on_symlinks=1;
Packit 762fc5
#else
Packit 762fc5
  error(0,"ACL-support not compiled in.\n");
Packit 762fc5
#endif
Packit 762fc5
}
Packit 762fc5
#line 2042 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 103:
Packit 762fc5
#line 324 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { 
Packit 762fc5
#ifdef WITH_ACL
Packit 762fc5
  conf->no_acl_on_symlinks=0;
Packit 762fc5
#else
Packit 762fc5
  error(0,"ACL-support not compiled in.\n");
Packit 762fc5
#endif
Packit 762fc5
}
Packit 762fc5
#line 2054 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 104:
Packit 762fc5
#line 332 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {
Packit 762fc5
  conf->warn_dead_symlinks=1;
Packit 762fc5
}
Packit 762fc5
#line 2062 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 105:
Packit 762fc5
#line 336 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {
Packit 762fc5
  conf->warn_dead_symlinks=0;
Packit 762fc5
}
Packit 762fc5
#line 2070 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 106:
Packit 762fc5
#line 340 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {
Packit 762fc5
  conf->database_add_metadata=1;
Packit 762fc5
}
Packit 762fc5
#line 2078 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 107:
Packit 762fc5
#line 344 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {
Packit 762fc5
  conf->database_add_metadata=0;
Packit 762fc5
}
Packit 762fc5
#line 2086 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 108:
Packit 762fc5
#line 348 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {
Packit 762fc5
  conf->report_detailed_init=1;
Packit 762fc5
}
Packit 762fc5
#line 2094 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 109:
Packit 762fc5
#line 352 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {
Packit 762fc5
  conf->report_detailed_init=0;
Packit 762fc5
}
Packit 762fc5
#line 2102 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 110:
Packit 762fc5
#line 356 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {
Packit 762fc5
#ifdef WITH_E2FSATTRS
Packit 762fc5
  do_report_ignore_e2fsattrs((yyvsp[0].s));
Packit 762fc5
#else
Packit 762fc5
  error(0,"e2fsattrs-support not compiled in.\n");
Packit 762fc5
#endif
Packit 762fc5
}
Packit 762fc5
#line 2114 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 111:
Packit 762fc5
#line 364 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {
Packit 762fc5
  conf->report_base16=1;
Packit 762fc5
}
Packit 762fc5
#line 2122 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 112:
Packit 762fc5
#line 368 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {
Packit 762fc5
  conf->report_base16=0;
Packit 762fc5
}
Packit 762fc5
#line 2130 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 113:
Packit 762fc5
#line 372 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {
Packit 762fc5
  conf->report_quiet=1;
Packit 762fc5
}
Packit 762fc5
#line 2138 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 114:
Packit 762fc5
#line 376 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {
Packit 762fc5
  conf->report_quiet=0;
Packit 762fc5
}
Packit 762fc5
#line 2146 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 115:
Packit 762fc5
#line 380 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {
Packit 762fc5
  conf->grouped=1;
Packit 762fc5
}
Packit 762fc5
#line 2154 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 116:
Packit 762fc5
#line 384 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { do_rootprefix((yyvsp[0].s)); }
Packit 762fc5
#line 2160 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 117:
Packit 762fc5
#line 386 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {
Packit 762fc5
  conf->grouped=0;
Packit 762fc5
}
Packit 762fc5
#line 2168 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 118:
Packit 762fc5
#line 390 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {
Packit 762fc5
  conf->summarize_changes=1;
Packit 762fc5
}
Packit 762fc5
#line 2176 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 119:
Packit 762fc5
#line 394 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {
Packit 762fc5
  conf->summarize_changes=0;
Packit 762fc5
}
Packit 762fc5
#line 2184 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 120:
Packit 762fc5
#line 398 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { 
Packit 762fc5
#ifdef WITH_ZLIB
Packit 762fc5
conf->gzip_dbout=1; 
Packit 762fc5
#else 
Packit 762fc5
 error(0,"Gzip-support not compiled in.\n");
Packit 762fc5
#endif
Packit 762fc5
}
Packit 762fc5
#line 2196 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 121:
Packit 762fc5
#line 405 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    { 
Packit 762fc5
#ifdef WITH_ZLIB
Packit 762fc5
conf->gzip_dbout=0; 
Packit 762fc5
#endif
Packit 762fc5
}
Packit 762fc5
#line 2206 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 122:
Packit 762fc5
#line 411 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {
Packit 762fc5
  /* FIXME implement me */  
Packit 762fc5
  
Packit 762fc5
}
Packit 762fc5
#line 2215 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
  case 123:
Packit 762fc5
#line 416 "src/conf_yacc.y" /* yacc.c:1646  */
Packit 762fc5
    {
Packit 762fc5
  conf->config_version=strdup((yyvsp[0].s));
Packit 762fc5
}
Packit 762fc5
#line 2223 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
    break;
Packit 762fc5
Packit 762fc5
Packit 762fc5
#line 2227 "src/conf_yacc.c" /* yacc.c:1646  */
Packit 762fc5
      default: break;
Packit 762fc5
    }
Packit 762fc5
  /* User semantic actions sometimes alter yychar, and that requires
Packit 762fc5
     that yytoken be updated with the new translation.  We take the
Packit 762fc5
     approach of translating immediately before every use of yytoken.
Packit 762fc5
     One alternative is translating here after every semantic action,
Packit 762fc5
     but that translation would be missed if the semantic action invokes
Packit 762fc5
     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
Packit 762fc5
     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
Packit 762fc5
     incorrect destructor might then be invoked immediately.  In the
Packit 762fc5
     case of YYERROR or YYBACKUP, subsequent parser actions might lead
Packit 762fc5
     to an incorrect destructor call or verbose syntax error message
Packit 762fc5
     before the lookahead is translated.  */
Packit 762fc5
  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
Packit 762fc5
Packit 762fc5
  YYPOPSTACK (yylen);
Packit 762fc5
  yylen = 0;
Packit 762fc5
  YY_STACK_PRINT (yyss, yyssp);
Packit 762fc5
Packit 762fc5
  *++yyvsp = yyval;
Packit 762fc5
Packit 762fc5
  /* Now 'shift' the result of the reduction.  Determine what state
Packit 762fc5
     that goes to, based on the state we popped back to and the rule
Packit 762fc5
     number reduced by.  */
Packit 762fc5
Packit 762fc5
  yyn = yyr1[yyn];
Packit 762fc5
Packit 762fc5
  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
Packit 762fc5
  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
Packit 762fc5
    yystate = yytable[yystate];
Packit 762fc5
  else
Packit 762fc5
    yystate = yydefgoto[yyn - YYNTOKENS];
Packit 762fc5
Packit 762fc5
  goto yynewstate;
Packit 762fc5
Packit 762fc5
Packit 762fc5
/*--------------------------------------.
Packit 762fc5
| yyerrlab -- here on detecting error.  |
Packit 762fc5
`--------------------------------------*/
Packit 762fc5
yyerrlab:
Packit 762fc5
  /* Make sure we have latest lookahead translation.  See comments at
Packit 762fc5
     user semantic actions for why this is necessary.  */
Packit 762fc5
  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
Packit 762fc5
Packit 762fc5
  /* If not already recovering from an error, report this error.  */
Packit 762fc5
  if (!yyerrstatus)
Packit 762fc5
    {
Packit 762fc5
      ++yynerrs;
Packit 762fc5
#if ! YYERROR_VERBOSE
Packit 762fc5
      yyerror (YY_("syntax error"));
Packit 762fc5
#else
Packit 762fc5
# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
Packit 762fc5
                                        yyssp, yytoken)
Packit 762fc5
      {
Packit 762fc5
        char const *yymsgp = YY_("syntax error");
Packit 762fc5
        int yysyntax_error_status;
Packit 762fc5
        yysyntax_error_status = YYSYNTAX_ERROR;
Packit 762fc5
        if (yysyntax_error_status == 0)
Packit 762fc5
          yymsgp = yymsg;
Packit 762fc5
        else if (yysyntax_error_status == 1)
Packit 762fc5
          {
Packit 762fc5
            if (yymsg != yymsgbuf)
Packit 762fc5
              YYSTACK_FREE (yymsg);
Packit 762fc5
            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
Packit 762fc5
            if (!yymsg)
Packit 762fc5
              {
Packit 762fc5
                yymsg = yymsgbuf;
Packit 762fc5
                yymsg_alloc = sizeof yymsgbuf;
Packit 762fc5
                yysyntax_error_status = 2;
Packit 762fc5
              }
Packit 762fc5
            else
Packit 762fc5
              {
Packit 762fc5
                yysyntax_error_status = YYSYNTAX_ERROR;
Packit 762fc5
                yymsgp = yymsg;
Packit 762fc5
              }
Packit 762fc5
          }
Packit 762fc5
        yyerror (yymsgp);
Packit 762fc5
        if (yysyntax_error_status == 2)
Packit 762fc5
          goto yyexhaustedlab;
Packit 762fc5
      }
Packit 762fc5
# undef YYSYNTAX_ERROR
Packit 762fc5
#endif
Packit 762fc5
    }
Packit 762fc5
Packit 762fc5
Packit 762fc5
Packit 762fc5
  if (yyerrstatus == 3)
Packit 762fc5
    {
Packit 762fc5
      /* If just tried and failed to reuse lookahead token after an
Packit 762fc5
         error, discard it.  */
Packit 762fc5
Packit 762fc5
      if (yychar <= YYEOF)
Packit 762fc5
        {
Packit 762fc5
          /* Return failure if at end of input.  */
Packit 762fc5
          if (yychar == YYEOF)
Packit 762fc5
            YYABORT;
Packit 762fc5
        }
Packit 762fc5
      else
Packit 762fc5
        {
Packit 762fc5
          yydestruct ("Error: discarding",
Packit 762fc5
                      yytoken, &yylval);
Packit 762fc5
          yychar = YYEMPTY;
Packit 762fc5
        }
Packit 762fc5
    }
Packit 762fc5
Packit 762fc5
  /* Else will try to reuse lookahead token after shifting the error
Packit 762fc5
     token.  */
Packit 762fc5
  goto yyerrlab1;
Packit 762fc5
Packit 762fc5
Packit 762fc5
/*---------------------------------------------------.
Packit 762fc5
| yyerrorlab -- error raised explicitly by YYERROR.  |
Packit 762fc5
`---------------------------------------------------*/
Packit 762fc5
yyerrorlab:
Packit 762fc5
Packit 762fc5
  /* Pacify compilers like GCC when the user code never invokes
Packit 762fc5
     YYERROR and the label yyerrorlab therefore never appears in user
Packit 762fc5
     code.  */
Packit 762fc5
  if (/*CONSTCOND*/ 0)
Packit 762fc5
     goto yyerrorlab;
Packit 762fc5
Packit 762fc5
  /* Do not reclaim the symbols of the rule whose action triggered
Packit 762fc5
     this YYERROR.  */
Packit 762fc5
  YYPOPSTACK (yylen);
Packit 762fc5
  yylen = 0;
Packit 762fc5
  YY_STACK_PRINT (yyss, yyssp);
Packit 762fc5
  yystate = *yyssp;
Packit 762fc5
  goto yyerrlab1;
Packit 762fc5
Packit 762fc5
Packit 762fc5
/*-------------------------------------------------------------.
Packit 762fc5
| yyerrlab1 -- common code for both syntax error and YYERROR.  |
Packit 762fc5
`-------------------------------------------------------------*/
Packit 762fc5
yyerrlab1:
Packit 762fc5
  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
Packit 762fc5
Packit 762fc5
  for (;;)
Packit 762fc5
    {
Packit 762fc5
      yyn = yypact[yystate];
Packit 762fc5
      if (!yypact_value_is_default (yyn))
Packit 762fc5
        {
Packit 762fc5
          yyn += YYTERROR;
Packit 762fc5
          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
Packit 762fc5
            {
Packit 762fc5
              yyn = yytable[yyn];
Packit 762fc5
              if (0 < yyn)
Packit 762fc5
                break;
Packit 762fc5
            }
Packit 762fc5
        }
Packit 762fc5
Packit 762fc5
      /* Pop the current state because it cannot handle the error token.  */
Packit 762fc5
      if (yyssp == yyss)
Packit 762fc5
        YYABORT;
Packit 762fc5
Packit 762fc5
Packit 762fc5
      yydestruct ("Error: popping",
Packit 762fc5
                  yystos[yystate], yyvsp);
Packit 762fc5
      YYPOPSTACK (1);
Packit 762fc5
      yystate = *yyssp;
Packit 762fc5
      YY_STACK_PRINT (yyss, yyssp);
Packit 762fc5
    }
Packit 762fc5
Packit 762fc5
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
Packit 762fc5
  *++yyvsp = yylval;
Packit 762fc5
  YY_IGNORE_MAYBE_UNINITIALIZED_END
Packit 762fc5
Packit 762fc5
Packit 762fc5
  /* Shift the error token.  */
Packit 762fc5
  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
Packit 762fc5
Packit 762fc5
  yystate = yyn;
Packit 762fc5
  goto yynewstate;
Packit 762fc5
Packit 762fc5
Packit 762fc5
/*-------------------------------------.
Packit 762fc5
| yyacceptlab -- YYACCEPT comes here.  |
Packit 762fc5
`-------------------------------------*/
Packit 762fc5
yyacceptlab:
Packit 762fc5
  yyresult = 0;
Packit 762fc5
  goto yyreturn;
Packit 762fc5
Packit 762fc5
/*-----------------------------------.
Packit 762fc5
| yyabortlab -- YYABORT comes here.  |
Packit 762fc5
`-----------------------------------*/
Packit 762fc5
yyabortlab:
Packit 762fc5
  yyresult = 1;
Packit 762fc5
  goto yyreturn;
Packit 762fc5
Packit 762fc5
#if !defined yyoverflow || YYERROR_VERBOSE
Packit 762fc5
/*-------------------------------------------------.
Packit 762fc5
| yyexhaustedlab -- memory exhaustion comes here.  |
Packit 762fc5
`-------------------------------------------------*/
Packit 762fc5
yyexhaustedlab:
Packit 762fc5
  yyerror (YY_("memory exhausted"));
Packit 762fc5
  yyresult = 2;
Packit 762fc5
  /* Fall through.  */
Packit 762fc5
#endif
Packit 762fc5
Packit 762fc5
yyreturn:
Packit 762fc5
  if (yychar != YYEMPTY)
Packit 762fc5
    {
Packit 762fc5
      /* Make sure we have latest lookahead translation.  See comments at
Packit 762fc5
         user semantic actions for why this is necessary.  */
Packit 762fc5
      yytoken = YYTRANSLATE (yychar);
Packit 762fc5
      yydestruct ("Cleanup: discarding lookahead",
Packit 762fc5
                  yytoken, &yylval);
Packit 762fc5
    }
Packit 762fc5
  /* Do not reclaim the symbols of the rule whose action triggered
Packit 762fc5
     this YYABORT or YYACCEPT.  */
Packit 762fc5
  YYPOPSTACK (yylen);
Packit 762fc5
  YY_STACK_PRINT (yyss, yyssp);
Packit 762fc5
  while (yyssp != yyss)
Packit 762fc5
    {
Packit 762fc5
      yydestruct ("Cleanup: popping",
Packit 762fc5
                  yystos[*yyssp], yyvsp);
Packit 762fc5
      YYPOPSTACK (1);
Packit 762fc5
    }
Packit 762fc5
#ifndef yyoverflow
Packit 762fc5
  if (yyss != yyssa)
Packit 762fc5
    YYSTACK_FREE (yyss);
Packit 762fc5
#endif
Packit 762fc5
#if YYERROR_VERBOSE
Packit 762fc5
  if (yymsg != yymsgbuf)
Packit 762fc5
    YYSTACK_FREE (yymsg);
Packit 762fc5
#endif
Packit 762fc5
  return yyresult;
Packit 762fc5
}
Packit 762fc5
#line 420 "src/conf_yacc.y" /* yacc.c:1906  */
Packit 762fc5
Packit 762fc5
Packit 762fc5
Packit 762fc5
void conferror(const char *msg){
Packit 762fc5
  error(0,"%li:%s:%s\n",conf_lineno-1,msg,conftext);
Packit 762fc5
Packit 762fc5
}
Packit 762fc5
Packit 762fc5
const char* aide_key_1=CONFHMACKEY_01;
Packit 762fc5
const char* db_key_1=DBHMACKEY_01;
Packit 762fc5