-/* A Bison parser, made by GNU Bison 2.3. */
-
-/* Skeleton implementation for Bison's Yacc-like parsers in C
-
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
- Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-/* As a special exception, you may create a larger work that contains
- part or all of the Bison parser skeleton and distribute that work
- under terms of your choice, so long as that work isn't itself a
- parser generator using the skeleton or a modified version thereof
- as a parser skeleton. Alternatively, if you modify or redistribute
- the parser skeleton itself, you may (at your option) remove this
- special exception, which will cause the skeleton and the resulting
- Bison output files to be licensed under the GNU General Public
- License without this special exception.
-
- This special exception was added by the Free Software Foundation in
- version 2.2 of Bison. */
-
-/* C LALR(1) parser skeleton written by Richard Stallman, by
- simplifying the original so-called "semantic" parser. */
-
-/* All symbols defined below should begin with yy or YY, to avoid
- infringing on user name space. This should be done even for local
- variables, as they might otherwise be expanded by user macros.
- There are some unavoidable exceptions within include files to
- define necessary library symbols; they are noted "INFRINGES ON
- USER NAME SPACE" below. */
-
-/* Identify Bison output. */
-#define YYBISON 1
-
-/* Bison version. */
-#define YYBISON_VERSION "2.3"
-
-/* Skeleton name. */
-#define YYSKELETON_NAME "yacc.c"
-
-/* Pure parsers. */
-#define YYPURE 0
-
-/* Using locations. */
-#define YYLSP_NEEDED 0
-
-
-
-/* Tokens. */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
- /* Put the tokens into the symbol table, so that GDB and other debuggers
- know about them. */
- enum yytokentype {
- SPACE = 258,
- LETTER = 259,
- NEWLINE = 260,
- COMMENT = 261,
- COLON = 262,
- ANY = 263,
- ZONESTR = 264,
- STRING = 265,
- VAR_SERVER = 266,
- VAR_VERBOSITY = 267,
- VAR_NUM_THREADS = 268,
- VAR_PORT = 269,
- VAR_OUTGOING_RANGE = 270,
- VAR_INTERFACE = 271,
- VAR_DO_IP4 = 272,
- VAR_DO_IP6 = 273,
- VAR_DO_UDP = 274,
- VAR_DO_TCP = 275,
- VAR_CHROOT = 276,
- VAR_USERNAME = 277,
- VAR_DIRECTORY = 278,
- VAR_LOGFILE = 279,
- VAR_PIDFILE = 280,
- VAR_MSG_CACHE_SIZE = 281,
- VAR_MSG_CACHE_SLABS = 282,
- VAR_NUM_QUERIES_PER_THREAD = 283,
- VAR_RRSET_CACHE_SIZE = 284,
- VAR_RRSET_CACHE_SLABS = 285,
- VAR_OUTGOING_NUM_TCP = 286,
- VAR_INFRA_HOST_TTL = 287,
- VAR_INFRA_LAME_TTL = 288,
- VAR_INFRA_CACHE_SLABS = 289,
- VAR_INFRA_CACHE_NUMHOSTS = 290,
- VAR_INFRA_CACHE_LAME_SIZE = 291,
- VAR_NAME = 292,
- VAR_STUB_ZONE = 293,
- VAR_STUB_HOST = 294,
- VAR_STUB_ADDR = 295,
- VAR_TARGET_FETCH_POLICY = 296,
- VAR_HARDEN_SHORT_BUFSIZE = 297,
- VAR_HARDEN_LARGE_QUERIES = 298,
- VAR_FORWARD_ZONE = 299,
- VAR_FORWARD_HOST = 300,
- VAR_FORWARD_ADDR = 301,
- VAR_DO_NOT_QUERY_ADDRESS = 302,
- VAR_HIDE_IDENTITY = 303,
- VAR_HIDE_VERSION = 304,
- VAR_IDENTITY = 305,
- VAR_VERSION = 306,
- VAR_HARDEN_GLUE = 307,
- VAR_MODULE_CONF = 308,
- VAR_TRUST_ANCHOR_FILE = 309,
- VAR_TRUST_ANCHOR = 310,
- VAR_VAL_OVERRIDE_DATE = 311,
- VAR_BOGUS_TTL = 312,
- VAR_VAL_CLEAN_ADDITIONAL = 313,
- VAR_VAL_PERMISSIVE_MODE = 314,
- VAR_INCOMING_NUM_TCP = 315,
- VAR_MSG_BUFFER_SIZE = 316,
- VAR_KEY_CACHE_SIZE = 317,
- VAR_KEY_CACHE_SLABS = 318,
- VAR_TRUSTED_KEYS_FILE = 319,
- VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 320,
- VAR_USE_SYSLOG = 321,
- VAR_OUTGOING_INTERFACE = 322,
- VAR_ROOT_HINTS = 323,
- VAR_DO_NOT_QUERY_LOCALHOST = 324,
- VAR_CACHE_MAX_TTL = 325,
- VAR_HARDEN_DNNSEC_STRIPPED = 326,
- VAR_ACCESS_CONTROL = 327,
- VAR_LOCAL_ZONE = 328,
- VAR_LOCAL_DATA = 329,
- VAR_INTERFACE_AUTOMATIC = 330,
- VAR_STATISTICS_INTERVAL = 331,
- VAR_DO_DAEMONIZE = 332,
- VAR_USE_CAPS_FOR_ID = 333,
- VAR_STATISTICS_CUMULATIVE = 334,
- VAR_OUTGOING_PORT_PERMIT = 335,
- VAR_OUTGOING_PORT_AVOID = 336,
- VAR_DLV_ANCHOR_FILE = 337,
- VAR_DLV_ANCHOR = 338,
- VAR_NEG_CACHE_SIZE = 339,
- VAR_HARDEN_REFERRAL_PATH = 340,
- VAR_PRIVATE_ADDRESS = 341,
- VAR_PRIVATE_DOMAIN = 342,
- VAR_REMOTE_CONTROL = 343,
- VAR_CONTROL_ENABLE = 344,
- VAR_CONTROL_INTERFACE = 345,
- VAR_CONTROL_PORT = 346,
- VAR_SERVER_KEY_FILE = 347,
- VAR_SERVER_CERT_FILE = 348,
- VAR_CONTROL_KEY_FILE = 349,
- VAR_CONTROL_CERT_FILE = 350,
- VAR_EXTENDED_STATISTICS = 351,
- VAR_LOCAL_DATA_PTR = 352,
- VAR_JOSTLE_TIMEOUT = 353,
- VAR_STUB_PRIME = 354,
- VAR_UNWANTED_REPLY_THRESHOLD = 355,
- VAR_LOG_TIME_ASCII = 356
- };
+#ifndef lint
+static const char yysccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93";
#endif
-/* Tokens. */
-#define SPACE 258
-#define LETTER 259
-#define NEWLINE 260
-#define COMMENT 261
-#define COLON 262
-#define ANY 263
-#define ZONESTR 264
-#define STRING 265
-#define VAR_SERVER 266
-#define VAR_VERBOSITY 267
-#define VAR_NUM_THREADS 268
-#define VAR_PORT 269
-#define VAR_OUTGOING_RANGE 270
-#define VAR_INTERFACE 271
-#define VAR_DO_IP4 272
-#define VAR_DO_IP6 273
-#define VAR_DO_UDP 274
-#define VAR_DO_TCP 275
-#define VAR_CHROOT 276
-#define VAR_USERNAME 277
-#define VAR_DIRECTORY 278
-#define VAR_LOGFILE 279
-#define VAR_PIDFILE 280
-#define VAR_MSG_CACHE_SIZE 281
-#define VAR_MSG_CACHE_SLABS 282
-#define VAR_NUM_QUERIES_PER_THREAD 283
-#define VAR_RRSET_CACHE_SIZE 284
-#define VAR_RRSET_CACHE_SLABS 285
-#define VAR_OUTGOING_NUM_TCP 286
-#define VAR_INFRA_HOST_TTL 287
-#define VAR_INFRA_LAME_TTL 288
-#define VAR_INFRA_CACHE_SLABS 289
-#define VAR_INFRA_CACHE_NUMHOSTS 290
-#define VAR_INFRA_CACHE_LAME_SIZE 291
-#define VAR_NAME 292
-#define VAR_STUB_ZONE 293
-#define VAR_STUB_HOST 294
-#define VAR_STUB_ADDR 295
-#define VAR_TARGET_FETCH_POLICY 296
-#define VAR_HARDEN_SHORT_BUFSIZE 297
-#define VAR_HARDEN_LARGE_QUERIES 298
-#define VAR_FORWARD_ZONE 299
-#define VAR_FORWARD_HOST 300
-#define VAR_FORWARD_ADDR 301
-#define VAR_DO_NOT_QUERY_ADDRESS 302
-#define VAR_HIDE_IDENTITY 303
-#define VAR_HIDE_VERSION 304
-#define VAR_IDENTITY 305
-#define VAR_VERSION 306
-#define VAR_HARDEN_GLUE 307
-#define VAR_MODULE_CONF 308
-#define VAR_TRUST_ANCHOR_FILE 309
-#define VAR_TRUST_ANCHOR 310
-#define VAR_VAL_OVERRIDE_DATE 311
-#define VAR_BOGUS_TTL 312
-#define VAR_VAL_CLEAN_ADDITIONAL 313
-#define VAR_VAL_PERMISSIVE_MODE 314
-#define VAR_INCOMING_NUM_TCP 315
-#define VAR_MSG_BUFFER_SIZE 316
-#define VAR_KEY_CACHE_SIZE 317
-#define VAR_KEY_CACHE_SLABS 318
-#define VAR_TRUSTED_KEYS_FILE 319
-#define VAR_VAL_NSEC3_KEYSIZE_ITERATIONS 320
-#define VAR_USE_SYSLOG 321
-#define VAR_OUTGOING_INTERFACE 322
-#define VAR_ROOT_HINTS 323
-#define VAR_DO_NOT_QUERY_LOCALHOST 324
-#define VAR_CACHE_MAX_TTL 325
-#define VAR_HARDEN_DNNSEC_STRIPPED 326
-#define VAR_ACCESS_CONTROL 327
-#define VAR_LOCAL_ZONE 328
-#define VAR_LOCAL_DATA 329
-#define VAR_INTERFACE_AUTOMATIC 330
-#define VAR_STATISTICS_INTERVAL 331
-#define VAR_DO_DAEMONIZE 332
-#define VAR_USE_CAPS_FOR_ID 333
-#define VAR_STATISTICS_CUMULATIVE 334
-#define VAR_OUTGOING_PORT_PERMIT 335
-#define VAR_OUTGOING_PORT_AVOID 336
-#define VAR_DLV_ANCHOR_FILE 337
-#define VAR_DLV_ANCHOR 338
-#define VAR_NEG_CACHE_SIZE 339
-#define VAR_HARDEN_REFERRAL_PATH 340
-#define VAR_PRIVATE_ADDRESS 341
-#define VAR_PRIVATE_DOMAIN 342
-#define VAR_REMOTE_CONTROL 343
-#define VAR_CONTROL_ENABLE 344
-#define VAR_CONTROL_INTERFACE 345
-#define VAR_CONTROL_PORT 346
-#define VAR_SERVER_KEY_FILE 347
-#define VAR_SERVER_CERT_FILE 348
-#define VAR_CONTROL_KEY_FILE 349
-#define VAR_CONTROL_CERT_FILE 350
-#define VAR_EXTENDED_STATISTICS 351
-#define VAR_LOCAL_DATA_PTR 352
-#define VAR_JOSTLE_TIMEOUT 353
-#define VAR_STUB_PRIME 354
-#define VAR_UNWANTED_REPLY_THRESHOLD 355
-#define VAR_LOG_TIME_ASCII 356
+#include <stdlib.h>
+#include <string.h>
+#define YYBYACC 1
+#define YYMAJOR 1
+#define YYMINOR 9
+#define YYPATCH 20070509
+#define YYEMPTY (-1)
+#define yyclearin (yychar = YYEMPTY)
+#define yyerrok (yyerrflag = 0)
+#define YYRECOVERING (yyerrflag != 0)
-/* Copy the first part of user declarations. */
-#line 38 "util/configparser.y"
+extern int yyparse(void);
+static int yygrowstack(void);
+#define YYPREFIX "yy"
+#line 39 "util/configparser.y"
#include "config.h"
#include <stdarg.h>
#define OUTYY(s)
#endif
-
-
-/* Enabling traces. */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
-
-/* Enabling verbose error messages. */
-#ifdef YYERROR_VERBOSE
-# undef YYERROR_VERBOSE
-# define YYERROR_VERBOSE 1
-#else
-# define YYERROR_VERBOSE 0
-#endif
-
-/* Enabling the token table. */
-#ifndef YYTOKEN_TABLE
-# define YYTOKEN_TABLE 0
-#endif
-
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE
#line 64 "util/configparser.y"
-{
+typedef union {
char* str;
-}
-/* Line 187 of yacc.c. */
-#line 329 "util/configparser.c"
- YYSTYPE;
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
-#endif
-
-
-
-/* Copy the second part of user declarations. */
-
-
-/* Line 216 of yacc.c. */
-#line 342 "util/configparser.c"
-
-#ifdef short
-# undef short
-#endif
-
-#ifdef YYTYPE_UINT8
-typedef YYTYPE_UINT8 yytype_uint8;
-#else
-typedef unsigned char yytype_uint8;
-#endif
-
-#ifdef YYTYPE_INT8
-typedef YYTYPE_INT8 yytype_int8;
-#elif (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-typedef signed char yytype_int8;
-#else
-typedef short int yytype_int8;
-#endif
-
-#ifdef YYTYPE_UINT16
-typedef YYTYPE_UINT16 yytype_uint16;
-#else
-typedef unsigned short int yytype_uint16;
-#endif
-
-#ifdef YYTYPE_INT16
-typedef YYTYPE_INT16 yytype_int16;
-#else
-typedef short int yytype_int16;
-#endif
-
-#ifndef YYSIZE_T
-# ifdef __SIZE_TYPE__
-# define YYSIZE_T __SIZE_TYPE__
-# elif defined size_t
-# define YYSIZE_T size_t
-# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-# define YYSIZE_T size_t
-# else
-# define YYSIZE_T unsigned int
-# endif
-#endif
-
-#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
-
-#ifndef YY_
-# if YYENABLE_NLS
-# if ENABLE_NLS
-# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-# define YY_(msgid) dgettext ("bison-runtime", msgid)
-# endif
-# endif
-# ifndef YY_
-# define YY_(msgid) msgid
-# endif
-#endif
-
-/* Suppress unused-variable warnings by "using" E. */
-#if ! defined lint || defined __GNUC__
-# define YYUSE(e) ((void) (e))
-#else
-# define YYUSE(e) /* empty */
-#endif
-
-/* Identity function, used to suppress warnings about constant conditions. */
-#ifndef lint
-# define YYID(n) (n)
-#else
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static int
-YYID (int i)
-#else
-static int
-YYID (i)
- int i;
-#endif
-{
- return i;
-}
-#endif
-
-#if ! defined yyoverflow || YYERROR_VERBOSE
-
-/* The parser invokes alloca or malloc; define the necessary symbols. */
-
-# ifdef YYSTACK_USE_ALLOCA
-# if YYSTACK_USE_ALLOCA
-# ifdef __GNUC__
-# define YYSTACK_ALLOC __builtin_alloca
-# elif defined __BUILTIN_VA_ARG_INCR
-# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
-# elif defined _AIX
-# define YYSTACK_ALLOC __alloca
-# elif defined _MSC_VER
-# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
-# define alloca _alloca
-# else
-# define YYSTACK_ALLOC alloca
-# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# ifndef _STDLIB_H
-# define _STDLIB_H 1
-# endif
-# endif
-# endif
-# endif
-# endif
-
-# ifdef YYSTACK_ALLOC
- /* Pacify GCC's `empty if-body' warning. */
-# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
-# ifndef YYSTACK_ALLOC_MAXIMUM
- /* The OS might guarantee only one guard page at the bottom of the stack,
- and a page size can be as small as 4096 bytes. So we cannot safely
- invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
- to allow for a few compiler-allocated temporary stack slots. */
-# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
-# endif
-# else
-# define YYSTACK_ALLOC YYMALLOC
-# define YYSTACK_FREE YYFREE
-# ifndef YYSTACK_ALLOC_MAXIMUM
-# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
-# endif
-# if (defined __cplusplus && ! defined _STDLIB_H \
- && ! ((defined YYMALLOC || defined malloc) \
- && (defined YYFREE || defined free)))
-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# ifndef _STDLIB_H
-# define _STDLIB_H 1
-# endif
-# endif
-# ifndef YYMALLOC
-# define YYMALLOC malloc
-# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
-# endif
-# endif
-# ifndef YYFREE
-# define YYFREE free
-# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-void free (void *); /* INFRINGES ON USER NAME SPACE */
-# endif
-# endif
-# endif
-#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
-
-
-#if (! defined yyoverflow \
- && (! defined __cplusplus \
- || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
-
-/* A type that is properly aligned for any stack member. */
-union yyalloc
-{
- yytype_int16 yyss;
- YYSTYPE yyvs;
- };
-
-/* The size of the maximum gap between one aligned stack and the next. */
-# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
-
-/* The size of an array large to enough to hold all stacks, each with
- N elements. */
-# define YYSTACK_BYTES(N) \
- ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
- + YYSTACK_GAP_MAXIMUM)
-
-/* Copy COUNT objects from FROM to TO. The source and destination do
- not overlap. */
-# ifndef YYCOPY
-# if defined __GNUC__ && 1 < __GNUC__
-# define YYCOPY(To, From, Count) \
- __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
-# else
-# define YYCOPY(To, From, Count) \
- do \
- { \
- YYSIZE_T yyi; \
- for (yyi = 0; yyi < (Count); yyi++) \
- (To)[yyi] = (From)[yyi]; \
- } \
- while (YYID (0))
-# endif
-# endif
-
-/* Relocate STACK from its old location to the new one. The
- local variables YYSIZE and YYSTACKSIZE give the old and new number of
- elements in the stack, and YYPTR gives the new location of the
- stack. Advance YYPTR to a properly aligned location for the next
- stack. */
-# define YYSTACK_RELOCATE(Stack) \
- do \
- { \
- YYSIZE_T yynewbytes; \
- YYCOPY (&yyptr->Stack, Stack, yysize); \
- Stack = &yyptr->Stack; \
- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
- yyptr += yynewbytes / sizeof (*yyptr); \
- } \
- while (YYID (0))
-
-#endif
-
-/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 2
-/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 182
-
-/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 102
-/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 103
-/* YYNRULES -- Number of rules. */
-#define YYNRULES 195
-/* YYNRULES -- Number of states. */
-#define YYNSTATES 286
-
-/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
-#define YYUNDEFTOK 2
-#define YYMAXUTOK 356
-
-#define YYTRANSLATE(YYX) \
- ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-
-/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
-static const yytype_uint8 yytranslate[] =
-{
- 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
- 95, 96, 97, 98, 99, 100, 101
-};
-
-#if YYDEBUG
-/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
- YYRHS. */
-static const yytype_uint16 yyprhs[] =
-{
- 0, 0, 3, 4, 7, 10, 13, 16, 19, 21,
- 24, 25, 27, 29, 31, 33, 35, 37, 39, 41,
- 43, 45, 47, 49, 51, 53, 55, 57, 59, 61,
- 63, 65, 67, 69, 71, 73, 75, 77, 79, 81,
- 83, 85, 87, 89, 91, 93, 95, 97, 99, 101,
- 103, 105, 107, 109, 111, 113, 115, 117, 119, 121,
- 123, 125, 127, 129, 131, 133, 135, 137, 139, 141,
- 143, 145, 147, 149, 151, 153, 155, 157, 159, 161,
- 163, 165, 167, 169, 171, 173, 175, 178, 179, 181,
- 183, 185, 187, 189, 192, 193, 195, 197, 199, 202,
- 205, 208, 211, 214, 217, 220, 223, 226, 229, 232,
- 235, 238, 241, 244, 247, 250, 253, 256, 259, 262,
- 265, 268, 271, 274, 277, 280, 283, 286, 289, 292,
- 295, 298, 301, 304, 307, 310, 313, 316, 319, 322,
- 325, 328, 331, 334, 337, 340, 343, 346, 349, 352,
- 355, 358, 361, 364, 367, 370, 373, 376, 379, 383,
- 386, 389, 392, 395, 398, 401, 404, 407, 410, 413,
- 417, 420, 423, 426, 429, 432, 435, 438, 441, 444,
- 446, 449, 450, 452, 454, 456, 458, 460, 462, 464,
- 467, 470, 473, 476, 479, 482
-};
-
-/* YYRHS -- A `-1'-separated list of the rules' RHS. */
-static const yytype_int16 yyrhs[] =
-{
- 103, 0, -1, -1, 103, 104, -1, 105, 106, -1,
- 108, 109, -1, 111, 112, -1, 195, 196, -1, 11,
- -1, 106, 107, -1, -1, 114, -1, 115, -1, 119,
- -1, 122, -1, 128, -1, 129, -1, 130, -1, 131,
- -1, 120, -1, 135, -1, 136, -1, 137, -1, 138,
- -1, 139, -1, 151, -1, 152, -1, 153, -1, 155,
- -1, 156, -1, 125, -1, 157, -1, 158, -1, 161,
- -1, 159, -1, 160, -1, 162, -1, 163, -1, 164,
- -1, 172, -1, 146, -1, 147, -1, 148, -1, 149,
- -1, 165, -1, 175, -1, 143, -1, 145, -1, 176,
- -1, 178, -1, 179, -1, 180, -1, 126, -1, 150,
- -1, 182, -1, 183, -1, 144, -1, 181, -1, 133,
- -1, 121, -1, 140, -1, 173, -1, 177, -1, 166,
- -1, 174, -1, 185, -1, 186, -1, 127, -1, 116,
- -1, 132, -1, 168, -1, 117, -1, 123, -1, 124,
- -1, 141, -1, 142, -1, 184, -1, 167, -1, 169,
- -1, 170, -1, 118, -1, 187, -1, 154, -1, 171,
- -1, 134, -1, 38, -1, 109, 110, -1, -1, 188,
- -1, 189, -1, 190, -1, 191, -1, 44, -1, 112,
- 113, -1, -1, 192, -1, 193, -1, 194, -1, 13,
- 10, -1, 12, 10, -1, 76, 10, -1, 79, 10,
- -1, 96, 10, -1, 14, 10, -1, 16, 10, -1,
- 67, 10, -1, 15, 10, -1, 80, 10, -1, 81,
- 10, -1, 31, 10, -1, 60, 10, -1, 75, 10,
- -1, 17, 10, -1, 18, 10, -1, 19, 10, -1,
- 20, 10, -1, 77, 10, -1, 66, 10, -1, 101,
- 10, -1, 21, 10, -1, 22, 10, -1, 23, 10,
- -1, 24, 10, -1, 25, 10, -1, 68, 10, -1,
- 82, 10, -1, 83, 10, -1, 54, 10, -1, 64,
- 10, -1, 55, 10, -1, 48, 10, -1, 49, 10,
- -1, 50, 10, -1, 51, 10, -1, 61, 10, -1,
- 26, 10, -1, 27, 10, -1, 28, 10, -1, 98,
- 10, -1, 29, 10, -1, 30, 10, -1, 32, 10,
- -1, 33, 10, -1, 35, 10, -1, 36, 10, -1,
- 34, 10, -1, 41, 10, -1, 42, 10, -1, 43,
- 10, -1, 52, 10, -1, 71, 10, -1, 85, 10,
- -1, 78, 10, -1, 86, 10, -1, 87, 10, -1,
- 100, 10, -1, 47, 10, -1, 69, 10, -1, 72,
- 10, 10, -1, 53, 10, -1, 56, 10, -1, 70,
- 10, -1, 57, 10, -1, 58, 10, -1, 59, 10,
- -1, 65, 10, -1, 62, 10, -1, 63, 10, -1,
- 84, 10, -1, 73, 10, 10, -1, 74, 10, -1,
- 97, 10, -1, 37, 10, -1, 39, 10, -1, 40,
- 10, -1, 99, 10, -1, 37, 10, -1, 45, 10,
- -1, 46, 10, -1, 88, -1, 196, 197, -1, -1,
- 198, -1, 200, -1, 199, -1, 201, -1, 202, -1,
- 203, -1, 204, -1, 89, 10, -1, 91, 10, -1,
- 90, 10, -1, 92, 10, -1, 93, 10, -1, 94,
- 10, -1, 95, 10, -1
-};
-
-/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
-static const yytype_uint16 yyrline[] =
-{
- 0, 102, 102, 102, 103, 103, 104, 104, 108, 113,
- 114, 115, 115, 115, 116, 116, 117, 117, 117, 118,
- 118, 118, 119, 119, 119, 120, 120, 121, 121, 122,
- 122, 123, 123, 124, 124, 125, 125, 126, 126, 127,
- 127, 128, 128, 128, 129, 129, 129, 130, 130, 130,
- 131, 131, 132, 132, 133, 133, 134, 134, 135, 135,
- 135, 136, 136, 137, 137, 138, 138, 138, 139, 139,
- 140, 140, 141, 141, 142, 142, 142, 143, 143, 144,
- 144, 145, 145, 146, 146, 148, 160, 161, 162, 162,
- 162, 162, 164, 176, 177, 178, 178, 178, 180, 189,
- 198, 209, 218, 227, 236, 249, 264, 273, 282, 291,
- 300, 309, 318, 327, 336, 345, 354, 363, 377, 386,
- 393, 400, 407, 415, 422, 429, 436, 443, 451, 459,
- 466, 475, 484, 491, 498, 509, 517, 530, 539, 548,
- 556, 569, 578, 587, 596, 605, 618, 625, 635, 645,
- 655, 665, 675, 685, 692, 699, 708, 715, 725, 739,
- 746, 764, 773, 782, 792, 802, 809, 817, 830, 838,
- 858, 865, 880, 887, 894, 901, 911, 918, 925, 932,
- 937, 938, 939, 939, 939, 940, 940, 940, 941, 943,
- 953, 962, 969, 976, 983, 990
-};
-#endif
-
-#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
-/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
- First, the terminals, then, starting at YYNTOKENS, nonterminals. */
-static const char *const yytname[] =
-{
- "$end", "error", "$undefined", "SPACE", "LETTER", "NEWLINE", "COMMENT",
- "COLON", "ANY", "ZONESTR", "STRING", "VAR_SERVER", "VAR_VERBOSITY",
- "VAR_NUM_THREADS", "VAR_PORT", "VAR_OUTGOING_RANGE", "VAR_INTERFACE",
- "VAR_DO_IP4", "VAR_DO_IP6", "VAR_DO_UDP", "VAR_DO_TCP", "VAR_CHROOT",
- "VAR_USERNAME", "VAR_DIRECTORY", "VAR_LOGFILE", "VAR_PIDFILE",
- "VAR_MSG_CACHE_SIZE", "VAR_MSG_CACHE_SLABS",
- "VAR_NUM_QUERIES_PER_THREAD", "VAR_RRSET_CACHE_SIZE",
- "VAR_RRSET_CACHE_SLABS", "VAR_OUTGOING_NUM_TCP", "VAR_INFRA_HOST_TTL",
- "VAR_INFRA_LAME_TTL", "VAR_INFRA_CACHE_SLABS",
- "VAR_INFRA_CACHE_NUMHOSTS", "VAR_INFRA_CACHE_LAME_SIZE", "VAR_NAME",
- "VAR_STUB_ZONE", "VAR_STUB_HOST", "VAR_STUB_ADDR",
- "VAR_TARGET_FETCH_POLICY", "VAR_HARDEN_SHORT_BUFSIZE",
- "VAR_HARDEN_LARGE_QUERIES", "VAR_FORWARD_ZONE", "VAR_FORWARD_HOST",
- "VAR_FORWARD_ADDR", "VAR_DO_NOT_QUERY_ADDRESS", "VAR_HIDE_IDENTITY",
- "VAR_HIDE_VERSION", "VAR_IDENTITY", "VAR_VERSION", "VAR_HARDEN_GLUE",
- "VAR_MODULE_CONF", "VAR_TRUST_ANCHOR_FILE", "VAR_TRUST_ANCHOR",
- "VAR_VAL_OVERRIDE_DATE", "VAR_BOGUS_TTL", "VAR_VAL_CLEAN_ADDITIONAL",
- "VAR_VAL_PERMISSIVE_MODE", "VAR_INCOMING_NUM_TCP", "VAR_MSG_BUFFER_SIZE",
- "VAR_KEY_CACHE_SIZE", "VAR_KEY_CACHE_SLABS", "VAR_TRUSTED_KEYS_FILE",
- "VAR_VAL_NSEC3_KEYSIZE_ITERATIONS", "VAR_USE_SYSLOG",
- "VAR_OUTGOING_INTERFACE", "VAR_ROOT_HINTS", "VAR_DO_NOT_QUERY_LOCALHOST",
- "VAR_CACHE_MAX_TTL", "VAR_HARDEN_DNNSEC_STRIPPED", "VAR_ACCESS_CONTROL",
- "VAR_LOCAL_ZONE", "VAR_LOCAL_DATA", "VAR_INTERFACE_AUTOMATIC",
- "VAR_STATISTICS_INTERVAL", "VAR_DO_DAEMONIZE", "VAR_USE_CAPS_FOR_ID",
- "VAR_STATISTICS_CUMULATIVE", "VAR_OUTGOING_PORT_PERMIT",
- "VAR_OUTGOING_PORT_AVOID", "VAR_DLV_ANCHOR_FILE", "VAR_DLV_ANCHOR",
- "VAR_NEG_CACHE_SIZE", "VAR_HARDEN_REFERRAL_PATH", "VAR_PRIVATE_ADDRESS",
- "VAR_PRIVATE_DOMAIN", "VAR_REMOTE_CONTROL", "VAR_CONTROL_ENABLE",
- "VAR_CONTROL_INTERFACE", "VAR_CONTROL_PORT", "VAR_SERVER_KEY_FILE",
- "VAR_SERVER_CERT_FILE", "VAR_CONTROL_KEY_FILE", "VAR_CONTROL_CERT_FILE",
- "VAR_EXTENDED_STATISTICS", "VAR_LOCAL_DATA_PTR", "VAR_JOSTLE_TIMEOUT",
- "VAR_STUB_PRIME", "VAR_UNWANTED_REPLY_THRESHOLD", "VAR_LOG_TIME_ASCII",
- "$accept", "toplevelvars", "toplevelvar", "serverstart",
- "contents_server", "content_server", "stubstart", "contents_stub",
- "content_stub", "forwardstart", "contents_forward", "content_forward",
- "server_num_threads", "server_verbosity", "server_statistics_interval",
- "server_statistics_cumulative", "server_extended_statistics",
- "server_port", "server_interface", "server_outgoing_interface",
- "server_outgoing_range", "server_outgoing_port_permit",
- "server_outgoing_port_avoid", "server_outgoing_num_tcp",
- "server_incoming_num_tcp", "server_interface_automatic", "server_do_ip4",
- "server_do_ip6", "server_do_udp", "server_do_tcp", "server_do_daemonize",
- "server_use_syslog", "server_log_time_ascii", "server_chroot",
- "server_username", "server_directory", "server_logfile",
- "server_pidfile", "server_root_hints", "server_dlv_anchor_file",
- "server_dlv_anchor", "server_trust_anchor_file",
- "server_trusted_keys_file", "server_trust_anchor",
- "server_hide_identity", "server_hide_version", "server_identity",
- "server_version", "server_msg_buffer_size", "server_msg_cache_size",
- "server_msg_cache_slabs", "server_num_queries_per_thread",
- "server_jostle_timeout", "server_rrset_cache_size",
- "server_rrset_cache_slabs", "server_infra_host_ttl",
- "server_infra_lame_ttl", "server_infra_cache_numhosts",
- "server_infra_cache_lame_size", "server_infra_cache_slabs",
- "server_target_fetch_policy", "server_harden_short_bufsize",
- "server_harden_large_queries", "server_harden_glue",
- "server_harden_dnssec_stripped", "server_harden_referral_path",
- "server_use_caps_for_id", "server_private_address",
- "server_private_domain", "server_unwanted_reply_threshold",
- "server_do_not_query_address", "server_do_not_query_localhost",
- "server_access_control", "server_module_conf",
- "server_val_override_date", "server_cache_max_ttl", "server_bogus_ttl",
- "server_val_clean_additional", "server_val_permissive_mode",
- "server_val_nsec3_keysize_iterations", "server_key_cache_size",
- "server_key_cache_slabs", "server_neg_cache_size", "server_local_zone",
- "server_local_data", "server_local_data_ptr", "stub_name", "stub_host",
- "stub_addr", "stub_prime", "forward_name", "forward_host",
- "forward_addr", "rcstart", "contents_rc", "content_rc",
- "rc_control_enable", "rc_control_port", "rc_control_interface",
- "rc_server_key_file", "rc_server_cert_file", "rc_control_key_file",
- "rc_control_cert_file", 0
+} YYSTYPE;
+#line 52 "util/configparser.c"
+#define SPACE 257
+#define LETTER 258
+#define NEWLINE 259
+#define COMMENT 260
+#define COLON 261
+#define ANY 262
+#define ZONESTR 263
+#define STRING 264
+#define VAR_SERVER 265
+#define VAR_VERBOSITY 266
+#define VAR_NUM_THREADS 267
+#define VAR_PORT 268
+#define VAR_OUTGOING_RANGE 269
+#define VAR_INTERFACE 270
+#define VAR_DO_IP4 271
+#define VAR_DO_IP6 272
+#define VAR_DO_UDP 273
+#define VAR_DO_TCP 274
+#define VAR_CHROOT 275
+#define VAR_USERNAME 276
+#define VAR_DIRECTORY 277
+#define VAR_LOGFILE 278
+#define VAR_PIDFILE 279
+#define VAR_MSG_CACHE_SIZE 280
+#define VAR_MSG_CACHE_SLABS 281
+#define VAR_NUM_QUERIES_PER_THREAD 282
+#define VAR_RRSET_CACHE_SIZE 283
+#define VAR_RRSET_CACHE_SLABS 284
+#define VAR_OUTGOING_NUM_TCP 285
+#define VAR_INFRA_HOST_TTL 286
+#define VAR_INFRA_LAME_TTL 287
+#define VAR_INFRA_CACHE_SLABS 288
+#define VAR_INFRA_CACHE_NUMHOSTS 289
+#define VAR_INFRA_CACHE_LAME_SIZE 290
+#define VAR_NAME 291
+#define VAR_STUB_ZONE 292
+#define VAR_STUB_HOST 293
+#define VAR_STUB_ADDR 294
+#define VAR_TARGET_FETCH_POLICY 295
+#define VAR_HARDEN_SHORT_BUFSIZE 296
+#define VAR_HARDEN_LARGE_QUERIES 297
+#define VAR_FORWARD_ZONE 298
+#define VAR_FORWARD_HOST 299
+#define VAR_FORWARD_ADDR 300
+#define VAR_DO_NOT_QUERY_ADDRESS 301
+#define VAR_HIDE_IDENTITY 302
+#define VAR_HIDE_VERSION 303
+#define VAR_IDENTITY 304
+#define VAR_VERSION 305
+#define VAR_HARDEN_GLUE 306
+#define VAR_MODULE_CONF 307
+#define VAR_TRUST_ANCHOR_FILE 308
+#define VAR_TRUST_ANCHOR 309
+#define VAR_VAL_OVERRIDE_DATE 310
+#define VAR_BOGUS_TTL 311
+#define VAR_VAL_CLEAN_ADDITIONAL 312
+#define VAR_VAL_PERMISSIVE_MODE 313
+#define VAR_INCOMING_NUM_TCP 314
+#define VAR_MSG_BUFFER_SIZE 315
+#define VAR_KEY_CACHE_SIZE 316
+#define VAR_KEY_CACHE_SLABS 317
+#define VAR_TRUSTED_KEYS_FILE 318
+#define VAR_VAL_NSEC3_KEYSIZE_ITERATIONS 319
+#define VAR_USE_SYSLOG 320
+#define VAR_OUTGOING_INTERFACE 321
+#define VAR_ROOT_HINTS 322
+#define VAR_DO_NOT_QUERY_LOCALHOST 323
+#define VAR_CACHE_MAX_TTL 324
+#define VAR_HARDEN_DNNSEC_STRIPPED 325
+#define VAR_ACCESS_CONTROL 326
+#define VAR_LOCAL_ZONE 327
+#define VAR_LOCAL_DATA 328
+#define VAR_INTERFACE_AUTOMATIC 329
+#define VAR_STATISTICS_INTERVAL 330
+#define VAR_DO_DAEMONIZE 331
+#define VAR_USE_CAPS_FOR_ID 332
+#define VAR_STATISTICS_CUMULATIVE 333
+#define VAR_OUTGOING_PORT_PERMIT 334
+#define VAR_OUTGOING_PORT_AVOID 335
+#define VAR_DLV_ANCHOR_FILE 336
+#define VAR_DLV_ANCHOR 337
+#define VAR_NEG_CACHE_SIZE 338
+#define VAR_HARDEN_REFERRAL_PATH 339
+#define VAR_PRIVATE_ADDRESS 340
+#define VAR_PRIVATE_DOMAIN 341
+#define VAR_REMOTE_CONTROL 342
+#define VAR_CONTROL_ENABLE 343
+#define VAR_CONTROL_INTERFACE 344
+#define VAR_CONTROL_PORT 345
+#define VAR_SERVER_KEY_FILE 346
+#define VAR_SERVER_CERT_FILE 347
+#define VAR_CONTROL_KEY_FILE 348
+#define VAR_CONTROL_CERT_FILE 349
+#define VAR_EXTENDED_STATISTICS 350
+#define VAR_LOCAL_DATA_PTR 351
+#define VAR_JOSTLE_TIMEOUT 352
+#define VAR_STUB_PRIME 353
+#define VAR_UNWANTED_REPLY_THRESHOLD 354
+#define VAR_LOG_TIME_ASCII 355
+#define YYERRCODE 256
+short yylhs[] = { -1,
+ 0, 0, 1, 1, 1, 1, 2, 3, 3, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 4, 5, 5, 85, 85, 85, 85,
+ 6, 7, 7, 90, 90, 90, 11, 12, 68, 71,
+ 80, 13, 19, 59, 14, 72, 73, 30, 52, 67,
+ 15, 16, 17, 18, 69, 58, 84, 20, 21, 22,
+ 23, 24, 60, 74, 75, 46, 56, 47, 40, 41,
+ 42, 43, 53, 25, 26, 27, 82, 28, 29, 31,
+ 32, 34, 35, 33, 36, 37, 38, 44, 63, 77,
+ 70, 78, 79, 83, 39, 61, 64, 45, 48, 62,
+ 49, 50, 51, 57, 54, 55, 76, 65, 66, 81,
+ 86, 87, 88, 89, 91, 92, 93, 8, 9, 9,
+ 94, 94, 94, 94, 94, 94, 94, 95, 97, 96,
+ 98, 99, 100, 101,
};
-#endif
-
-# ifdef YYPRINT
-/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
- token YYLEX-NUM. */
-static const yytype_uint16 yytoknum[] =
-{
- 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
- 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
- 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
- 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
- 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
- 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
- 355, 356
+short yylen[] = { 2,
+ 0, 2, 2, 2, 2, 2, 1, 2, 0, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 2, 0, 1, 1, 1, 1,
+ 1, 2, 0, 1, 1, 1, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 3, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 3, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 1, 2, 0,
+ 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
+ 2, 2, 2, 2,
};
-# endif
-
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
-static const yytype_uint8 yyr1[] =
-{
- 0, 102, 103, 103, 104, 104, 104, 104, 105, 106,
- 106, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 108, 109, 109, 110, 110,
- 110, 110, 111, 112, 112, 113, 113, 113, 114, 115,
- 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
- 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
- 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
- 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
- 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
- 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
- 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
- 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
- 196, 196, 197, 197, 197, 197, 197, 197, 197, 198,
- 199, 200, 201, 202, 203, 204
+short yydefred[] = { 1,
+ 0, 7, 84, 91, 178, 2, 9, 86, 93, 180,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 8, 10,
+ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
+ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
+ 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
+ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
+ 81, 82, 83, 0, 0, 0, 0, 85, 87, 88,
+ 89, 90, 0, 0, 0, 92, 94, 95, 96, 0,
+ 0, 0, 0, 0, 0, 0, 179, 181, 182, 183,
+ 184, 185, 186, 187, 98, 97, 102, 105, 103, 111,
+ 112, 113, 114, 118, 119, 120, 121, 122, 134, 135,
+ 136, 138, 139, 108, 140, 141, 144, 142, 143, 145,
+ 146, 147, 155, 129, 130, 131, 132, 148, 158, 126,
+ 128, 159, 161, 162, 163, 109, 133, 165, 166, 127,
+ 164, 116, 104, 123, 156, 160, 149, 0, 0, 169,
+ 110, 99, 115, 151, 100, 106, 107, 124, 125, 167,
+ 150, 152, 153, 101, 170, 137, 154, 117, 171, 172,
+ 173, 174, 175, 176, 177, 188, 190, 189, 191, 192,
+ 193, 194, 157, 168,
};
-
-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
-static const yytype_uint8 yyr2[] =
-{
- 0, 2, 0, 2, 2, 2, 2, 2, 1, 2,
- 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 2, 0, 1, 1,
- 1, 1, 1, 2, 0, 1, 1, 1, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 3, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 3,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
- 2, 0, 1, 1, 1, 1, 1, 1, 1, 2,
- 2, 2, 2, 2, 2, 2
+short yydgoto[] = { 1,
+ 6, 7, 11, 8, 12, 9, 13, 10, 14, 89,
+ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
+ 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
+ 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
+ 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
+ 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
+ 160, 161, 162, 163, 168, 169, 170, 171, 172, 176,
+ 177, 178, 179, 187, 188, 189, 190, 191, 192, 193,
+ 194,
};
-
-/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
- STATE-NUM when YYTABLE doesn't specify something else to do. Zero
- means the default is an error. */
-static const yytype_uint8 yydefact[] =
-{
- 2, 0, 1, 8, 85, 92, 179, 3, 10, 87,
- 94, 181, 4, 5, 6, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 9, 11, 12, 68, 71, 80, 13, 19, 59, 14,
- 72, 73, 30, 52, 67, 15, 16, 17, 18, 69,
- 58, 84, 20, 21, 22, 23, 24, 60, 74, 75,
- 46, 56, 47, 40, 41, 42, 43, 53, 25, 26,
- 27, 82, 28, 29, 31, 32, 34, 35, 33, 36,
- 37, 38, 44, 63, 77, 70, 78, 79, 83, 39,
- 61, 64, 45, 48, 62, 49, 50, 51, 57, 54,
- 55, 76, 65, 66, 81, 0, 0, 0, 0, 86,
- 88, 89, 90, 91, 0, 0, 0, 93, 95, 96,
- 97, 0, 0, 0, 0, 0, 0, 0, 180, 182,
- 184, 183, 185, 186, 187, 188, 99, 98, 103, 106,
- 104, 112, 113, 114, 115, 119, 120, 121, 122, 123,
- 135, 136, 137, 139, 140, 109, 141, 142, 145, 143,
- 144, 146, 147, 148, 156, 130, 131, 132, 133, 149,
- 159, 127, 129, 160, 162, 163, 164, 110, 134, 166,
- 167, 128, 165, 117, 105, 124, 157, 161, 150, 0,
- 0, 170, 111, 100, 116, 152, 101, 107, 108, 125,
- 126, 168, 151, 153, 154, 102, 171, 138, 155, 118,
- 172, 173, 174, 175, 176, 177, 178, 189, 191, 190,
- 192, 193, 194, 195, 158, 169
+short yysindex[] = { 0,
+ -184, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ -261, -209, -204, -246, -264, -234, -233, -232, -231, -227,
+ -226, -225, -181, -178, -176, -172, -160, -159, -158, -157,
+ -155, -154, -153, -152, -151, -149, -148, -147, -146, -145,
+ -144, -143, -142, -141, -140, -139, -138, -137, -136, -135,
+ -134, -133, -132, -131, -130, -129, -128, -127, -126, -125,
+ -124, -123, -122, -121, -119, -118, -117, -116, -115, -114,
+ -113, -112, -111, -110, -109, -108, -107, -105, -104, -103,
+ -102, -101, -100, -99, -98, -97, -96, -95, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, -94, -93, -92, -91, 0, 0, 0,
+ 0, 0, -90, -89, -88, 0, 0, 0, 0, -87,
+ -86, -85, -84, -83, -82, -81, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, -80, -79, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,
};
-
-/* YYDEFGOTO[NTERM-NUM]. */
-static const yytype_int16 yydefgoto[] =
-{
- -1, 1, 7, 8, 12, 90, 9, 13, 169, 10,
- 14, 177, 91, 92, 93, 94, 95, 96, 97, 98,
- 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
- 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
- 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
- 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
- 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
- 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
- 159, 160, 161, 162, 163, 164, 170, 171, 172, 173,
- 178, 179, 180, 11, 15, 188, 189, 190, 191, 192,
- 193, 194, 195
+short yyrindex[] = { 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 2, 3, 4, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,
};
-
-/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
- STATE-NUM. */
-#define YYPACT_NINF -13
-static const yytype_int16 yypact[] =
-{
- -13, 76, -13, -13, -13, -13, -13, -13, -13, -13,
- -13, -13, -12, 40, 45, 3, 15, 16, 17, 18,
- 22, 23, 24, 68, 71, 73, 89, 90, 91, 92,
- 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
- 103, 105, 106, 107, 108, 109, 111, 112, 113, 114,
- 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
- 125, 126, 127, 128, 130, 131, 132, 133, 134, 135,
- 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
- 146, 147, 148, 149, 150, 151, 152, 153, 155, 156,
- -13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
- -13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
- -13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
- -13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
- -13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
- -13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
- -13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
- -13, -13, -13, -13, -13, 157, 158, 159, 160, -13,
- -13, -13, -13, -13, 161, 162, 163, -13, -13, -13,
- -13, 164, 165, 166, 167, 168, 169, 170, -13, -13,
- -13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
- -13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
- -13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
- -13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
- -13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
- -13, -13, -13, -13, -13, -13, -13, -13, -13, 171,
- 172, -13, -13, -13, -13, -13, -13, -13, -13, -13,
- -13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
- -13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
- -13, -13, -13, -13, -13, -13
+short yygindex[] = { 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0,
};
-
-/* YYPGOTO[NTERM-NUM]. */
-static const yytype_int8 yypgoto[] =
-{
- -13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
- -13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
- -13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
- -13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
- -13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
- -13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
- -13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
- -13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
- -13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
- -13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
- -13, -13, -13
+#define YYTABLESIZE 346
+short yytable[] = { 195,
+ 3, 4, 5, 6, 15, 16, 17, 18, 19, 20,
+ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 31, 32, 33, 34, 35, 36, 37, 38, 39, 196,
+ 197, 198, 199, 40, 41, 42, 200, 201, 202, 43,
+ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
+ 2, 164, 203, 165, 166, 204, 173, 205, 84, 85,
+ 86, 206, 87, 88, 174, 175, 180, 181, 182, 183,
+ 184, 185, 186, 207, 208, 209, 210, 3, 211, 212,
+ 213, 214, 215, 4, 216, 217, 218, 219, 220, 221,
+ 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
+ 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
+ 242, 243, 244, 167, 245, 246, 247, 248, 249, 250,
+ 251, 252, 253, 254, 255, 256, 257, 5, 258, 259,
+ 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
+ 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
+ 280, 281, 282, 283, 284, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 3, 4, 5, 6, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 3, 4, 5, 6, 0, 0, 3, 4,
+ 5, 6, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 3, 4, 5, 6,
};
-
-/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
- positive, shift that token. If negative, reduce the rule which
- number is the opposite. If zero, do what YYDEFACT says.
- If YYTABLE_NINF, syntax error. */
-#define YYTABLE_NINF -1
-static const yytype_uint16 yytable[] =
-{
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
- 36, 37, 38, 39, 40, 196, 197, 198, 199, 41,
- 42, 43, 200, 201, 202, 44, 45, 46, 47, 48,
- 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, 82, 83, 84, 2, 165, 203, 166,
- 167, 204, 174, 205, 85, 86, 87, 3, 88, 89,
- 175, 176, 181, 182, 183, 184, 185, 186, 187, 206,
- 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
- 217, 218, 219, 220, 4, 221, 222, 223, 224, 225,
- 5, 226, 227, 228, 229, 230, 231, 232, 233, 234,
- 235, 236, 237, 238, 239, 240, 241, 242, 243, 168,
- 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
- 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
- 264, 265, 266, 267, 6, 268, 269, 270, 271, 272,
- 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
- 283, 284, 285
+short yycheck[] = { 264,
+ 0, 0, 0, 0, 266, 267, 268, 269, 270, 271,
+ 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
+ 282, 283, 284, 285, 286, 287, 288, 289, 290, 264,
+ 264, 264, 264, 295, 296, 297, 264, 264, 264, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
+ 312, 313, 314, 315, 316, 317, 318, 319, 320, 321,
+ 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
+ 332, 333, 334, 335, 336, 337, 338, 339, 340, 341,
+ 265, 291, 264, 293, 294, 264, 291, 264, 350, 351,
+ 352, 264, 354, 355, 299, 300, 343, 344, 345, 346,
+ 347, 348, 349, 264, 264, 264, 264, 292, 264, 264,
+ 264, 264, 264, 298, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 353, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 342, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 265, 265, 265, 265, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 292, 292, 292, 292, -1, -1, 298, 298,
+ 298, 298, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 342, 342, 342, 342,
};
-
-static const yytype_uint8 yycheck[] =
-{
- 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 10, 10, 10, 10, 41,
- 42, 43, 10, 10, 10, 47, 48, 49, 50, 51,
- 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
- 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- 82, 83, 84, 85, 86, 87, 0, 37, 10, 39,
- 40, 10, 37, 10, 96, 97, 98, 11, 100, 101,
- 45, 46, 89, 90, 91, 92, 93, 94, 95, 10,
- 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 38, 10, 10, 10, 10, 10,
- 44, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10, 10, 99,
- 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 88, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10
+#define YYFINAL 1
+#ifndef YYDEBUG
+#define YYDEBUG 0
+#endif
+#define YYMAXTOKEN 355
+#if YYDEBUG
+char *yyname[] = {
+"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"SPACE","LETTER","NEWLINE",
+"COMMENT","COLON","ANY","ZONESTR","STRING","VAR_SERVER","VAR_VERBOSITY",
+"VAR_NUM_THREADS","VAR_PORT","VAR_OUTGOING_RANGE","VAR_INTERFACE","VAR_DO_IP4",
+"VAR_DO_IP6","VAR_DO_UDP","VAR_DO_TCP","VAR_CHROOT","VAR_USERNAME",
+"VAR_DIRECTORY","VAR_LOGFILE","VAR_PIDFILE","VAR_MSG_CACHE_SIZE",
+"VAR_MSG_CACHE_SLABS","VAR_NUM_QUERIES_PER_THREAD","VAR_RRSET_CACHE_SIZE",
+"VAR_RRSET_CACHE_SLABS","VAR_OUTGOING_NUM_TCP","VAR_INFRA_HOST_TTL",
+"VAR_INFRA_LAME_TTL","VAR_INFRA_CACHE_SLABS","VAR_INFRA_CACHE_NUMHOSTS",
+"VAR_INFRA_CACHE_LAME_SIZE","VAR_NAME","VAR_STUB_ZONE","VAR_STUB_HOST",
+"VAR_STUB_ADDR","VAR_TARGET_FETCH_POLICY","VAR_HARDEN_SHORT_BUFSIZE",
+"VAR_HARDEN_LARGE_QUERIES","VAR_FORWARD_ZONE","VAR_FORWARD_HOST",
+"VAR_FORWARD_ADDR","VAR_DO_NOT_QUERY_ADDRESS","VAR_HIDE_IDENTITY",
+"VAR_HIDE_VERSION","VAR_IDENTITY","VAR_VERSION","VAR_HARDEN_GLUE",
+"VAR_MODULE_CONF","VAR_TRUST_ANCHOR_FILE","VAR_TRUST_ANCHOR",
+"VAR_VAL_OVERRIDE_DATE","VAR_BOGUS_TTL","VAR_VAL_CLEAN_ADDITIONAL",
+"VAR_VAL_PERMISSIVE_MODE","VAR_INCOMING_NUM_TCP","VAR_MSG_BUFFER_SIZE",
+"VAR_KEY_CACHE_SIZE","VAR_KEY_CACHE_SLABS","VAR_TRUSTED_KEYS_FILE",
+"VAR_VAL_NSEC3_KEYSIZE_ITERATIONS","VAR_USE_SYSLOG","VAR_OUTGOING_INTERFACE",
+"VAR_ROOT_HINTS","VAR_DO_NOT_QUERY_LOCALHOST","VAR_CACHE_MAX_TTL",
+"VAR_HARDEN_DNNSEC_STRIPPED","VAR_ACCESS_CONTROL","VAR_LOCAL_ZONE",
+"VAR_LOCAL_DATA","VAR_INTERFACE_AUTOMATIC","VAR_STATISTICS_INTERVAL",
+"VAR_DO_DAEMONIZE","VAR_USE_CAPS_FOR_ID","VAR_STATISTICS_CUMULATIVE",
+"VAR_OUTGOING_PORT_PERMIT","VAR_OUTGOING_PORT_AVOID","VAR_DLV_ANCHOR_FILE",
+"VAR_DLV_ANCHOR","VAR_NEG_CACHE_SIZE","VAR_HARDEN_REFERRAL_PATH",
+"VAR_PRIVATE_ADDRESS","VAR_PRIVATE_DOMAIN","VAR_REMOTE_CONTROL",
+"VAR_CONTROL_ENABLE","VAR_CONTROL_INTERFACE","VAR_CONTROL_PORT",
+"VAR_SERVER_KEY_FILE","VAR_SERVER_CERT_FILE","VAR_CONTROL_KEY_FILE",
+"VAR_CONTROL_CERT_FILE","VAR_EXTENDED_STATISTICS","VAR_LOCAL_DATA_PTR",
+"VAR_JOSTLE_TIMEOUT","VAR_STUB_PRIME","VAR_UNWANTED_REPLY_THRESHOLD",
+"VAR_LOG_TIME_ASCII",
};
-
-/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
- symbol of state STATE-NUM. */
-static const yytype_uint8 yystos[] =
-{
- 0, 103, 0, 11, 38, 44, 88, 104, 105, 108,
- 111, 195, 106, 109, 112, 196, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
- 36, 41, 42, 43, 47, 48, 49, 50, 51, 52,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
- 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
- 83, 84, 85, 86, 87, 96, 97, 98, 100, 101,
- 107, 114, 115, 116, 117, 118, 119, 120, 121, 122,
- 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
- 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
- 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
- 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
- 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
- 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
- 183, 184, 185, 186, 187, 37, 39, 40, 99, 110,
- 188, 189, 190, 191, 37, 45, 46, 113, 192, 193,
- 194, 89, 90, 91, 92, 93, 94, 95, 197, 198,
- 199, 200, 201, 202, 203, 204, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10
+char *yyrule[] = {
+"$accept : toplevelvars",
+"toplevelvars :",
+"toplevelvars : toplevelvars toplevelvar",
+"toplevelvar : serverstart contents_server",
+"toplevelvar : stubstart contents_stub",
+"toplevelvar : forwardstart contents_forward",
+"toplevelvar : rcstart contents_rc",
+"serverstart : VAR_SERVER",
+"contents_server : contents_server content_server",
+"contents_server :",
+"content_server : server_num_threads",
+"content_server : server_verbosity",
+"content_server : server_port",
+"content_server : server_outgoing_range",
+"content_server : server_do_ip4",
+"content_server : server_do_ip6",
+"content_server : server_do_udp",
+"content_server : server_do_tcp",
+"content_server : server_interface",
+"content_server : server_chroot",
+"content_server : server_username",
+"content_server : server_directory",
+"content_server : server_logfile",
+"content_server : server_pidfile",
+"content_server : server_msg_cache_size",
+"content_server : server_msg_cache_slabs",
+"content_server : server_num_queries_per_thread",
+"content_server : server_rrset_cache_size",
+"content_server : server_rrset_cache_slabs",
+"content_server : server_outgoing_num_tcp",
+"content_server : server_infra_host_ttl",
+"content_server : server_infra_lame_ttl",
+"content_server : server_infra_cache_slabs",
+"content_server : server_infra_cache_numhosts",
+"content_server : server_infra_cache_lame_size",
+"content_server : server_target_fetch_policy",
+"content_server : server_harden_short_bufsize",
+"content_server : server_harden_large_queries",
+"content_server : server_do_not_query_address",
+"content_server : server_hide_identity",
+"content_server : server_hide_version",
+"content_server : server_identity",
+"content_server : server_version",
+"content_server : server_harden_glue",
+"content_server : server_module_conf",
+"content_server : server_trust_anchor_file",
+"content_server : server_trust_anchor",
+"content_server : server_val_override_date",
+"content_server : server_bogus_ttl",
+"content_server : server_val_clean_additional",
+"content_server : server_val_permissive_mode",
+"content_server : server_incoming_num_tcp",
+"content_server : server_msg_buffer_size",
+"content_server : server_key_cache_size",
+"content_server : server_key_cache_slabs",
+"content_server : server_trusted_keys_file",
+"content_server : server_val_nsec3_keysize_iterations",
+"content_server : server_use_syslog",
+"content_server : server_outgoing_interface",
+"content_server : server_root_hints",
+"content_server : server_do_not_query_localhost",
+"content_server : server_cache_max_ttl",
+"content_server : server_harden_dnssec_stripped",
+"content_server : server_access_control",
+"content_server : server_local_zone",
+"content_server : server_local_data",
+"content_server : server_interface_automatic",
+"content_server : server_statistics_interval",
+"content_server : server_do_daemonize",
+"content_server : server_use_caps_for_id",
+"content_server : server_statistics_cumulative",
+"content_server : server_outgoing_port_permit",
+"content_server : server_outgoing_port_avoid",
+"content_server : server_dlv_anchor_file",
+"content_server : server_dlv_anchor",
+"content_server : server_neg_cache_size",
+"content_server : server_harden_referral_path",
+"content_server : server_private_address",
+"content_server : server_private_domain",
+"content_server : server_extended_statistics",
+"content_server : server_local_data_ptr",
+"content_server : server_jostle_timeout",
+"content_server : server_unwanted_reply_threshold",
+"content_server : server_log_time_ascii",
+"stubstart : VAR_STUB_ZONE",
+"contents_stub : contents_stub content_stub",
+"contents_stub :",
+"content_stub : stub_name",
+"content_stub : stub_host",
+"content_stub : stub_addr",
+"content_stub : stub_prime",
+"forwardstart : VAR_FORWARD_ZONE",
+"contents_forward : contents_forward content_forward",
+"contents_forward :",
+"content_forward : forward_name",
+"content_forward : forward_host",
+"content_forward : forward_addr",
+"server_num_threads : VAR_NUM_THREADS STRING",
+"server_verbosity : VAR_VERBOSITY STRING",
+"server_statistics_interval : VAR_STATISTICS_INTERVAL STRING",
+"server_statistics_cumulative : VAR_STATISTICS_CUMULATIVE STRING",
+"server_extended_statistics : VAR_EXTENDED_STATISTICS STRING",
+"server_port : VAR_PORT STRING",
+"server_interface : VAR_INTERFACE STRING",
+"server_outgoing_interface : VAR_OUTGOING_INTERFACE STRING",
+"server_outgoing_range : VAR_OUTGOING_RANGE STRING",
+"server_outgoing_port_permit : VAR_OUTGOING_PORT_PERMIT STRING",
+"server_outgoing_port_avoid : VAR_OUTGOING_PORT_AVOID STRING",
+"server_outgoing_num_tcp : VAR_OUTGOING_NUM_TCP STRING",
+"server_incoming_num_tcp : VAR_INCOMING_NUM_TCP STRING",
+"server_interface_automatic : VAR_INTERFACE_AUTOMATIC STRING",
+"server_do_ip4 : VAR_DO_IP4 STRING",
+"server_do_ip6 : VAR_DO_IP6 STRING",
+"server_do_udp : VAR_DO_UDP STRING",
+"server_do_tcp : VAR_DO_TCP STRING",
+"server_do_daemonize : VAR_DO_DAEMONIZE STRING",
+"server_use_syslog : VAR_USE_SYSLOG STRING",
+"server_log_time_ascii : VAR_LOG_TIME_ASCII STRING",
+"server_chroot : VAR_CHROOT STRING",
+"server_username : VAR_USERNAME STRING",
+"server_directory : VAR_DIRECTORY STRING",
+"server_logfile : VAR_LOGFILE STRING",
+"server_pidfile : VAR_PIDFILE STRING",
+"server_root_hints : VAR_ROOT_HINTS STRING",
+"server_dlv_anchor_file : VAR_DLV_ANCHOR_FILE STRING",
+"server_dlv_anchor : VAR_DLV_ANCHOR STRING",
+"server_trust_anchor_file : VAR_TRUST_ANCHOR_FILE STRING",
+"server_trusted_keys_file : VAR_TRUSTED_KEYS_FILE STRING",
+"server_trust_anchor : VAR_TRUST_ANCHOR STRING",
+"server_hide_identity : VAR_HIDE_IDENTITY STRING",
+"server_hide_version : VAR_HIDE_VERSION STRING",
+"server_identity : VAR_IDENTITY STRING",
+"server_version : VAR_VERSION STRING",
+"server_msg_buffer_size : VAR_MSG_BUFFER_SIZE STRING",
+"server_msg_cache_size : VAR_MSG_CACHE_SIZE STRING",
+"server_msg_cache_slabs : VAR_MSG_CACHE_SLABS STRING",
+"server_num_queries_per_thread : VAR_NUM_QUERIES_PER_THREAD STRING",
+"server_jostle_timeout : VAR_JOSTLE_TIMEOUT STRING",
+"server_rrset_cache_size : VAR_RRSET_CACHE_SIZE STRING",
+"server_rrset_cache_slabs : VAR_RRSET_CACHE_SLABS STRING",
+"server_infra_host_ttl : VAR_INFRA_HOST_TTL STRING",
+"server_infra_lame_ttl : VAR_INFRA_LAME_TTL STRING",
+"server_infra_cache_numhosts : VAR_INFRA_CACHE_NUMHOSTS STRING",
+"server_infra_cache_lame_size : VAR_INFRA_CACHE_LAME_SIZE STRING",
+"server_infra_cache_slabs : VAR_INFRA_CACHE_SLABS STRING",
+"server_target_fetch_policy : VAR_TARGET_FETCH_POLICY STRING",
+"server_harden_short_bufsize : VAR_HARDEN_SHORT_BUFSIZE STRING",
+"server_harden_large_queries : VAR_HARDEN_LARGE_QUERIES STRING",
+"server_harden_glue : VAR_HARDEN_GLUE STRING",
+"server_harden_dnssec_stripped : VAR_HARDEN_DNNSEC_STRIPPED STRING",
+"server_harden_referral_path : VAR_HARDEN_REFERRAL_PATH STRING",
+"server_use_caps_for_id : VAR_USE_CAPS_FOR_ID STRING",
+"server_private_address : VAR_PRIVATE_ADDRESS STRING",
+"server_private_domain : VAR_PRIVATE_DOMAIN STRING",
+"server_unwanted_reply_threshold : VAR_UNWANTED_REPLY_THRESHOLD STRING",
+"server_do_not_query_address : VAR_DO_NOT_QUERY_ADDRESS STRING",
+"server_do_not_query_localhost : VAR_DO_NOT_QUERY_LOCALHOST STRING",
+"server_access_control : VAR_ACCESS_CONTROL STRING STRING",
+"server_module_conf : VAR_MODULE_CONF STRING",
+"server_val_override_date : VAR_VAL_OVERRIDE_DATE STRING",
+"server_cache_max_ttl : VAR_CACHE_MAX_TTL STRING",
+"server_bogus_ttl : VAR_BOGUS_TTL STRING",
+"server_val_clean_additional : VAR_VAL_CLEAN_ADDITIONAL STRING",
+"server_val_permissive_mode : VAR_VAL_PERMISSIVE_MODE STRING",
+"server_val_nsec3_keysize_iterations : VAR_VAL_NSEC3_KEYSIZE_ITERATIONS STRING",
+"server_key_cache_size : VAR_KEY_CACHE_SIZE STRING",
+"server_key_cache_slabs : VAR_KEY_CACHE_SLABS STRING",
+"server_neg_cache_size : VAR_NEG_CACHE_SIZE STRING",
+"server_local_zone : VAR_LOCAL_ZONE STRING STRING",
+"server_local_data : VAR_LOCAL_DATA STRING",
+"server_local_data_ptr : VAR_LOCAL_DATA_PTR STRING",
+"stub_name : VAR_NAME STRING",
+"stub_host : VAR_STUB_HOST STRING",
+"stub_addr : VAR_STUB_ADDR STRING",
+"stub_prime : VAR_STUB_PRIME STRING",
+"forward_name : VAR_NAME STRING",
+"forward_host : VAR_FORWARD_HOST STRING",
+"forward_addr : VAR_FORWARD_ADDR STRING",
+"rcstart : VAR_REMOTE_CONTROL",
+"contents_rc : contents_rc content_rc",
+"contents_rc :",
+"content_rc : rc_control_enable",
+"content_rc : rc_control_interface",
+"content_rc : rc_control_port",
+"content_rc : rc_server_key_file",
+"content_rc : rc_server_cert_file",
+"content_rc : rc_control_key_file",
+"content_rc : rc_control_cert_file",
+"rc_control_enable : VAR_CONTROL_ENABLE STRING",
+"rc_control_port : VAR_CONTROL_PORT STRING",
+"rc_control_interface : VAR_CONTROL_INTERFACE STRING",
+"rc_server_key_file : VAR_SERVER_KEY_FILE STRING",
+"rc_server_cert_file : VAR_SERVER_CERT_FILE STRING",
+"rc_control_key_file : VAR_CONTROL_KEY_FILE STRING",
+"rc_control_cert_file : VAR_CONTROL_CERT_FILE STRING",
};
-
-#define yyerrok (yyerrstatus = 0)
-#define yyclearin (yychar = YYEMPTY)
-#define YYEMPTY (-2)
-#define YYEOF 0
-
-#define YYACCEPT goto yyacceptlab
-#define YYABORT goto yyabortlab
-#define YYERROR goto yyerrorlab
-
-
-/* Like YYERROR except do call yyerror. This remains here temporarily
- to ease the transition to the new meaning of YYERROR, for GCC.
- Once GCC version 2 has supplanted version 1, this can go. */
-
-#define YYFAIL goto yyerrlab
-
-#define YYRECOVERING() (!!yyerrstatus)
-
-#define YYBACKUP(Token, Value) \
-do \
- if (yychar == YYEMPTY && yylen == 1) \
- { \
- yychar = (Token); \
- yylval = (Value); \
- yytoken = YYTRANSLATE (yychar); \
- YYPOPSTACK (1); \
- goto yybackup; \
- } \
- else \
- { \
- yyerror (YY_("syntax error: cannot back up")); \
- YYERROR; \
- } \
-while (YYID (0))
-
-
-#define YYTERROR 1
-#define YYERRCODE 256
-
-
-/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
- If N is 0, then set CURRENT to the empty location which ends
- the previous symbol: RHS[0] (always defined). */
-
-#define YYRHSLOC(Rhs, K) ((Rhs)[K])
-#ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N) \
- do \
- if (YYID (N)) \
- { \
- (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
- (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
- (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
- (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
- } \
- else \
- { \
- (Current).first_line = (Current).last_line = \
- YYRHSLOC (Rhs, 0).last_line; \
- (Current).first_column = (Current).last_column = \
- YYRHSLOC (Rhs, 0).last_column; \
- } \
- while (YYID (0))
#endif
-
-
-/* YY_LOCATION_PRINT -- Print the location on the stream.
- This macro was not mandated originally: define only if we know
- we won't break user code: when these are the locations we know. */
-
-#ifndef YY_LOCATION_PRINT
-# if YYLTYPE_IS_TRIVIAL
-# define YY_LOCATION_PRINT(File, Loc) \
- fprintf (File, "%d.%d-%d.%d", \
- (Loc).first_line, (Loc).first_column, \
- (Loc).last_line, (Loc).last_column)
-# else
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-# endif
-#endif
-
-
-/* YYLEX -- calling `yylex' with the right arguments. */
-
-#ifdef YYLEX_PARAM
-# define YYLEX yylex (YYLEX_PARAM)
-#else
-# define YYLEX yylex ()
-#endif
-
-/* Enable debugging if requested. */
#if YYDEBUG
-
-# ifndef YYFPRINTF
-# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
-# define YYFPRINTF fprintf
-# endif
-
-# define YYDPRINTF(Args) \
-do { \
- if (yydebug) \
- YYFPRINTF Args; \
-} while (YYID (0))
-
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
-do { \
- if (yydebug) \
- { \
- YYFPRINTF (stderr, "%s ", Title); \
- yy_symbol_print (stderr, \
- Type, Value); \
- YYFPRINTF (stderr, "\n"); \
- } \
-} while (YYID (0))
-
-
-/*--------------------------------.
-| Print this symbol on YYOUTPUT. |
-`--------------------------------*/
-
-/*ARGSUSED*/
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static void
-yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
-#else
-static void
-yy_symbol_value_print (yyoutput, yytype, yyvaluep)
- FILE *yyoutput;
- int yytype;
- YYSTYPE const * const yyvaluep;
+#include <stdio.h>
#endif
-{
- if (!yyvaluep)
- return;
-# ifdef YYPRINT
- if (yytype < YYNTOKENS)
- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# else
- YYUSE (yyoutput);
-# endif
- switch (yytype)
- {
- default:
- break;
- }
-}
-
-/*--------------------------------.
-| Print this symbol on YYOUTPUT. |
-`--------------------------------*/
-
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static void
-yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+/* define the initial stack-sizes */
+#ifdef YYSTACKSIZE
+#undef YYMAXDEPTH
+#define YYMAXDEPTH YYSTACKSIZE
#else
-static void
-yy_symbol_print (yyoutput, yytype, yyvaluep)
- FILE *yyoutput;
- int yytype;
- YYSTYPE const * const yyvaluep;
-#endif
-{
- if (yytype < YYNTOKENS)
- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
- else
- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-
- yy_symbol_value_print (yyoutput, yytype, yyvaluep);
- YYFPRINTF (yyoutput, ")");
-}
-
-/*------------------------------------------------------------------.
-| yy_stack_print -- Print the state stack from its BOTTOM up to its |
-| TOP (included). |
-`------------------------------------------------------------------*/
-
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static void
-yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
+#ifdef YYMAXDEPTH
+#define YYSTACKSIZE YYMAXDEPTH
#else
-static void
-yy_stack_print (bottom, top)
- yytype_int16 *bottom;
- yytype_int16 *top;
+#define YYSTACKSIZE 500
+#define YYMAXDEPTH 500
#endif
-{
- YYFPRINTF (stderr, "Stack now");
- for (; bottom <= top; ++bottom)
- YYFPRINTF (stderr, " %d", *bottom);
- YYFPRINTF (stderr, "\n");
-}
-
-# define YY_STACK_PRINT(Bottom, Top) \
-do { \
- if (yydebug) \
- yy_stack_print ((Bottom), (Top)); \
-} while (YYID (0))
-
-
-/*------------------------------------------------.
-| Report that the YYRULE is going to be reduced. |
-`------------------------------------------------*/
-
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static void
-yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
-#else
-static void
-yy_reduce_print (yyvsp, yyrule)
- YYSTYPE *yyvsp;
- int yyrule;
-#endif
-{
- int yynrhs = yyr2[yyrule];
- int yyi;
- unsigned long int yylno = yyrline[yyrule];
- YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
- yyrule - 1, yylno);
- /* The symbols being reduced. */
- for (yyi = 0; yyi < yynrhs; yyi++)
- {
- fprintf (stderr, " $%d = ", yyi + 1);
- yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
- &(yyvsp[(yyi + 1) - (yynrhs)])
- );
- fprintf (stderr, "\n");
- }
-}
-
-# define YY_REDUCE_PRINT(Rule) \
-do { \
- if (yydebug) \
- yy_reduce_print (yyvsp, Rule); \
-} while (YYID (0))
-
-/* Nonzero means print parse trace. It is left uninitialized so that
- multiple parsers can coexist. */
-int yydebug;
-#else /* !YYDEBUG */
-# define YYDPRINTF(Args)
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
-# define YY_STACK_PRINT(Bottom, Top)
-# define YY_REDUCE_PRINT(Rule)
-#endif /* !YYDEBUG */
-
-
-/* YYINITDEPTH -- initial size of the parser's stacks. */
-#ifndef YYINITDEPTH
-# define YYINITDEPTH 200
#endif
-/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
- if the built-in stack extension method is used).
+#define YYINITSTACKSIZE 500
- Do not make this value too large; the results are undefined if
- YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
- evaluated with infinite-precision integer arithmetic. */
+int yydebug;
+int yynerrs;
+int yyerrflag;
+int yychar;
+short *yyssp;
+YYSTYPE *yyvsp;
+YYSTYPE yyval;
+YYSTYPE yylval;
-#ifndef YYMAXDEPTH
-# define YYMAXDEPTH 10000
-#endif
-
-\f
-
-#if YYERROR_VERBOSE
+/* variables for the parser stack */
+static short *yyss;
+static short *yysslim;
+static YYSTYPE *yyvs;
+static int yystacksize;
+#line 998 "util/configparser.y"
-# ifndef yystrlen
-# if defined __GLIBC__ && defined _STRING_H
-# define yystrlen strlen
-# else
-/* Return the length of YYSTR. */
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static YYSIZE_T
-yystrlen (const char *yystr)
-#else
-static YYSIZE_T
-yystrlen (yystr)
- const char *yystr;
-#endif
+/* parse helper routines could be here */
+#line 669 "util/configparser.c"
+/* allocate initial stack or double stack size, up to YYMAXDEPTH */
+static int yygrowstack(void)
{
- YYSIZE_T yylen;
- for (yylen = 0; yystr[yylen]; yylen++)
- continue;
- return yylen;
+ int newsize, i;
+ short *newss;
+ YYSTYPE *newvs;
+
+ if ((newsize = yystacksize) == 0)
+ newsize = YYINITSTACKSIZE;
+ else if (newsize >= YYMAXDEPTH)
+ return -1;
+ else if ((newsize *= 2) > YYMAXDEPTH)
+ newsize = YYMAXDEPTH;
+
+ i = yyssp - yyss;
+ newss = (yyss != 0)
+ ? (short *)realloc(yyss, newsize * sizeof(*newss))
+ : (short *)malloc(newsize * sizeof(*newss));
+ if (newss == 0)
+ return -1;
+
+ yyss = newss;
+ yyssp = newss + i;
+ newvs = (yyvs != 0)
+ ? (YYSTYPE *)realloc(yyvs, newsize * sizeof(*newvs))
+ : (YYSTYPE *)malloc(newsize * sizeof(*newvs));
+ if (newvs == 0)
+ return -1;
+
+ yyvs = newvs;
+ yyvsp = newvs + i;
+ yystacksize = newsize;
+ yysslim = yyss + newsize - 1;
+ return 0;
}
-# endif
-# endif
-# ifndef yystpcpy
-# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
-# define yystpcpy stpcpy
-# else
-/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
- YYDEST. */
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static char *
-yystpcpy (char *yydest, const char *yysrc)
-#else
-static char *
-yystpcpy (yydest, yysrc)
- char *yydest;
- const char *yysrc;
-#endif
+#define YYABORT goto yyabort
+#define YYREJECT goto yyabort
+#define YYACCEPT goto yyaccept
+#define YYERROR goto yyerrlab
+int
+yyparse(void)
{
- char *yyd = yydest;
- const char *yys = yysrc;
-
- while ((*yyd++ = *yys++) != '\0')
- continue;
-
- return yyd - 1;
-}
-# endif
-# endif
+ register int yym, yyn, yystate;
+#if YYDEBUG
+ register const char *yys;
-# ifndef yytnamerr
-/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
- quotes and backslashes, so that it's suitable for yyerror. The
- heuristic is that double-quoting is unnecessary unless the string
- contains an apostrophe, a comma, or backslash (other than
- backslash-backslash). YYSTR is taken from yytname. If YYRES is
- null, do not copy; instead, return the length of what the result
- would have been. */
-static YYSIZE_T
-yytnamerr (char *yyres, const char *yystr)
-{
- if (*yystr == '"')
+ if ((yys = getenv("YYDEBUG")) != 0)
{
- YYSIZE_T yyn = 0;
- char const *yyp = yystr;
-
- for (;;)
- switch (*++yyp)
- {
- case '\'':
- case ',':
- goto do_not_strip_quotes;
-
- case '\\':
- if (*++yyp != '\\')
- goto do_not_strip_quotes;
- /* Fall through. */
- default:
- if (yyres)
- yyres[yyn] = *yyp;
- yyn++;
- break;
-
- case '"':
- if (yyres)
- yyres[yyn] = '\0';
- return yyn;
- }
- do_not_strip_quotes: ;
+ yyn = *yys;
+ if (yyn >= '0' && yyn <= '9')
+ yydebug = yyn - '0';
}
+#endif
- if (! yyres)
- return yystrlen (yystr);
-
- return yystpcpy (yyres, yystr) - yyres;
-}
-# endif
+ yynerrs = 0;
+ yyerrflag = 0;
+ yychar = YYEMPTY;
-/* Copy into YYRESULT an error message about the unexpected token
- YYCHAR while in state YYSTATE. Return the number of bytes copied,
- including the terminating null byte. If YYRESULT is null, do not
- copy anything; just return the number of bytes that would be
- copied. As a special case, return 0 if an ordinary "syntax error"
- message will do. Return YYSIZE_MAXIMUM if overflow occurs during
- size calculation. */
-static YYSIZE_T
-yysyntax_error (char *yyresult, int yystate, int yychar)
-{
- int yyn = yypact[yystate];
+ if (yyss == NULL && yygrowstack()) goto yyoverflow;
+ yyssp = yyss;
+ yyvsp = yyvs;
+ *yyssp = yystate = 0;
- if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
- return 0;
- else
+yyloop:
+ if ((yyn = yydefred[yystate]) != 0) goto yyreduce;
+ if (yychar < 0)
{
- int yytype = YYTRANSLATE (yychar);
- YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
- YYSIZE_T yysize = yysize0;
- YYSIZE_T yysize1;
- int yysize_overflow = 0;
- enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
- char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
- int yyx;
-
-# if 0
- /* This is so xgettext sees the translatable formats that are
- constructed on the fly. */
- YY_("syntax error, unexpected %s");
- YY_("syntax error, unexpected %s, expecting %s");
- YY_("syntax error, unexpected %s, expecting %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
-# endif
- char *yyfmt;
- char const *yyf;
- static char const yyunexpected[] = "syntax error, unexpected %s";
- static char const yyexpecting[] = ", expecting %s";
- static char const yyor[] = " or %s";
- char yyformat[sizeof yyunexpected
- + sizeof yyexpecting - 1
- + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
- * (sizeof yyor - 1))];
- char const *yyprefix = yyexpecting;
-
- /* Start YYX at -YYN if negative to avoid negative indexes in
- YYCHECK. */
- int yyxbegin = yyn < 0 ? -yyn : 0;
-
- /* Stay within bounds of both yycheck and yytname. */
- int yychecklim = YYLAST - yyn + 1;
- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
- int yycount = 1;
-
- yyarg[0] = yytname[yytype];
- yyfmt = yystpcpy (yyformat, yyunexpected);
-
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
- {
- if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
- {
- yycount = 1;
- yysize = yysize0;
- yyformat[sizeof yyunexpected - 1] = '\0';
- break;
- }
- yyarg[yycount++] = yytname[yyx];
- yysize1 = yysize + yytnamerr (0, yytname[yyx]);
- yysize_overflow |= (yysize1 < yysize);
- yysize = yysize1;
- yyfmt = yystpcpy (yyfmt, yyprefix);
- yyprefix = yyor;
- }
-
- yyf = YY_(yyformat);
- yysize1 = yysize + yystrlen (yyf);
- yysize_overflow |= (yysize1 < yysize);
- yysize = yysize1;
-
- if (yysize_overflow)
- return YYSIZE_MAXIMUM;
-
- if (yyresult)
- {
- /* Avoid sprintf, as that infringes on the user's name space.
- Don't have undefined behavior even if the translation
- produced a string with the wrong number of "%s"s. */
- char *yyp = yyresult;
- int yyi = 0;
- while ((*yyp = *yyf) != '\0')
- {
- if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
- {
- yyp += yytnamerr (yyp, yyarg[yyi++]);
- yyf += 2;
- }
- else
- {
- yyp++;
- yyf++;
- }
- }
- }
- return yysize;
+ if ((yychar = yylex()) < 0) yychar = 0;
+#if YYDEBUG
+ if (yydebug)
+ {
+ yys = 0;
+ if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
+ if (!yys) yys = "illegal-symbol";
+ printf("%sdebug: state %d, reading %d (%s)\n",
+ YYPREFIX, yystate, yychar, yys);
+ }
+#endif
}
-}
-#endif /* YYERROR_VERBOSE */
-\f
-
-/*-----------------------------------------------.
-| Release the memory associated to this symbol. |
-`-----------------------------------------------*/
-
-/*ARGSUSED*/
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static void
-yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
-#else
-static void
-yydestruct (yymsg, yytype, yyvaluep)
- const char *yymsg;
- int yytype;
- YYSTYPE *yyvaluep;
+ if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
+ yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
+ {
+#if YYDEBUG
+ if (yydebug)
+ printf("%sdebug: state %d, shifting to state %d\n",
+ YYPREFIX, yystate, yytable[yyn]);
#endif
-{
- YYUSE (yyvaluep);
-
- if (!yymsg)
- yymsg = "Deleting";
- YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
-
- switch (yytype)
+ if (yyssp >= yysslim && yygrowstack())
+ {
+ goto yyoverflow;
+ }
+ *++yyssp = yystate = yytable[yyn];
+ *++yyvsp = yylval;
+ yychar = YYEMPTY;
+ if (yyerrflag > 0) --yyerrflag;
+ goto yyloop;
+ }
+ if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
+ yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
{
-
- default:
- break;
+ yyn = yytable[yyn];
+ goto yyreduce;
}
-}
-\f
+ if (yyerrflag) goto yyinrecovery;
-/* Prevent warnings from -Wmissing-prototypes. */
+ yyerror("syntax error");
-#ifdef YYPARSE_PARAM
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void *YYPARSE_PARAM);
-#else
-int yyparse ();
-#endif
-#else /* ! YYPARSE_PARAM */
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void);
-#else
-int yyparse ();
+#ifdef lint
+ goto yyerrlab;
#endif
-#endif /* ! YYPARSE_PARAM */
-
-
-/* The look-ahead symbol. */
-int yychar;
-
-/* The semantic value of the look-ahead symbol. */
-YYSTYPE yylval;
-
-/* Number of syntax errors so far. */
-int yynerrs;
-
-
-
-/*----------.
-| yyparse. |
-`----------*/
-
-#ifdef YYPARSE_PARAM
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-int
-yyparse (void *YYPARSE_PARAM)
-#else
-int
-yyparse (YYPARSE_PARAM)
- void *YYPARSE_PARAM;
-#endif
-#else /* ! YYPARSE_PARAM */
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-int
-yyparse (void)
-#else
-int
-yyparse ()
+yyerrlab:
+ ++yynerrs;
+yyinrecovery:
+ if (yyerrflag < 3)
+ {
+ yyerrflag = 3;
+ for (;;)
+ {
+ if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
+ yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
+ {
+#if YYDEBUG
+ if (yydebug)
+ printf("%sdebug: state %d, error recovery shifting\
+ to state %d\n", YYPREFIX, *yyssp, yytable[yyn]);
#endif
+ if (yyssp >= yysslim && yygrowstack())
+ {
+ goto yyoverflow;
+ }
+ *++yyssp = yystate = yytable[yyn];
+ *++yyvsp = yylval;
+ goto yyloop;
+ }
+ else
+ {
+#if YYDEBUG
+ if (yydebug)
+ printf("%sdebug: error recovery discarding state %d\n",
+ YYPREFIX, *yyssp);
#endif
-{
-
- int yystate;
- int yyn;
- int yyresult;
- /* Number of tokens to shift before error messages enabled. */
- int yyerrstatus;
- /* Look-ahead token as an internal (translated) token number. */
- int yytoken = 0;
-#if YYERROR_VERBOSE
- /* Buffer for error messages, and its allocated size. */
- char yymsgbuf[128];
- char *yymsg = yymsgbuf;
- YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
-#endif
-
- /* Three stacks and their tools:
- `yyss': related to states,
- `yyvs': related to semantic values,
- `yyls': related to locations.
-
- Refer to the stacks thru separate pointers, to allow yyoverflow
- to reallocate them elsewhere. */
-
- /* The state stack. */
- yytype_int16 yyssa[YYINITDEPTH];
- yytype_int16 *yyss = yyssa;
- yytype_int16 *yyssp;
-
- /* The semantic value stack. */
- YYSTYPE yyvsa[YYINITDEPTH];
- YYSTYPE *yyvs = yyvsa;
- YYSTYPE *yyvsp;
-
-
-
-#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
-
- YYSIZE_T yystacksize = YYINITDEPTH;
-
- /* The variables used to return semantic value and location from the
- action routines. */
- YYSTYPE yyval;
-
-
- /* The number of symbols on the RHS of the reduced rule.
- Keep to zero when no symbol should be popped. */
- int yylen = 0;
-
- YYDPRINTF ((stderr, "Starting parse\n"));
-
- yystate = 0;
- yyerrstatus = 0;
- yynerrs = 0;
- yychar = YYEMPTY; /* Cause a token to be read. */
-
- /* Initialize stack pointers.
- Waste one element of value and location stack
- so that they stay on the same level as the state stack.
- The wasted elements are never initialized. */
-
- yyssp = yyss;
- yyvsp = yyvs;
-
- goto yysetstate;
-
-/*------------------------------------------------------------.
-| yynewstate -- Push a new state, which is found in yystate. |
-`------------------------------------------------------------*/
- yynewstate:
- /* In all cases, when you get here, the value and location stacks
- have just been pushed. So pushing a state here evens the stacks. */
- yyssp++;
-
- yysetstate:
- *yyssp = yystate;
-
- if (yyss + yystacksize - 1 <= yyssp)
- {
- /* Get the current used size of the three stacks, in elements. */
- YYSIZE_T yysize = yyssp - yyss + 1;
-
-#ifdef yyoverflow
- {
- /* Give user a chance to reallocate the stack. Use copies of
- these so that the &'s don't force the real ones into
- memory. */
- YYSTYPE *yyvs1 = yyvs;
- yytype_int16 *yyss1 = yyss;
-
-
- /* Each stack pointer address is followed by the size of the
- data in use in that stack, in bytes. This used to be a
- conditional around just the two extra args, but that might
- be undefined if yyoverflow is a macro. */
- yyoverflow (YY_("memory exhausted"),
- &yyss1, yysize * sizeof (*yyssp),
- &yyvs1, yysize * sizeof (*yyvsp),
-
- &yystacksize);
-
- yyss = yyss1;
- yyvs = yyvs1;
- }
-#else /* no yyoverflow */
-# ifndef YYSTACK_RELOCATE
- goto yyexhaustedlab;
-# else
- /* Extend the stack our own way. */
- if (YYMAXDEPTH <= yystacksize)
- goto yyexhaustedlab;
- yystacksize *= 2;
- if (YYMAXDEPTH < yystacksize)
- yystacksize = YYMAXDEPTH;
-
- {
- yytype_int16 *yyss1 = yyss;
- union yyalloc *yyptr =
- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
- if (! yyptr)
- goto yyexhaustedlab;
- YYSTACK_RELOCATE (yyss);
- YYSTACK_RELOCATE (yyvs);
-
-# undef YYSTACK_RELOCATE
- if (yyss1 != yyssa)
- YYSTACK_FREE (yyss1);
- }
-# endif
-#endif /* no yyoverflow */
-
- yyssp = yyss + yysize - 1;
- yyvsp = yyvs + yysize - 1;
-
-
- YYDPRINTF ((stderr, "Stack size increased to %lu\n",
- (unsigned long int) yystacksize));
-
- if (yyss + yystacksize - 1 <= yyssp)
- YYABORT;
- }
-
- YYDPRINTF ((stderr, "Entering state %d\n", yystate));
-
- goto yybackup;
-
-/*-----------.
-| yybackup. |
-`-----------*/
-yybackup:
-
- /* Do appropriate processing given the current state. Read a
- look-ahead token if we need one and don't already have one. */
-
- /* First try to decide what to do without reference to look-ahead token. */
- yyn = yypact[yystate];
- if (yyn == YYPACT_NINF)
- goto yydefault;
-
- /* Not known => get a look-ahead token if don't already have one. */
-
- /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
- if (yychar == YYEMPTY)
- {
- YYDPRINTF ((stderr, "Reading a token: "));
- yychar = YYLEX;
- }
-
- if (yychar <= YYEOF)
- {
- yychar = yytoken = YYEOF;
- YYDPRINTF ((stderr, "Now at end of input.\n"));
- }
- else
- {
- yytoken = YYTRANSLATE (yychar);
- YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
+ if (yyssp <= yyss) goto yyabort;
+ --yyssp;
+ --yyvsp;
+ }
+ }
}
-
- /* If the proper action on seeing token YYTOKEN is to reduce or to
- detect an error, take that action. */
- yyn += yytoken;
- if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
- goto yydefault;
- yyn = yytable[yyn];
- if (yyn <= 0)
+ else
{
- if (yyn == 0 || yyn == YYTABLE_NINF)
- goto yyerrlab;
- yyn = -yyn;
- goto yyreduce;
+ if (yychar == 0) goto yyabort;
+#if YYDEBUG
+ if (yydebug)
+ {
+ yys = 0;
+ if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
+ if (!yys) yys = "illegal-symbol";
+ printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
+ YYPREFIX, yystate, yychar, yys);
+ }
+#endif
+ yychar = YYEMPTY;
+ goto yyloop;
}
- if (yyn == YYFINAL)
- YYACCEPT;
-
- /* Count tokens shifted since error; after three, turn off error
- status. */
- if (yyerrstatus)
- yyerrstatus--;
-
- /* Shift the look-ahead token. */
- YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
-
- /* Discard the shifted token unless it is eof. */
- if (yychar != YYEOF)
- yychar = YYEMPTY;
-
- yystate = yyn;
- *++yyvsp = yylval;
-
- goto yynewstate;
-
-
-/*-----------------------------------------------------------.
-| yydefault -- do the default action for the current state. |
-`-----------------------------------------------------------*/
-yydefault:
- yyn = yydefact[yystate];
- if (yyn == 0)
- goto yyerrlab;
- goto yyreduce;
-
-
-/*-----------------------------.
-| yyreduce -- Do a reduction. |
-`-----------------------------*/
yyreduce:
- /* yyn is the number of a rule to reduce with. */
- yylen = yyr2[yyn];
-
- /* If YYLEN is nonzero, implement the default value of the action:
- `$$ = $1'.
-
- Otherwise, the following line sets YYVAL to garbage.
- This behavior is undocumented and Bison
- users should not rely upon it. Assigning to YYVAL
- unconditionally makes the parser a bit smaller, and it avoids a
- GCC warning that YYVAL may be used uninitialized. */
- yyval = yyvsp[1-yylen];
-
-
- YY_REDUCE_PRINT (yyn);
- switch (yyn)
- {
- case 8:
+#if YYDEBUG
+ if (yydebug)
+ printf("%sdebug: state %d, reducing by rule %d (%s)\n",
+ YYPREFIX, yystate, yyn, yyrule[yyn]);
+#endif
+ yym = yylen[yyn];
+ if (yym)
+ yyval = yyvsp[1-yym];
+ else
+ memset(&yyval, 0, sizeof yyval);
+ switch (yyn)
+ {
+case 7:
#line 109 "util/configparser.y"
- {
+{
OUTYY(("\nP(server:)\n"));
}
- break;
-
- case 85:
+break;
+case 84:
#line 149 "util/configparser.y"
- {
+{
struct config_stub* s;
OUTYY(("\nP(stub_zone:)\n"));
s = (struct config_stub*)calloc(1, sizeof(struct config_stub));
} else
yyerror("out of memory");
}
- break;
-
- case 92:
+break;
+case 91:
#line 165 "util/configparser.y"
- {
+{
struct config_stub* s;
OUTYY(("\nP(forward_zone:)\n"));
s = (struct config_stub*)calloc(1, sizeof(struct config_stub));
} else
yyerror("out of memory");
}
- break;
-
- case 98:
+break;
+case 97:
#line 181 "util/configparser.y"
- {
- OUTYY(("P(server_num_threads:%s)\n", (yyvsp[(2) - (2)].str)));
- if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
+{
+ OUTYY(("P(server_num_threads:%s)\n", yyvsp[0].str));
+ if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0)
yyerror("number expected");
- else cfg_parser->cfg->num_threads = atoi((yyvsp[(2) - (2)].str));
- free((yyvsp[(2) - (2)].str));
+ else cfg_parser->cfg->num_threads = atoi(yyvsp[0].str);
+ free(yyvsp[0].str);
}
- break;
-
- case 99:
+break;
+case 98:
#line 190 "util/configparser.y"
- {
- OUTYY(("P(server_verbosity:%s)\n", (yyvsp[(2) - (2)].str)));
- if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
+{
+ OUTYY(("P(server_verbosity:%s)\n", yyvsp[0].str));
+ if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0)
yyerror("number expected");
- else cfg_parser->cfg->verbosity = atoi((yyvsp[(2) - (2)].str));
- free((yyvsp[(2) - (2)].str));
+ else cfg_parser->cfg->verbosity = atoi(yyvsp[0].str);
+ free(yyvsp[0].str);
}
- break;
-
- case 100:
+break;
+case 99:
#line 199 "util/configparser.y"
- {
- OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[(2) - (2)].str)));
- if(strcmp((yyvsp[(2) - (2)].str), "") == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0)
+{
+ OUTYY(("P(server_statistics_interval:%s)\n", yyvsp[0].str));
+ if(strcmp(yyvsp[0].str, "") == 0 || strcmp(yyvsp[0].str, "0") == 0)
cfg_parser->cfg->stat_interval = 0;
- else if(atoi((yyvsp[(2) - (2)].str)) == 0)
+ else if(atoi(yyvsp[0].str) == 0)
yyerror("number expected");
- else cfg_parser->cfg->stat_interval = atoi((yyvsp[(2) - (2)].str));
- free((yyvsp[(2) - (2)].str));
+ else cfg_parser->cfg->stat_interval = atoi(yyvsp[0].str);
+ free(yyvsp[0].str);
}
- break;
-
- case 101:
+break;
+case 100:
#line 210 "util/configparser.y"
- {
- OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[(2) - (2)].str)));
- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
+{
+ OUTYY(("P(server_statistics_cumulative:%s)\n", yyvsp[0].str));
+ if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0)
yyerror("expected yes or no.");
- else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
- free((yyvsp[(2) - (2)].str));
+ else cfg_parser->cfg->stat_cumulative = (strcmp(yyvsp[0].str, "yes")==0);
+ free(yyvsp[0].str);
}
- break;
-
- case 102:
+break;
+case 101:
#line 219 "util/configparser.y"
- {
- OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[(2) - (2)].str)));
- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
+{
+ OUTYY(("P(server_extended_statistics:%s)\n", yyvsp[0].str));
+ if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0)
yyerror("expected yes or no.");
- else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
- free((yyvsp[(2) - (2)].str));
+ else cfg_parser->cfg->stat_extended = (strcmp(yyvsp[0].str, "yes")==0);
+ free(yyvsp[0].str);
}
- break;
-
- case 103:
+break;
+case 102:
#line 228 "util/configparser.y"
- {
- OUTYY(("P(server_port:%s)\n", (yyvsp[(2) - (2)].str)));
- if(atoi((yyvsp[(2) - (2)].str)) == 0)
+{
+ OUTYY(("P(server_port:%s)\n", yyvsp[0].str));
+ if(atoi(yyvsp[0].str) == 0)
yyerror("port number expected");
- else cfg_parser->cfg->port = atoi((yyvsp[(2) - (2)].str));
- free((yyvsp[(2) - (2)].str));
+ else cfg_parser->cfg->port = atoi(yyvsp[0].str);
+ free(yyvsp[0].str);
}
- break;
-
- case 104:
+break;
+case 103:
#line 237 "util/configparser.y"
- {
- OUTYY(("P(server_interface:%s)\n", (yyvsp[(2) - (2)].str)));
+{
+ OUTYY(("P(server_interface:%s)\n", yyvsp[0].str));
if(cfg_parser->cfg->num_ifs == 0)
cfg_parser->cfg->ifs = calloc(1, sizeof(char*));
else cfg_parser->cfg->ifs = realloc(cfg_parser->cfg->ifs,
if(!cfg_parser->cfg->ifs)
yyerror("out of memory");
else
- cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[(2) - (2)].str);
+ cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = yyvsp[0].str;
}
- break;
-
- case 105:
+break;
+case 104:
#line 250 "util/configparser.y"
- {
- OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[(2) - (2)].str)));
+{
+ OUTYY(("P(server_outgoing_interface:%s)\n", yyvsp[0].str));
if(cfg_parser->cfg->num_out_ifs == 0)
cfg_parser->cfg->out_ifs = calloc(1, sizeof(char*));
else cfg_parser->cfg->out_ifs = realloc(
yyerror("out of memory");
else
cfg_parser->cfg->out_ifs[
- cfg_parser->cfg->num_out_ifs++] = (yyvsp[(2) - (2)].str);
+ cfg_parser->cfg->num_out_ifs++] = yyvsp[0].str;
}
- break;
-
- case 106:
+break;
+case 105:
#line 265 "util/configparser.y"
- {
- OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[(2) - (2)].str)));
- if(atoi((yyvsp[(2) - (2)].str)) == 0)
+{
+ OUTYY(("P(server_outgoing_range:%s)\n", yyvsp[0].str));
+ if(atoi(yyvsp[0].str) == 0)
yyerror("number expected");
- else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[(2) - (2)].str));
- free((yyvsp[(2) - (2)].str));
+ else cfg_parser->cfg->outgoing_num_ports = atoi(yyvsp[0].str);
+ free(yyvsp[0].str);
}
- break;
-
- case 107:
+break;
+case 106:
#line 274 "util/configparser.y"
- {
- OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[(2) - (2)].str)));
- if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 1,
+{
+ OUTYY(("P(server_outgoing_port_permit:%s)\n", yyvsp[0].str));
+ if(!cfg_mark_ports(yyvsp[0].str, 1,
cfg_parser->cfg->outgoing_avail_ports, 65536))
yyerror("port number or range (\"low-high\") expected");
- free((yyvsp[(2) - (2)].str));
+ free(yyvsp[0].str);
}
- break;
-
- case 108:
+break;
+case 107:
#line 283 "util/configparser.y"
- {
- OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[(2) - (2)].str)));
- if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 0,
+{
+ OUTYY(("P(server_outgoing_port_avoid:%s)\n", yyvsp[0].str));
+ if(!cfg_mark_ports(yyvsp[0].str, 0,
cfg_parser->cfg->outgoing_avail_ports, 65536))
yyerror("port number or range (\"low-high\") expected");
- free((yyvsp[(2) - (2)].str));
+ free(yyvsp[0].str);
}
- break;
-
- case 109:
+break;
+case 108:
#line 292 "util/configparser.y"
- {
- OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[(2) - (2)].str)));
- if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
+{
+ OUTYY(("P(server_outgoing_num_tcp:%s)\n", yyvsp[0].str));
+ if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0)
yyerror("number expected");
- else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[(2) - (2)].str));
- free((yyvsp[(2) - (2)].str));
+ else cfg_parser->cfg->outgoing_num_tcp = atoi(yyvsp[0].str);
+ free(yyvsp[0].str);
}
- break;
-
- case 110:
+break;
+case 109:
#line 301 "util/configparser.y"
- {
- OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[(2) - (2)].str)));
- if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
+{
+ OUTYY(("P(server_incoming_num_tcp:%s)\n", yyvsp[0].str));
+ if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0)
yyerror("number expected");
- else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[(2) - (2)].str));
- free((yyvsp[(2) - (2)].str));
+ else cfg_parser->cfg->incoming_num_tcp = atoi(yyvsp[0].str);
+ free(yyvsp[0].str);
}
- break;
-
- case 111:
+break;
+case 110:
#line 310 "util/configparser.y"
- {
- OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[(2) - (2)].str)));
- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
+{
+ OUTYY(("P(server_interface_automatic:%s)\n", yyvsp[0].str));
+ if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0)
yyerror("expected yes or no.");
- else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
- free((yyvsp[(2) - (2)].str));
+ else cfg_parser->cfg->if_automatic = (strcmp(yyvsp[0].str, "yes")==0);
+ free(yyvsp[0].str);
}
- break;
-
- case 112:
+break;
+case 111:
#line 319 "util/configparser.y"
- {
- OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[(2) - (2)].str)));
- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
+{
+ OUTYY(("P(server_do_ip4:%s)\n", yyvsp[0].str));
+ if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0)
yyerror("expected yes or no.");
- else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
- free((yyvsp[(2) - (2)].str));
+ else cfg_parser->cfg->do_ip4 = (strcmp(yyvsp[0].str, "yes")==0);
+ free(yyvsp[0].str);
}
- break;
-
- case 113:
+break;
+case 112:
#line 328 "util/configparser.y"
- {
- OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[(2) - (2)].str)));
- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
+{
+ OUTYY(("P(server_do_ip6:%s)\n", yyvsp[0].str));
+ if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0)
yyerror("expected yes or no.");
- else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
- free((yyvsp[(2) - (2)].str));
+ else cfg_parser->cfg->do_ip6 = (strcmp(yyvsp[0].str, "yes")==0);
+ free(yyvsp[0].str);
}
- break;
-
- case 114:
+break;
+case 113:
#line 337 "util/configparser.y"
- {
- OUTYY(("P(server_do_udp:%s)\n", (yyvsp[(2) - (2)].str)));
- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
+{
+ OUTYY(("P(server_do_udp:%s)\n", yyvsp[0].str));
+ if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0)
yyerror("expected yes or no.");
- else cfg_parser->cfg->do_udp = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
- free((yyvsp[(2) - (2)].str));
+ else cfg_parser->cfg->do_udp = (strcmp(yyvsp[0].str, "yes")==0);
+ free(yyvsp[0].str);
}
- break;
-
- case 115:
+break;
+case 114:
#line 346 "util/configparser.y"
- {
- OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[(2) - (2)].str)));
- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
+{
+ OUTYY(("P(server_do_tcp:%s)\n", yyvsp[0].str));
+ if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0)
yyerror("expected yes or no.");
- else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
- free((yyvsp[(2) - (2)].str));
+ else cfg_parser->cfg->do_tcp = (strcmp(yyvsp[0].str, "yes")==0);
+ free(yyvsp[0].str);
}
- break;
-
- case 116:
+break;
+case 115:
#line 355 "util/configparser.y"
- {
- OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[(2) - (2)].str)));
- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
+{
+ OUTYY(("P(server_do_daemonize:%s)\n", yyvsp[0].str));
+ if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0)
yyerror("expected yes or no.");
- else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
- free((yyvsp[(2) - (2)].str));
+ else cfg_parser->cfg->do_daemonize = (strcmp(yyvsp[0].str, "yes")==0);
+ free(yyvsp[0].str);
}
- break;
-
- case 117:
+break;
+case 116:
#line 364 "util/configparser.y"
- {
- OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[(2) - (2)].str)));
- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
+{
+ OUTYY(("P(server_use_syslog:%s)\n", yyvsp[0].str));
+ if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0)
yyerror("expected yes or no.");
- else cfg_parser->cfg->use_syslog = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
-#ifndef HAVE_SYSLOG_H
- if(strcmp((yyvsp[(2) - (2)].str), "yes") == 0)
+ else cfg_parser->cfg->use_syslog = (strcmp(yyvsp[0].str, "yes")==0);
+#if !defined(HAVE_SYSLOG_H) && !defined(UB_ON_WINDOWS)
+ if(strcmp(yyvsp[0].str, "yes") == 0)
yyerror("no syslog services are available. "
"(reconfigure and compile to add)");
#endif
- free((yyvsp[(2) - (2)].str));
+ free(yyvsp[0].str);
}
- break;
-
- case 118:
+break;
+case 117:
#line 378 "util/configparser.y"
- {
- OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[(2) - (2)].str)));
- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
+{
+ OUTYY(("P(server_log_time_ascii:%s)\n", yyvsp[0].str));
+ if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0)
yyerror("expected yes or no.");
- else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
- free((yyvsp[(2) - (2)].str));
+ else cfg_parser->cfg->log_time_ascii = (strcmp(yyvsp[0].str, "yes")==0);
+ free(yyvsp[0].str);
}
- break;
-
- case 119:
+break;
+case 118:
#line 387 "util/configparser.y"
- {
- OUTYY(("P(server_chroot:%s)\n", (yyvsp[(2) - (2)].str)));
+{
+ OUTYY(("P(server_chroot:%s)\n", yyvsp[0].str));
free(cfg_parser->cfg->chrootdir);
- cfg_parser->cfg->chrootdir = (yyvsp[(2) - (2)].str);
+ cfg_parser->cfg->chrootdir = yyvsp[0].str;
}
- break;
-
- case 120:
+break;
+case 119:
#line 394 "util/configparser.y"
- {
- OUTYY(("P(server_username:%s)\n", (yyvsp[(2) - (2)].str)));
+{
+ OUTYY(("P(server_username:%s)\n", yyvsp[0].str));
free(cfg_parser->cfg->username);
- cfg_parser->cfg->username = (yyvsp[(2) - (2)].str);
+ cfg_parser->cfg->username = yyvsp[0].str;
}
- break;
-
- case 121:
+break;
+case 120:
#line 401 "util/configparser.y"
- {
- OUTYY(("P(server_directory:%s)\n", (yyvsp[(2) - (2)].str)));
+{
+ OUTYY(("P(server_directory:%s)\n", yyvsp[0].str));
free(cfg_parser->cfg->directory);
- cfg_parser->cfg->directory = (yyvsp[(2) - (2)].str);
+ cfg_parser->cfg->directory = yyvsp[0].str;
}
- break;
-
- case 122:
+break;
+case 121:
#line 408 "util/configparser.y"
- {
- OUTYY(("P(server_logfile:%s)\n", (yyvsp[(2) - (2)].str)));
+{
+ OUTYY(("P(server_logfile:%s)\n", yyvsp[0].str));
free(cfg_parser->cfg->logfile);
- cfg_parser->cfg->logfile = (yyvsp[(2) - (2)].str);
+ cfg_parser->cfg->logfile = yyvsp[0].str;
cfg_parser->cfg->use_syslog = 0;
}
- break;
-
- case 123:
+break;
+case 122:
#line 416 "util/configparser.y"
- {
- OUTYY(("P(server_pidfile:%s)\n", (yyvsp[(2) - (2)].str)));
+{
+ OUTYY(("P(server_pidfile:%s)\n", yyvsp[0].str));
free(cfg_parser->cfg->pidfile);
- cfg_parser->cfg->pidfile = (yyvsp[(2) - (2)].str);
+ cfg_parser->cfg->pidfile = yyvsp[0].str;
}
- break;
-
- case 124:
+break;
+case 123:
#line 423 "util/configparser.y"
- {
- OUTYY(("P(server_root_hints:%s)\n", (yyvsp[(2) - (2)].str)));
- if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[(2) - (2)].str)))
+{
+ OUTYY(("P(server_root_hints:%s)\n", yyvsp[0].str));
+ if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, yyvsp[0].str))
yyerror("out of memory");
}
- break;
-
- case 125:
+break;
+case 124:
#line 430 "util/configparser.y"
- {
- OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[(2) - (2)].str)));
+{
+ OUTYY(("P(server_dlv_anchor_file:%s)\n", yyvsp[0].str));
free(cfg_parser->cfg->dlv_anchor_file);
- cfg_parser->cfg->dlv_anchor_file = (yyvsp[(2) - (2)].str);
+ cfg_parser->cfg->dlv_anchor_file = yyvsp[0].str;
}
- break;
-
- case 126:
+break;
+case 125:
#line 437 "util/configparser.y"
- {
- OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[(2) - (2)].str)));
- if(!cfg_strlist_insert(&cfg_parser->cfg->dlv_anchor_list, (yyvsp[(2) - (2)].str)))
+{
+ OUTYY(("P(server_dlv_anchor:%s)\n", yyvsp[0].str));
+ if(!cfg_strlist_insert(&cfg_parser->cfg->dlv_anchor_list, yyvsp[0].str))
yyerror("out of memory");
}
- break;
-
- case 127:
+break;
+case 126:
#line 444 "util/configparser.y"
- {
- OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str)));
+{
+ OUTYY(("P(server_trust_anchor_file:%s)\n", yyvsp[0].str));
if(!cfg_strlist_insert(&cfg_parser->cfg->
- trust_anchor_file_list, (yyvsp[(2) - (2)].str)))
+ trust_anchor_file_list, yyvsp[0].str))
yyerror("out of memory");
}
- break;
-
- case 128:
+break;
+case 127:
#line 452 "util/configparser.y"
- {
- OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[(2) - (2)].str)));
+{
+ OUTYY(("P(server_trusted_keys_file:%s)\n", yyvsp[0].str));
if(!cfg_strlist_insert(&cfg_parser->cfg->
- trusted_keys_file_list, (yyvsp[(2) - (2)].str)))
+ trusted_keys_file_list, yyvsp[0].str))
yyerror("out of memory");
}
- break;
-
- case 129:
+break;
+case 128:
#line 460 "util/configparser.y"
- {
- OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[(2) - (2)].str)));
- if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[(2) - (2)].str)))
+{
+ OUTYY(("P(server_trust_anchor:%s)\n", yyvsp[0].str));
+ if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, yyvsp[0].str))
yyerror("out of memory");
}
- break;
-
- case 130:
+break;
+case 129:
#line 467 "util/configparser.y"
- {
- OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[(2) - (2)].str)));
- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
+{
+ OUTYY(("P(server_hide_identity:%s)\n", yyvsp[0].str));
+ if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0)
yyerror("expected yes or no.");
- else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
- free((yyvsp[(2) - (2)].str));
+ else cfg_parser->cfg->hide_identity = (strcmp(yyvsp[0].str, "yes")==0);
+ free(yyvsp[0].str);
}
- break;
-
- case 131:
+break;
+case 130:
#line 476 "util/configparser.y"
- {
- OUTYY(("P(server_hide_version:%s)\n", (yyvsp[(2) - (2)].str)));
- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
+{
+ OUTYY(("P(server_hide_version:%s)\n", yyvsp[0].str));
+ if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0)
yyerror("expected yes or no.");
- else cfg_parser->cfg->hide_version = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
- free((yyvsp[(2) - (2)].str));
+ else cfg_parser->cfg->hide_version = (strcmp(yyvsp[0].str, "yes")==0);
+ free(yyvsp[0].str);
}
- break;
-
- case 132:
+break;
+case 131:
#line 485 "util/configparser.y"
- {
- OUTYY(("P(server_identity:%s)\n", (yyvsp[(2) - (2)].str)));
+{
+ OUTYY(("P(server_identity:%s)\n", yyvsp[0].str));
free(cfg_parser->cfg->identity);
- cfg_parser->cfg->identity = (yyvsp[(2) - (2)].str);
+ cfg_parser->cfg->identity = yyvsp[0].str;
}
- break;
-
- case 133:
+break;
+case 132:
#line 492 "util/configparser.y"
- {
- OUTYY(("P(server_version:%s)\n", (yyvsp[(2) - (2)].str)));
+{
+ OUTYY(("P(server_version:%s)\n", yyvsp[0].str));
free(cfg_parser->cfg->version);
- cfg_parser->cfg->version = (yyvsp[(2) - (2)].str);
+ cfg_parser->cfg->version = yyvsp[0].str;
}
- break;
-
- case 134:
+break;
+case 133:
#line 499 "util/configparser.y"
- {
- OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[(2) - (2)].str)));
- if(atoi((yyvsp[(2) - (2)].str)) == 0)
+{
+ OUTYY(("P(server_msg_buffer_size:%s)\n", yyvsp[0].str));
+ if(atoi(yyvsp[0].str) == 0)
yyerror("number expected");
- else if (atoi((yyvsp[(2) - (2)].str)) < 4096)
+ else if (atoi(yyvsp[0].str) < 4096)
yyerror("message buffer size too small (use 4096)");
- else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[(2) - (2)].str));
- free((yyvsp[(2) - (2)].str));
+ else cfg_parser->cfg->msg_buffer_size = atoi(yyvsp[0].str);
+ free(yyvsp[0].str);
}
- break;
-
- case 135:
+break;
+case 134:
#line 510 "util/configparser.y"
- {
- OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[(2) - (2)].str)));
- if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->msg_cache_size))
+{
+ OUTYY(("P(server_msg_cache_size:%s)\n", yyvsp[0].str));
+ if(!cfg_parse_memsize(yyvsp[0].str, &cfg_parser->cfg->msg_cache_size))
yyerror("memory size expected");
- free((yyvsp[(2) - (2)].str));
+ free(yyvsp[0].str);
}
- break;
-
- case 136:
+break;
+case 135:
#line 518 "util/configparser.y"
- {
- OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
- if(atoi((yyvsp[(2) - (2)].str)) == 0)
+{
+ OUTYY(("P(server_msg_cache_slabs:%s)\n", yyvsp[0].str));
+ if(atoi(yyvsp[0].str) == 0)
yyerror("number expected");
else {
- cfg_parser->cfg->msg_cache_slabs = atoi((yyvsp[(2) - (2)].str));
+ cfg_parser->cfg->msg_cache_slabs = atoi(yyvsp[0].str);
if(!is_pow2(cfg_parser->cfg->msg_cache_slabs))
yyerror("must be a power of 2");
}
- free((yyvsp[(2) - (2)].str));
+ free(yyvsp[0].str);
}
- break;
-
- case 137:
+break;
+case 136:
#line 531 "util/configparser.y"
- {
- OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[(2) - (2)].str)));
- if(atoi((yyvsp[(2) - (2)].str)) == 0)
+{
+ OUTYY(("P(server_num_queries_per_thread:%s)\n", yyvsp[0].str));
+ if(atoi(yyvsp[0].str) == 0)
yyerror("number expected");
- else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[(2) - (2)].str));
- free((yyvsp[(2) - (2)].str));
+ else cfg_parser->cfg->num_queries_per_thread = atoi(yyvsp[0].str);
+ free(yyvsp[0].str);
}
- break;
-
- case 138:
+break;
+case 137:
#line 540 "util/configparser.y"
- {
- OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[(2) - (2)].str)));
- if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
+{
+ OUTYY(("P(server_jostle_timeout:%s)\n", yyvsp[0].str));
+ if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0)
yyerror("number expected");
- else cfg_parser->cfg->jostle_time = atoi((yyvsp[(2) - (2)].str));
- free((yyvsp[(2) - (2)].str));
+ else cfg_parser->cfg->jostle_time = atoi(yyvsp[0].str);
+ free(yyvsp[0].str);
}
- break;
-
- case 139:
+break;
+case 138:
#line 549 "util/configparser.y"
- {
- OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[(2) - (2)].str)));
- if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->rrset_cache_size))
+{
+ OUTYY(("P(server_rrset_cache_size:%s)\n", yyvsp[0].str));
+ if(!cfg_parse_memsize(yyvsp[0].str, &cfg_parser->cfg->rrset_cache_size))
yyerror("memory size expected");
- free((yyvsp[(2) - (2)].str));
+ free(yyvsp[0].str);
}
- break;
-
- case 140:
+break;
+case 139:
#line 557 "util/configparser.y"
- {
- OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
- if(atoi((yyvsp[(2) - (2)].str)) == 0)
+{
+ OUTYY(("P(server_rrset_cache_slabs:%s)\n", yyvsp[0].str));
+ if(atoi(yyvsp[0].str) == 0)
yyerror("number expected");
else {
- cfg_parser->cfg->rrset_cache_slabs = atoi((yyvsp[(2) - (2)].str));
+ cfg_parser->cfg->rrset_cache_slabs = atoi(yyvsp[0].str);
if(!is_pow2(cfg_parser->cfg->rrset_cache_slabs))
yyerror("must be a power of 2");
}
- free((yyvsp[(2) - (2)].str));
+ free(yyvsp[0].str);
}
- break;
-
- case 141:
+break;
+case 140:
#line 570 "util/configparser.y"
- {
- OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
- if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
+{
+ OUTYY(("P(server_infra_host_ttl:%s)\n", yyvsp[0].str));
+ if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0)
yyerror("number expected");
- else cfg_parser->cfg->host_ttl = atoi((yyvsp[(2) - (2)].str));
- free((yyvsp[(2) - (2)].str));
+ else cfg_parser->cfg->host_ttl = atoi(yyvsp[0].str);
+ free(yyvsp[0].str);
}
- break;
-
- case 142:
+break;
+case 141:
#line 579 "util/configparser.y"
- {
- OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
- if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
+{
+ OUTYY(("P(server_infra_lame_ttl:%s)\n", yyvsp[0].str));
+ if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0)
yyerror("number expected");
- else cfg_parser->cfg->lame_ttl = atoi((yyvsp[(2) - (2)].str));
- free((yyvsp[(2) - (2)].str));
+ else cfg_parser->cfg->lame_ttl = atoi(yyvsp[0].str);
+ free(yyvsp[0].str);
}
- break;
-
- case 143:
+break;
+case 142:
#line 588 "util/configparser.y"
- {
- OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[(2) - (2)].str)));
- if(atoi((yyvsp[(2) - (2)].str)) == 0)
+{
+ OUTYY(("P(server_infra_cache_numhosts:%s)\n", yyvsp[0].str));
+ if(atoi(yyvsp[0].str) == 0)
yyerror("number expected");
- else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[(2) - (2)].str));
- free((yyvsp[(2) - (2)].str));
+ else cfg_parser->cfg->infra_cache_numhosts = atoi(yyvsp[0].str);
+ free(yyvsp[0].str);
}
- break;
-
- case 144:
+break;
+case 143:
#line 597 "util/configparser.y"
- {
- OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[(2) - (2)].str)));
- if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->
+{
+ OUTYY(("P(server_infra_cache_lame_size:%s)\n", yyvsp[0].str));
+ if(!cfg_parse_memsize(yyvsp[0].str, &cfg_parser->cfg->
infra_cache_lame_size))
yyerror("number expected");
- free((yyvsp[(2) - (2)].str));
+ free(yyvsp[0].str);
}
- break;
-
- case 145:
+break;
+case 144:
#line 606 "util/configparser.y"
- {
- OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
- if(atoi((yyvsp[(2) - (2)].str)) == 0)
+{
+ OUTYY(("P(server_infra_cache_slabs:%s)\n", yyvsp[0].str));
+ if(atoi(yyvsp[0].str) == 0)
yyerror("number expected");
else {
- cfg_parser->cfg->infra_cache_slabs = atoi((yyvsp[(2) - (2)].str));
+ cfg_parser->cfg->infra_cache_slabs = atoi(yyvsp[0].str);
if(!is_pow2(cfg_parser->cfg->infra_cache_slabs))
yyerror("must be a power of 2");
}
- free((yyvsp[(2) - (2)].str));
+ free(yyvsp[0].str);
}
- break;
-
- case 146:
+break;
+case 145:
#line 619 "util/configparser.y"
- {
- OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[(2) - (2)].str)));
+{
+ OUTYY(("P(server_target_fetch_policy:%s)\n", yyvsp[0].str));
free(cfg_parser->cfg->target_fetch_policy);
- cfg_parser->cfg->target_fetch_policy = (yyvsp[(2) - (2)].str);
+ cfg_parser->cfg->target_fetch_policy = yyvsp[0].str;
}
- break;
-
- case 147:
+break;
+case 146:
#line 626 "util/configparser.y"
- {
- OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[(2) - (2)].str)));
- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
+{
+ OUTYY(("P(server_harden_short_bufsize:%s)\n", yyvsp[0].str));
+ if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0)
yyerror("expected yes or no.");
else cfg_parser->cfg->harden_short_bufsize =
- (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
- free((yyvsp[(2) - (2)].str));
+ (strcmp(yyvsp[0].str, "yes")==0);
+ free(yyvsp[0].str);
}
- break;
-
- case 148:
+break;
+case 147:
#line 636 "util/configparser.y"
- {
- OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[(2) - (2)].str)));
- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
+{
+ OUTYY(("P(server_harden_large_queries:%s)\n", yyvsp[0].str));
+ if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0)
yyerror("expected yes or no.");
else cfg_parser->cfg->harden_large_queries =
- (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
- free((yyvsp[(2) - (2)].str));
+ (strcmp(yyvsp[0].str, "yes")==0);
+ free(yyvsp[0].str);
}
- break;
-
- case 149:
+break;
+case 148:
#line 646 "util/configparser.y"
- {
- OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[(2) - (2)].str)));
- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
+{
+ OUTYY(("P(server_harden_glue:%s)\n", yyvsp[0].str));
+ if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0)
yyerror("expected yes or no.");
else cfg_parser->cfg->harden_glue =
- (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
- free((yyvsp[(2) - (2)].str));
+ (strcmp(yyvsp[0].str, "yes")==0);
+ free(yyvsp[0].str);
}
- break;
-
- case 150:
+break;
+case 149:
#line 656 "util/configparser.y"
- {
- OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[(2) - (2)].str)));
- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
+{
+ OUTYY(("P(server_harden_dnssec_stripped:%s)\n", yyvsp[0].str));
+ if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0)
yyerror("expected yes or no.");
else cfg_parser->cfg->harden_dnssec_stripped =
- (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
- free((yyvsp[(2) - (2)].str));
+ (strcmp(yyvsp[0].str, "yes")==0);
+ free(yyvsp[0].str);
}
- break;
-
- case 151:
+break;
+case 150:
#line 666 "util/configparser.y"
- {
- OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[(2) - (2)].str)));
- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
+{
+ OUTYY(("P(server_harden_referral_path:%s)\n", yyvsp[0].str));
+ if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0)
yyerror("expected yes or no.");
else cfg_parser->cfg->harden_referral_path =
- (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
- free((yyvsp[(2) - (2)].str));
+ (strcmp(yyvsp[0].str, "yes")==0);
+ free(yyvsp[0].str);
}
- break;
-
- case 152:
+break;
+case 151:
#line 676 "util/configparser.y"
- {
- OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[(2) - (2)].str)));
- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
+{
+ OUTYY(("P(server_use_caps_for_id:%s)\n", yyvsp[0].str));
+ if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0)
yyerror("expected yes or no.");
else cfg_parser->cfg->use_caps_bits_for_id =
- (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
- free((yyvsp[(2) - (2)].str));
+ (strcmp(yyvsp[0].str, "yes")==0);
+ free(yyvsp[0].str);
}
- break;
-
- case 153:
+break;
+case 152:
#line 686 "util/configparser.y"
- {
- OUTYY(("P(server_private_address:%s)\n", (yyvsp[(2) - (2)].str)));
- if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[(2) - (2)].str)))
+{
+ OUTYY(("P(server_private_address:%s)\n", yyvsp[0].str));
+ if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, yyvsp[0].str))
yyerror("out of memory");
}
- break;
-
- case 154:
+break;
+case 153:
#line 693 "util/configparser.y"
- {
- OUTYY(("P(server_private_domain:%s)\n", (yyvsp[(2) - (2)].str)));
- if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[(2) - (2)].str)))
+{
+ OUTYY(("P(server_private_domain:%s)\n", yyvsp[0].str));
+ if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, yyvsp[0].str))
yyerror("out of memory");
}
- break;
-
- case 155:
+break;
+case 154:
#line 700 "util/configparser.y"
- {
- OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[(2) - (2)].str)));
- if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
+{
+ OUTYY(("P(server_unwanted_reply_threshold:%s)\n", yyvsp[0].str));
+ if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0)
yyerror("number expected");
- else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[(2) - (2)].str));
- free((yyvsp[(2) - (2)].str));
+ else cfg_parser->cfg->unwanted_threshold = atoi(yyvsp[0].str);
+ free(yyvsp[0].str);
}
- break;
-
- case 156:
+break;
+case 155:
#line 709 "util/configparser.y"
- {
- OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[(2) - (2)].str)));
- if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[(2) - (2)].str)))
+{
+ OUTYY(("P(server_do_not_query_address:%s)\n", yyvsp[0].str));
+ if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, yyvsp[0].str))
yyerror("out of memory");
}
- break;
-
- case 157:
+break;
+case 156:
#line 716 "util/configparser.y"
- {
- OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[(2) - (2)].str)));
- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
+{
+ OUTYY(("P(server_do_not_query_localhost:%s)\n", yyvsp[0].str));
+ if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0)
yyerror("expected yes or no.");
else cfg_parser->cfg->donotquery_localhost =
- (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
- free((yyvsp[(2) - (2)].str));
+ (strcmp(yyvsp[0].str, "yes")==0);
+ free(yyvsp[0].str);
}
- break;
-
- case 158:
+break;
+case 157:
#line 726 "util/configparser.y"
- {
- OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)));
- if(strcmp((yyvsp[(3) - (3)].str), "deny")!=0 && strcmp((yyvsp[(3) - (3)].str), "refuse")!=0 &&
- strcmp((yyvsp[(3) - (3)].str), "allow")!=0 &&
- strcmp((yyvsp[(3) - (3)].str), "allow_snoop")!=0) {
+{
+ OUTYY(("P(server_access_control:%s %s)\n", yyvsp[-1].str, yyvsp[0].str));
+ if(strcmp(yyvsp[0].str, "deny")!=0 && strcmp(yyvsp[0].str, "refuse")!=0 &&
+ strcmp(yyvsp[0].str, "allow")!=0 &&
+ strcmp(yyvsp[0].str, "allow_snoop")!=0) {
yyerror("expected deny, refuse, allow or allow_snoop "
"in access control action");
} else {
- if(!cfg_str2list_insert(&cfg_parser->cfg->acls, (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)))
+ if(!cfg_str2list_insert(&cfg_parser->cfg->acls, yyvsp[-1].str, yyvsp[0].str))
fatal_exit("out of memory adding acl");
}
}
- break;
-
- case 159:
+break;
+case 158:
#line 740 "util/configparser.y"
- {
- OUTYY(("P(server_module_conf:%s)\n", (yyvsp[(2) - (2)].str)));
+{
+ OUTYY(("P(server_module_conf:%s)\n", yyvsp[0].str));
free(cfg_parser->cfg->module_conf);
- cfg_parser->cfg->module_conf = (yyvsp[(2) - (2)].str);
+ cfg_parser->cfg->module_conf = yyvsp[0].str;
}
- break;
-
- case 160:
+break;
+case 159:
#line 747 "util/configparser.y"
- {
- OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[(2) - (2)].str)));
- if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) {
+{
+ OUTYY(("P(server_val_override_date:%s)\n", yyvsp[0].str));
+ if(strlen(yyvsp[0].str) == 0 || strcmp(yyvsp[0].str, "0") == 0) {
cfg_parser->cfg->val_date_override = 0;
- } else if(strlen((yyvsp[(2) - (2)].str)) == 14) {
+ } else if(strlen(yyvsp[0].str) == 14) {
cfg_parser->cfg->val_date_override =
- cfg_convert_timeval((yyvsp[(2) - (2)].str));
+ cfg_convert_timeval(yyvsp[0].str);
if(!cfg_parser->cfg->val_date_override)
yyerror("bad date/time specification");
} else {
- if(atoi((yyvsp[(2) - (2)].str)) == 0)
+ if(atoi(yyvsp[0].str) == 0)
yyerror("number expected");
- cfg_parser->cfg->val_date_override = atoi((yyvsp[(2) - (2)].str));
+ cfg_parser->cfg->val_date_override = atoi(yyvsp[0].str);
}
- free((yyvsp[(2) - (2)].str));
+ free(yyvsp[0].str);
}
- break;
-
- case 161:
+break;
+case 160:
#line 765 "util/configparser.y"
- {
- OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
- if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
+{
+ OUTYY(("P(server_cache_max_ttl:%s)\n", yyvsp[0].str));
+ if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0)
yyerror("number expected");
- else cfg_parser->cfg->max_ttl = atoi((yyvsp[(2) - (2)].str));
- free((yyvsp[(2) - (2)].str));
+ else cfg_parser->cfg->max_ttl = atoi(yyvsp[0].str);
+ free(yyvsp[0].str);
}
- break;
-
- case 162:
+break;
+case 161:
#line 774 "util/configparser.y"
- {
- OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
- if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
+{
+ OUTYY(("P(server_bogus_ttl:%s)\n", yyvsp[0].str));
+ if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0)
yyerror("number expected");
- else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[(2) - (2)].str));
- free((yyvsp[(2) - (2)].str));
+ else cfg_parser->cfg->bogus_ttl = atoi(yyvsp[0].str);
+ free(yyvsp[0].str);
}
- break;
-
- case 163:
+break;
+case 162:
#line 783 "util/configparser.y"
- {
- OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[(2) - (2)].str)));
- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
+{
+ OUTYY(("P(server_val_clean_additional:%s)\n", yyvsp[0].str));
+ if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0)
yyerror("expected yes or no.");
else cfg_parser->cfg->val_clean_additional =
- (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
- free((yyvsp[(2) - (2)].str));
+ (strcmp(yyvsp[0].str, "yes")==0);
+ free(yyvsp[0].str);
}
- break;
-
- case 164:
+break;
+case 163:
#line 793 "util/configparser.y"
- {
- OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[(2) - (2)].str)));
- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
+{
+ OUTYY(("P(server_val_permissive_mode:%s)\n", yyvsp[0].str));
+ if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0)
yyerror("expected yes or no.");
else cfg_parser->cfg->val_permissive_mode =
- (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
- free((yyvsp[(2) - (2)].str));
+ (strcmp(yyvsp[0].str, "yes")==0);
+ free(yyvsp[0].str);
}
- break;
-
- case 165:
+break;
+case 164:
#line 803 "util/configparser.y"
- {
- OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[(2) - (2)].str)));
+{
+ OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", yyvsp[0].str));
free(cfg_parser->cfg->val_nsec3_key_iterations);
- cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[(2) - (2)].str);
+ cfg_parser->cfg->val_nsec3_key_iterations = yyvsp[0].str;
}
- break;
-
- case 166:
+break;
+case 165:
#line 810 "util/configparser.y"
- {
- OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[(2) - (2)].str)));
- if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->key_cache_size))
+{
+ OUTYY(("P(server_key_cache_size:%s)\n", yyvsp[0].str));
+ if(!cfg_parse_memsize(yyvsp[0].str, &cfg_parser->cfg->key_cache_size))
yyerror("memory size expected");
- free((yyvsp[(2) - (2)].str));
+ free(yyvsp[0].str);
}
- break;
-
- case 167:
+break;
+case 166:
#line 818 "util/configparser.y"
- {
- OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
- if(atoi((yyvsp[(2) - (2)].str)) == 0)
+{
+ OUTYY(("P(server_key_cache_slabs:%s)\n", yyvsp[0].str));
+ if(atoi(yyvsp[0].str) == 0)
yyerror("number expected");
else {
- cfg_parser->cfg->key_cache_slabs = atoi((yyvsp[(2) - (2)].str));
+ cfg_parser->cfg->key_cache_slabs = atoi(yyvsp[0].str);
if(!is_pow2(cfg_parser->cfg->key_cache_slabs))
yyerror("must be a power of 2");
}
- free((yyvsp[(2) - (2)].str));
+ free(yyvsp[0].str);
}
- break;
-
- case 168:
+break;
+case 167:
#line 831 "util/configparser.y"
- {
- OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[(2) - (2)].str)));
- if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->neg_cache_size))
+{
+ OUTYY(("P(server_neg_cache_size:%s)\n", yyvsp[0].str));
+ if(!cfg_parse_memsize(yyvsp[0].str, &cfg_parser->cfg->neg_cache_size))
yyerror("memory size expected");
- free((yyvsp[(2) - (2)].str));
+ free(yyvsp[0].str);
}
- break;
-
- case 169:
+break;
+case 168:
#line 839 "util/configparser.y"
- {
- OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)));
- if(strcmp((yyvsp[(3) - (3)].str), "static")!=0 && strcmp((yyvsp[(3) - (3)].str), "deny")!=0 &&
- strcmp((yyvsp[(3) - (3)].str), "refuse")!=0 && strcmp((yyvsp[(3) - (3)].str), "redirect")!=0 &&
- strcmp((yyvsp[(3) - (3)].str), "transparent")!=0 && strcmp((yyvsp[(3) - (3)].str), "nodefault")!=0)
+{
+ OUTYY(("P(server_local_zone:%s %s)\n", yyvsp[-1].str, yyvsp[0].str));
+ if(strcmp(yyvsp[0].str, "static")!=0 && strcmp(yyvsp[0].str, "deny")!=0 &&
+ strcmp(yyvsp[0].str, "refuse")!=0 && strcmp(yyvsp[0].str, "redirect")!=0 &&
+ strcmp(yyvsp[0].str, "transparent")!=0 && strcmp(yyvsp[0].str, "nodefault")!=0)
yyerror("local-zone type: expected static, deny, "
"refuse, redirect, transparent or nodefault");
- else if(strcmp((yyvsp[(3) - (3)].str), "nodefault")==0) {
+ else if(strcmp(yyvsp[0].str, "nodefault")==0) {
if(!cfg_strlist_insert(&cfg_parser->cfg->
- local_zones_nodefault, (yyvsp[(2) - (3)].str)))
+ local_zones_nodefault, yyvsp[-1].str))
fatal_exit("out of memory adding local-zone");
- free((yyvsp[(3) - (3)].str));
+ free(yyvsp[0].str);
} else {
if(!cfg_str2list_insert(&cfg_parser->cfg->local_zones,
- (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)))
+ yyvsp[-1].str, yyvsp[0].str))
fatal_exit("out of memory adding local-zone");
}
}
- break;
-
- case 170:
+break;
+case 169:
#line 859 "util/configparser.y"
- {
- OUTYY(("P(server_local_data:%s)\n", (yyvsp[(2) - (2)].str)));
- if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[(2) - (2)].str)))
+{
+ OUTYY(("P(server_local_data:%s)\n", yyvsp[0].str));
+ if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, yyvsp[0].str))
fatal_exit("out of memory adding local-data");
}
- break;
-
- case 171:
+break;
+case 170:
#line 866 "util/configparser.y"
- {
+{
char* ptr;
- OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[(2) - (2)].str)));
- ptr = cfg_ptr_reverse((yyvsp[(2) - (2)].str));
- free((yyvsp[(2) - (2)].str));
+ OUTYY(("P(server_local_data_ptr:%s)\n", yyvsp[0].str));
+ ptr = cfg_ptr_reverse(yyvsp[0].str);
+ free(yyvsp[0].str);
if(ptr) {
if(!cfg_strlist_insert(&cfg_parser->cfg->
local_data, ptr))
yyerror("local-data-ptr could not be reversed");
}
}
- break;
-
- case 172:
+break;
+case 171:
#line 881 "util/configparser.y"
- {
- OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str)));
+{
+ OUTYY(("P(name:%s)\n", yyvsp[0].str));
free(cfg_parser->cfg->stubs->name);
- cfg_parser->cfg->stubs->name = (yyvsp[(2) - (2)].str);
+ cfg_parser->cfg->stubs->name = yyvsp[0].str;
}
- break;
-
- case 173:
+break;
+case 172:
#line 888 "util/configparser.y"
- {
- OUTYY(("P(stub-host:%s)\n", (yyvsp[(2) - (2)].str)));
- if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[(2) - (2)].str)))
+{
+ OUTYY(("P(stub-host:%s)\n", yyvsp[0].str));
+ if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, yyvsp[0].str))
yyerror("out of memory");
}
- break;
-
- case 174:
+break;
+case 173:
#line 895 "util/configparser.y"
- {
- OUTYY(("P(stub-addr:%s)\n", (yyvsp[(2) - (2)].str)));
- if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[(2) - (2)].str)))
+{
+ OUTYY(("P(stub-addr:%s)\n", yyvsp[0].str));
+ if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, yyvsp[0].str))
yyerror("out of memory");
}
- break;
-
- case 175:
+break;
+case 174:
#line 902 "util/configparser.y"
- {
- OUTYY(("P(stub-prime:%s)\n", (yyvsp[(2) - (2)].str)));
- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
+{
+ OUTYY(("P(stub-prime:%s)\n", yyvsp[0].str));
+ if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0)
yyerror("expected yes or no.");
else cfg_parser->cfg->stubs->isprime =
- (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
- free((yyvsp[(2) - (2)].str));
+ (strcmp(yyvsp[0].str, "yes")==0);
+ free(yyvsp[0].str);
}
- break;
-
- case 176:
+break;
+case 175:
#line 912 "util/configparser.y"
- {
- OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str)));
+{
+ OUTYY(("P(name:%s)\n", yyvsp[0].str));
free(cfg_parser->cfg->forwards->name);
- cfg_parser->cfg->forwards->name = (yyvsp[(2) - (2)].str);
+ cfg_parser->cfg->forwards->name = yyvsp[0].str;
}
- break;
-
- case 177:
+break;
+case 176:
#line 919 "util/configparser.y"
- {
- OUTYY(("P(forward-host:%s)\n", (yyvsp[(2) - (2)].str)));
- if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[(2) - (2)].str)))
+{
+ OUTYY(("P(forward-host:%s)\n", yyvsp[0].str));
+ if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, yyvsp[0].str))
yyerror("out of memory");
}
- break;
-
- case 178:
+break;
+case 177:
#line 926 "util/configparser.y"
- {
- OUTYY(("P(forward-addr:%s)\n", (yyvsp[(2) - (2)].str)));
- if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[(2) - (2)].str)))
+{
+ OUTYY(("P(forward-addr:%s)\n", yyvsp[0].str));
+ if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, yyvsp[0].str))
yyerror("out of memory");
}
- break;
-
- case 179:
+break;
+case 178:
#line 933 "util/configparser.y"
- {
+{
OUTYY(("\nP(remote-control:)\n"));
}
- break;
-
- case 189:
+break;
+case 188:
#line 944 "util/configparser.y"
- {
- OUTYY(("P(control_enable:%s)\n", (yyvsp[(2) - (2)].str)));
- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
+{
+ OUTYY(("P(control_enable:%s)\n", yyvsp[0].str));
+ if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0)
yyerror("expected yes or no.");
else cfg_parser->cfg->remote_control_enable =
- (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
- free((yyvsp[(2) - (2)].str));
+ (strcmp(yyvsp[0].str, "yes")==0);
+ free(yyvsp[0].str);
}
- break;
-
- case 190:
+break;
+case 189:
#line 954 "util/configparser.y"
- {
- OUTYY(("P(control_port:%s)\n", (yyvsp[(2) - (2)].str)));
- if(atoi((yyvsp[(2) - (2)].str)) == 0)
+{
+ OUTYY(("P(control_port:%s)\n", yyvsp[0].str));
+ if(atoi(yyvsp[0].str) == 0)
yyerror("control port number expected");
- else cfg_parser->cfg->control_port = atoi((yyvsp[(2) - (2)].str));
- free((yyvsp[(2) - (2)].str));
+ else cfg_parser->cfg->control_port = atoi(yyvsp[0].str);
+ free(yyvsp[0].str);
}
- break;
-
- case 191:
+break;
+case 190:
#line 963 "util/configparser.y"
- {
- OUTYY(("P(control_interface:%s)\n", (yyvsp[(2) - (2)].str)));
- if(!cfg_strlist_insert(&cfg_parser->cfg->control_ifs, (yyvsp[(2) - (2)].str)))
+{
+ OUTYY(("P(control_interface:%s)\n", yyvsp[0].str));
+ if(!cfg_strlist_insert(&cfg_parser->cfg->control_ifs, yyvsp[0].str))
yyerror("out of memory");
}
- break;
-
- case 192:
+break;
+case 191:
#line 970 "util/configparser.y"
- {
- OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[(2) - (2)].str)));
+{
+ OUTYY(("P(rc_server_key_file:%s)\n", yyvsp[0].str));
free(cfg_parser->cfg->server_key_file);
- cfg_parser->cfg->server_key_file = (yyvsp[(2) - (2)].str);
+ cfg_parser->cfg->server_key_file = yyvsp[0].str;
}
- break;
-
- case 193:
+break;
+case 192:
#line 977 "util/configparser.y"
- {
- OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[(2) - (2)].str)));
+{
+ OUTYY(("P(rc_server_cert_file:%s)\n", yyvsp[0].str));
free(cfg_parser->cfg->server_cert_file);
- cfg_parser->cfg->server_cert_file = (yyvsp[(2) - (2)].str);
+ cfg_parser->cfg->server_cert_file = yyvsp[0].str;
}
- break;
-
- case 194:
+break;
+case 193:
#line 984 "util/configparser.y"
- {
- OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[(2) - (2)].str)));
+{
+ OUTYY(("P(rc_control_key_file:%s)\n", yyvsp[0].str));
free(cfg_parser->cfg->control_key_file);
- cfg_parser->cfg->control_key_file = (yyvsp[(2) - (2)].str);
+ cfg_parser->cfg->control_key_file = yyvsp[0].str;
}
- break;
-
- case 195:
+break;
+case 194:
#line 991 "util/configparser.y"
- {
- OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[(2) - (2)].str)));
+{
+ OUTYY(("P(rc_control_cert_file:%s)\n", yyvsp[0].str));
free(cfg_parser->cfg->control_cert_file);
- cfg_parser->cfg->control_cert_file = (yyvsp[(2) - (2)].str);
+ cfg_parser->cfg->control_cert_file = yyvsp[0].str;
}
- break;
-
-
-/* Line 1267 of yacc.c. */
-#line 2898 "util/configparser.c"
- default: break;
+break;
+#line 1782 "util/configparser.c"
}
- YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
-
- YYPOPSTACK (yylen);
- yylen = 0;
- YY_STACK_PRINT (yyss, yyssp);
-
- *++yyvsp = yyval;
-
-
- /* Now `shift' the result of the reduction. Determine what state
- that goes to, based on the state we popped back to and the rule
- number reduced by. */
-
- yyn = yyr1[yyn];
-
- yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
- if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
- yystate = yytable[yystate];
- else
- yystate = yydefgoto[yyn - YYNTOKENS];
-
- goto yynewstate;
-
-
-/*------------------------------------.
-| yyerrlab -- here on detecting error |
-`------------------------------------*/
-yyerrlab:
- /* If not already recovering from an error, report this error. */
- if (!yyerrstatus)
+ yyssp -= yym;
+ yystate = *yyssp;
+ yyvsp -= yym;
+ yym = yylhs[yyn];
+ if (yystate == 0 && yym == 0)
{
- ++yynerrs;
-#if ! YYERROR_VERBOSE
- yyerror (YY_("syntax error"));
-#else
- {
- YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
- if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
- {
- YYSIZE_T yyalloc = 2 * yysize;
- if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
- yyalloc = YYSTACK_ALLOC_MAXIMUM;
- if (yymsg != yymsgbuf)
- YYSTACK_FREE (yymsg);
- yymsg = (char *) YYSTACK_ALLOC (yyalloc);
- if (yymsg)
- yymsg_alloc = yyalloc;
- else
- {
- yymsg = yymsgbuf;
- yymsg_alloc = sizeof yymsgbuf;
- }
- }
-
- if (0 < yysize && yysize <= yymsg_alloc)
- {
- (void) yysyntax_error (yymsg, yystate, yychar);
- yyerror (yymsg);
- }
- else
- {
- yyerror (YY_("syntax error"));
- if (yysize != 0)
- goto yyexhaustedlab;
- }
- }
+#if YYDEBUG
+ if (yydebug)
+ printf("%sdebug: after reduction, shifting from state 0 to\
+ state %d\n", YYPREFIX, YYFINAL);
#endif
+ yystate = YYFINAL;
+ *++yyssp = YYFINAL;
+ *++yyvsp = yyval;
+ if (yychar < 0)
+ {
+ if ((yychar = yylex()) < 0) yychar = 0;
+#if YYDEBUG
+ if (yydebug)
+ {
+ yys = 0;
+ if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
+ if (!yys) yys = "illegal-symbol";
+ printf("%sdebug: state %d, reading %d (%s)\n",
+ YYPREFIX, YYFINAL, yychar, yys);
+ }
+#endif
+ }
+ if (yychar == 0) goto yyaccept;
+ goto yyloop;
}
-
-
-
- if (yyerrstatus == 3)
- {
- /* If just tried and failed to reuse look-ahead token after an
- error, discard it. */
-
- if (yychar <= YYEOF)
- {
- /* Return failure if at end of input. */
- if (yychar == YYEOF)
- YYABORT;
- }
- else
- {
- yydestruct ("Error: discarding",
- yytoken, &yylval);
- yychar = YYEMPTY;
- }
- }
-
- /* Else will try to reuse look-ahead token after shifting the error
- token. */
- goto yyerrlab1;
-
-
-/*---------------------------------------------------.
-| yyerrorlab -- error raised explicitly by YYERROR. |
-`---------------------------------------------------*/
-yyerrorlab:
-
- /* Pacify compilers like GCC when the user code never invokes
- YYERROR and the label yyerrorlab therefore never appears in user
- code. */
- if (/*CONSTCOND*/ 0)
- goto yyerrorlab;
-
- /* Do not reclaim the symbols of the rule which action triggered
- this YYERROR. */
- YYPOPSTACK (yylen);
- yylen = 0;
- YY_STACK_PRINT (yyss, yyssp);
- yystate = *yyssp;
- goto yyerrlab1;
-
-
-/*-------------------------------------------------------------.
-| yyerrlab1 -- common code for both syntax error and YYERROR. |
-`-------------------------------------------------------------*/
-yyerrlab1:
- yyerrstatus = 3; /* Each real token shifted decrements this. */
-
- for (;;)
- {
- yyn = yypact[yystate];
- if (yyn != YYPACT_NINF)
- {
- yyn += YYTERROR;
- if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
- {
- yyn = yytable[yyn];
- if (0 < yyn)
- break;
- }
- }
-
- /* Pop the current state because it cannot handle the error token. */
- if (yyssp == yyss)
- YYABORT;
-
-
- yydestruct ("Error: popping",
- yystos[yystate], yyvsp);
- YYPOPSTACK (1);
- yystate = *yyssp;
- YY_STACK_PRINT (yyss, yyssp);
- }
-
- if (yyn == YYFINAL)
- YYACCEPT;
-
- *++yyvsp = yylval;
-
-
- /* Shift the error token. */
- YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
-
- yystate = yyn;
- goto yynewstate;
-
-
-/*-------------------------------------.
-| yyacceptlab -- YYACCEPT comes here. |
-`-------------------------------------*/
-yyacceptlab:
- yyresult = 0;
- goto yyreturn;
-
-/*-----------------------------------.
-| yyabortlab -- YYABORT comes here. |
-`-----------------------------------*/
-yyabortlab:
- yyresult = 1;
- goto yyreturn;
-
-#ifndef yyoverflow
-/*-------------------------------------------------.
-| yyexhaustedlab -- memory exhaustion comes here. |
-`-------------------------------------------------*/
-yyexhaustedlab:
- yyerror (YY_("memory exhausted"));
- yyresult = 2;
- /* Fall through. */
+ if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
+ yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
+ yystate = yytable[yyn];
+ else
+ yystate = yydgoto[yym];
+#if YYDEBUG
+ if (yydebug)
+ printf("%sdebug: after reduction, shifting from state %d \
+to state %d\n", YYPREFIX, *yyssp, yystate);
#endif
-
-yyreturn:
- if (yychar != YYEOF && yychar != YYEMPTY)
- yydestruct ("Cleanup: discarding lookahead",
- yytoken, &yylval);
- /* Do not reclaim the symbols of the rule which action triggered
- this YYABORT or YYACCEPT. */
- YYPOPSTACK (yylen);
- YY_STACK_PRINT (yyss, yyssp);
- while (yyssp != yyss)
+ if (yyssp >= yysslim && yygrowstack())
{
- yydestruct ("Cleanup: popping",
- yystos[*yyssp], yyvsp);
- YYPOPSTACK (1);
+ goto yyoverflow;
}
-#ifndef yyoverflow
- if (yyss != yyssa)
- YYSTACK_FREE (yyss);
-#endif
-#if YYERROR_VERBOSE
- if (yymsg != yymsgbuf)
- YYSTACK_FREE (yymsg);
-#endif
- /* Make sure YYID is used. */
- return YYID (yyresult);
-}
+ *++yyssp = yystate;
+ *++yyvsp = yyval;
+ goto yyloop;
+yyoverflow:
+ yyerror("yacc stack overflow");
-#line 997 "util/configparser.y"
-
-
-/* parse helper routines could be here */
+yyabort:
+ return (1);
+yyaccept:
+ return (0);
+}