1 /* A Bison parser, made by GNU Bison 2.5. */
3 /* Bison implementation for Yacc-like parsers in C
5 Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
7 This program is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
20 /* As a special exception, you may create a larger work that contains
21 part or all of the Bison parser skeleton and distribute that work
22 under terms of your choice, so long as that work isn't itself a
23 parser generator using the skeleton or a modified version thereof
24 as a parser skeleton. Alternatively, if you modify or redistribute
25 the parser skeleton itself, you may (at your option) remove this
26 special exception, which will cause the skeleton and the resulting
27 Bison output files to be licensed under the GNU General Public
28 License without this special exception.
30 This special exception was added by the Free Software Foundation in
31 version 2.2 of Bison. */
33 /* C LALR(1) parser skeleton written by Richard Stallman, by
34 simplifying the original so-called "semantic" parser. */
36 /* All symbols defined below should begin with yy or YY, to avoid
37 infringing on user name space. This should be done even for local
38 variables, as they might otherwise be expanded by user macros.
39 There are some unavoidable exceptions within include files to
40 define necessary library symbols; they are noted "INFRINGES ON
41 USER NAME SPACE" below. */
43 /* Identify Bison output. */
47 #define YYBISON_VERSION "2.5"
50 #define YYSKELETON_NAME "yacc.c"
61 /* Using locations. */
62 #define YYLSP_NEEDED 0
66 /* Copy the first part of user declarations. */
68 /* Line 268 of yacc.c */
69 #line 38 "util/configparser.y"
79 #include "util/configyyrename.h"
80 #include "util/config_file.h"
81 #include "util/net_help.h"
84 void ub_c_error(const char *message);
86 /* these need to be global, otherwise they cannot be used inside yacc */
87 extern struct config_parser_state* cfg_parser;
90 #define OUTYY(s) printf s /* used ONLY when debugging */
97 /* Line 268 of yacc.c */
98 #line 99 "util/configparser.c"
100 /* Enabling traces. */
105 /* Enabling verbose error messages. */
106 #ifdef YYERROR_VERBOSE
107 # undef YYERROR_VERBOSE
108 # define YYERROR_VERBOSE 1
110 # define YYERROR_VERBOSE 0
113 /* Enabling the token table. */
114 #ifndef YYTOKEN_TABLE
115 # define YYTOKEN_TABLE 0
122 /* Put the tokens into the symbol table, so that GDB and other debuggers
135 VAR_NUM_THREADS = 268,
137 VAR_OUTGOING_RANGE = 270,
148 VAR_MSG_CACHE_SIZE = 281,
149 VAR_MSG_CACHE_SLABS = 282,
150 VAR_NUM_QUERIES_PER_THREAD = 283,
151 VAR_RRSET_CACHE_SIZE = 284,
152 VAR_RRSET_CACHE_SLABS = 285,
153 VAR_OUTGOING_NUM_TCP = 286,
154 VAR_INFRA_HOST_TTL = 287,
155 VAR_INFRA_LAME_TTL = 288,
156 VAR_INFRA_CACHE_SLABS = 289,
157 VAR_INFRA_CACHE_NUMHOSTS = 290,
158 VAR_INFRA_CACHE_LAME_SIZE = 291,
163 VAR_TARGET_FETCH_POLICY = 296,
164 VAR_HARDEN_SHORT_BUFSIZE = 297,
165 VAR_HARDEN_LARGE_QUERIES = 298,
166 VAR_FORWARD_ZONE = 299,
167 VAR_FORWARD_HOST = 300,
168 VAR_FORWARD_ADDR = 301,
169 VAR_DO_NOT_QUERY_ADDRESS = 302,
170 VAR_HIDE_IDENTITY = 303,
171 VAR_HIDE_VERSION = 304,
174 VAR_HARDEN_GLUE = 307,
175 VAR_MODULE_CONF = 308,
176 VAR_TRUST_ANCHOR_FILE = 309,
177 VAR_TRUST_ANCHOR = 310,
178 VAR_VAL_OVERRIDE_DATE = 311,
180 VAR_VAL_CLEAN_ADDITIONAL = 313,
181 VAR_VAL_PERMISSIVE_MODE = 314,
182 VAR_INCOMING_NUM_TCP = 315,
183 VAR_MSG_BUFFER_SIZE = 316,
184 VAR_KEY_CACHE_SIZE = 317,
185 VAR_KEY_CACHE_SLABS = 318,
186 VAR_TRUSTED_KEYS_FILE = 319,
187 VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 320,
188 VAR_USE_SYSLOG = 321,
189 VAR_OUTGOING_INTERFACE = 322,
190 VAR_ROOT_HINTS = 323,
191 VAR_DO_NOT_QUERY_LOCALHOST = 324,
192 VAR_CACHE_MAX_TTL = 325,
193 VAR_HARDEN_DNSSEC_STRIPPED = 326,
194 VAR_ACCESS_CONTROL = 327,
195 VAR_LOCAL_ZONE = 328,
196 VAR_LOCAL_DATA = 329,
197 VAR_INTERFACE_AUTOMATIC = 330,
198 VAR_STATISTICS_INTERVAL = 331,
199 VAR_DO_DAEMONIZE = 332,
200 VAR_USE_CAPS_FOR_ID = 333,
201 VAR_STATISTICS_CUMULATIVE = 334,
202 VAR_OUTGOING_PORT_PERMIT = 335,
203 VAR_OUTGOING_PORT_AVOID = 336,
204 VAR_DLV_ANCHOR_FILE = 337,
205 VAR_DLV_ANCHOR = 338,
206 VAR_NEG_CACHE_SIZE = 339,
207 VAR_HARDEN_REFERRAL_PATH = 340,
208 VAR_PRIVATE_ADDRESS = 341,
209 VAR_PRIVATE_DOMAIN = 342,
210 VAR_REMOTE_CONTROL = 343,
211 VAR_CONTROL_ENABLE = 344,
212 VAR_CONTROL_INTERFACE = 345,
213 VAR_CONTROL_PORT = 346,
214 VAR_SERVER_KEY_FILE = 347,
215 VAR_SERVER_CERT_FILE = 348,
216 VAR_CONTROL_KEY_FILE = 349,
217 VAR_CONTROL_CERT_FILE = 350,
218 VAR_EXTENDED_STATISTICS = 351,
219 VAR_LOCAL_DATA_PTR = 352,
220 VAR_JOSTLE_TIMEOUT = 353,
221 VAR_STUB_PRIME = 354,
222 VAR_UNWANTED_REPLY_THRESHOLD = 355,
223 VAR_LOG_TIME_ASCII = 356,
224 VAR_DOMAIN_INSECURE = 357,
226 VAR_PYTHON_SCRIPT = 359,
227 VAR_VAL_SIG_SKEW_MIN = 360,
228 VAR_VAL_SIG_SKEW_MAX = 361,
229 VAR_CACHE_MIN_TTL = 362,
230 VAR_VAL_LOG_LEVEL = 363,
231 VAR_AUTO_TRUST_ANCHOR_FILE = 364,
232 VAR_KEEP_MISSING = 365,
233 VAR_ADD_HOLDDOWN = 366,
234 VAR_DEL_HOLDDOWN = 367,
236 VAR_EDNS_BUFFER_SIZE = 369,
238 VAR_PREFETCH_KEY = 371,
240 VAR_HARDEN_BELOW_NXDOMAIN = 373,
241 VAR_IGNORE_CD_FLAG = 374,
242 VAR_LOG_QUERIES = 375,
243 VAR_TCP_UPSTREAM = 376,
244 VAR_SSL_UPSTREAM = 377,
245 VAR_SSL_SERVICE_KEY = 378,
246 VAR_SSL_SERVICE_PEM = 379,
248 VAR_FORWARD_FIRST = 381,
249 VAR_STUB_FIRST = 382,
250 VAR_MINIMAL_RESPONSES = 383,
251 VAR_RRSET_ROUNDROBIN = 384
262 #define STRING_ARG 265
263 #define VAR_SERVER 266
264 #define VAR_VERBOSITY 267
265 #define VAR_NUM_THREADS 268
267 #define VAR_OUTGOING_RANGE 270
268 #define VAR_INTERFACE 271
269 #define VAR_DO_IP4 272
270 #define VAR_DO_IP6 273
271 #define VAR_DO_UDP 274
272 #define VAR_DO_TCP 275
273 #define VAR_CHROOT 276
274 #define VAR_USERNAME 277
275 #define VAR_DIRECTORY 278
276 #define VAR_LOGFILE 279
277 #define VAR_PIDFILE 280
278 #define VAR_MSG_CACHE_SIZE 281
279 #define VAR_MSG_CACHE_SLABS 282
280 #define VAR_NUM_QUERIES_PER_THREAD 283
281 #define VAR_RRSET_CACHE_SIZE 284
282 #define VAR_RRSET_CACHE_SLABS 285
283 #define VAR_OUTGOING_NUM_TCP 286
284 #define VAR_INFRA_HOST_TTL 287
285 #define VAR_INFRA_LAME_TTL 288
286 #define VAR_INFRA_CACHE_SLABS 289
287 #define VAR_INFRA_CACHE_NUMHOSTS 290
288 #define VAR_INFRA_CACHE_LAME_SIZE 291
290 #define VAR_STUB_ZONE 293
291 #define VAR_STUB_HOST 294
292 #define VAR_STUB_ADDR 295
293 #define VAR_TARGET_FETCH_POLICY 296
294 #define VAR_HARDEN_SHORT_BUFSIZE 297
295 #define VAR_HARDEN_LARGE_QUERIES 298
296 #define VAR_FORWARD_ZONE 299
297 #define VAR_FORWARD_HOST 300
298 #define VAR_FORWARD_ADDR 301
299 #define VAR_DO_NOT_QUERY_ADDRESS 302
300 #define VAR_HIDE_IDENTITY 303
301 #define VAR_HIDE_VERSION 304
302 #define VAR_IDENTITY 305
303 #define VAR_VERSION 306
304 #define VAR_HARDEN_GLUE 307
305 #define VAR_MODULE_CONF 308
306 #define VAR_TRUST_ANCHOR_FILE 309
307 #define VAR_TRUST_ANCHOR 310
308 #define VAR_VAL_OVERRIDE_DATE 311
309 #define VAR_BOGUS_TTL 312
310 #define VAR_VAL_CLEAN_ADDITIONAL 313
311 #define VAR_VAL_PERMISSIVE_MODE 314
312 #define VAR_INCOMING_NUM_TCP 315
313 #define VAR_MSG_BUFFER_SIZE 316
314 #define VAR_KEY_CACHE_SIZE 317
315 #define VAR_KEY_CACHE_SLABS 318
316 #define VAR_TRUSTED_KEYS_FILE 319
317 #define VAR_VAL_NSEC3_KEYSIZE_ITERATIONS 320
318 #define VAR_USE_SYSLOG 321
319 #define VAR_OUTGOING_INTERFACE 322
320 #define VAR_ROOT_HINTS 323
321 #define VAR_DO_NOT_QUERY_LOCALHOST 324
322 #define VAR_CACHE_MAX_TTL 325
323 #define VAR_HARDEN_DNSSEC_STRIPPED 326
324 #define VAR_ACCESS_CONTROL 327
325 #define VAR_LOCAL_ZONE 328
326 #define VAR_LOCAL_DATA 329
327 #define VAR_INTERFACE_AUTOMATIC 330
328 #define VAR_STATISTICS_INTERVAL 331
329 #define VAR_DO_DAEMONIZE 332
330 #define VAR_USE_CAPS_FOR_ID 333
331 #define VAR_STATISTICS_CUMULATIVE 334
332 #define VAR_OUTGOING_PORT_PERMIT 335
333 #define VAR_OUTGOING_PORT_AVOID 336
334 #define VAR_DLV_ANCHOR_FILE 337
335 #define VAR_DLV_ANCHOR 338
336 #define VAR_NEG_CACHE_SIZE 339
337 #define VAR_HARDEN_REFERRAL_PATH 340
338 #define VAR_PRIVATE_ADDRESS 341
339 #define VAR_PRIVATE_DOMAIN 342
340 #define VAR_REMOTE_CONTROL 343
341 #define VAR_CONTROL_ENABLE 344
342 #define VAR_CONTROL_INTERFACE 345
343 #define VAR_CONTROL_PORT 346
344 #define VAR_SERVER_KEY_FILE 347
345 #define VAR_SERVER_CERT_FILE 348
346 #define VAR_CONTROL_KEY_FILE 349
347 #define VAR_CONTROL_CERT_FILE 350
348 #define VAR_EXTENDED_STATISTICS 351
349 #define VAR_LOCAL_DATA_PTR 352
350 #define VAR_JOSTLE_TIMEOUT 353
351 #define VAR_STUB_PRIME 354
352 #define VAR_UNWANTED_REPLY_THRESHOLD 355
353 #define VAR_LOG_TIME_ASCII 356
354 #define VAR_DOMAIN_INSECURE 357
355 #define VAR_PYTHON 358
356 #define VAR_PYTHON_SCRIPT 359
357 #define VAR_VAL_SIG_SKEW_MIN 360
358 #define VAR_VAL_SIG_SKEW_MAX 361
359 #define VAR_CACHE_MIN_TTL 362
360 #define VAR_VAL_LOG_LEVEL 363
361 #define VAR_AUTO_TRUST_ANCHOR_FILE 364
362 #define VAR_KEEP_MISSING 365
363 #define VAR_ADD_HOLDDOWN 366
364 #define VAR_DEL_HOLDDOWN 367
365 #define VAR_SO_RCVBUF 368
366 #define VAR_EDNS_BUFFER_SIZE 369
367 #define VAR_PREFETCH 370
368 #define VAR_PREFETCH_KEY 371
369 #define VAR_SO_SNDBUF 372
370 #define VAR_HARDEN_BELOW_NXDOMAIN 373
371 #define VAR_IGNORE_CD_FLAG 374
372 #define VAR_LOG_QUERIES 375
373 #define VAR_TCP_UPSTREAM 376
374 #define VAR_SSL_UPSTREAM 377
375 #define VAR_SSL_SERVICE_KEY 378
376 #define VAR_SSL_SERVICE_PEM 379
377 #define VAR_SSL_PORT 380
378 #define VAR_FORWARD_FIRST 381
379 #define VAR_STUB_FIRST 382
380 #define VAR_MINIMAL_RESPONSES 383
381 #define VAR_RRSET_ROUNDROBIN 384
386 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
387 typedef union YYSTYPE
390 /* Line 293 of yacc.c */
391 #line 64 "util/configparser.y"
397 /* Line 293 of yacc.c */
398 #line 399 "util/configparser.c"
400 # define YYSTYPE_IS_TRIVIAL 1
401 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
402 # define YYSTYPE_IS_DECLARED 1
406 /* Copy the second part of user declarations. */
409 /* Line 343 of yacc.c */
410 #line 411 "util/configparser.c"
417 typedef YYTYPE_UINT8 yytype_uint8;
419 typedef unsigned char yytype_uint8;
423 typedef YYTYPE_INT8 yytype_int8;
424 #elif (defined __STDC__ || defined __C99__FUNC__ \
425 || defined __cplusplus || defined _MSC_VER)
426 typedef signed char yytype_int8;
428 typedef short int yytype_int8;
432 typedef YYTYPE_UINT16 yytype_uint16;
434 typedef unsigned short int yytype_uint16;
438 typedef YYTYPE_INT16 yytype_int16;
440 typedef short int yytype_int16;
444 # ifdef __SIZE_TYPE__
445 # define YYSIZE_T __SIZE_TYPE__
446 # elif defined size_t
447 # define YYSIZE_T size_t
448 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
449 || defined __cplusplus || defined _MSC_VER)
450 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
451 # define YYSIZE_T size_t
453 # define YYSIZE_T unsigned int
457 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
460 # if defined YYENABLE_NLS && YYENABLE_NLS
462 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
463 # define YY_(msgid) dgettext ("bison-runtime", msgid)
467 # define YY_(msgid) msgid
471 /* Suppress unused-variable warnings by "using" E. */
472 #if ! defined lint || defined __GNUC__
473 # define YYUSE(e) ((void) (e))
475 # define YYUSE(e) /* empty */
478 /* Identity function, used to suppress warnings about constant conditions. */
482 #if (defined __STDC__ || defined __C99__FUNC__ \
483 || defined __cplusplus || defined _MSC_VER)
496 #if ! defined yyoverflow || YYERROR_VERBOSE
498 /* The parser invokes alloca or malloc; define the necessary symbols. */
500 # ifdef YYSTACK_USE_ALLOCA
501 # if YYSTACK_USE_ALLOCA
503 # define YYSTACK_ALLOC __builtin_alloca
504 # elif defined __BUILTIN_VA_ARG_INCR
505 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
507 # define YYSTACK_ALLOC __alloca
508 # elif defined _MSC_VER
509 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
510 # define alloca _alloca
512 # define YYSTACK_ALLOC alloca
513 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
514 || defined __cplusplus || defined _MSC_VER)
515 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
516 # ifndef EXIT_SUCCESS
517 # define EXIT_SUCCESS 0
524 # ifdef YYSTACK_ALLOC
525 /* Pacify GCC's `empty if-body' warning. */
526 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
527 # ifndef YYSTACK_ALLOC_MAXIMUM
528 /* The OS might guarantee only one guard page at the bottom of the stack,
529 and a page size can be as small as 4096 bytes. So we cannot safely
530 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
531 to allow for a few compiler-allocated temporary stack slots. */
532 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
535 # define YYSTACK_ALLOC YYMALLOC
536 # define YYSTACK_FREE YYFREE
537 # ifndef YYSTACK_ALLOC_MAXIMUM
538 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
540 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
541 && ! ((defined YYMALLOC || defined malloc) \
542 && (defined YYFREE || defined free)))
543 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
544 # ifndef EXIT_SUCCESS
545 # define EXIT_SUCCESS 0
549 # define YYMALLOC malloc
550 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
551 || defined __cplusplus || defined _MSC_VER)
552 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
557 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
558 || defined __cplusplus || defined _MSC_VER)
559 void free (void *); /* INFRINGES ON USER NAME SPACE */
563 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
566 #if (! defined yyoverflow \
567 && (! defined __cplusplus \
568 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
570 /* A type that is properly aligned for any stack member. */
573 yytype_int16 yyss_alloc;
577 /* The size of the maximum gap between one aligned stack and the next. */
578 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
580 /* The size of an array large to enough to hold all stacks, each with
582 # define YYSTACK_BYTES(N) \
583 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
584 + YYSTACK_GAP_MAXIMUM)
586 # define YYCOPY_NEEDED 1
588 /* Relocate STACK from its old location to the new one. The
589 local variables YYSIZE and YYSTACKSIZE give the old and new number of
590 elements in the stack, and YYPTR gives the new location of the
591 stack. Advance YYPTR to a properly aligned location for the next
593 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
596 YYSIZE_T yynewbytes; \
597 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
598 Stack = &yyptr->Stack_alloc; \
599 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
600 yyptr += yynewbytes / sizeof (*yyptr); \
606 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
607 /* Copy COUNT objects from FROM to TO. The source and destination do
610 # if defined __GNUC__ && 1 < __GNUC__
611 # define YYCOPY(To, From, Count) \
612 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
614 # define YYCOPY(To, From, Count) \
618 for (yyi = 0; yyi < (Count); yyi++) \
619 (To)[yyi] = (From)[yyi]; \
624 #endif /* !YYCOPY_NEEDED */
626 /* YYFINAL -- State number of the termination state. */
628 /* YYLAST -- Last index in YYTABLE. */
631 /* YYNTOKENS -- Number of terminals. */
632 #define YYNTOKENS 130
633 /* YYNNTS -- Number of nonterminals. */
635 /* YYNRULES -- Number of rules. */
637 /* YYNRULES -- Number of states. */
638 #define YYNSTATES 371
640 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
642 #define YYMAXUTOK 384
644 #define YYTRANSLATE(YYX) \
645 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
647 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
648 static const yytype_uint8 yytranslate[] =
650 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
651 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
652 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
653 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
654 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
655 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
656 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
657 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
658 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
659 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
660 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
661 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
662 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
663 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
664 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
665 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
666 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
667 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
668 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
669 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
670 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
671 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
672 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
673 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
674 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
675 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
676 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
677 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
678 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
679 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
680 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
681 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
682 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
683 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
684 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
685 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
686 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
687 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
688 125, 126, 127, 128, 129
692 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
694 static const yytype_uint16 yyprhs[] =
696 0, 0, 3, 4, 7, 10, 13, 16, 19, 22,
697 24, 27, 28, 30, 32, 34, 36, 38, 40, 42,
698 44, 46, 48, 50, 52, 54, 56, 58, 60, 62,
699 64, 66, 68, 70, 72, 74, 76, 78, 80, 82,
700 84, 86, 88, 90, 92, 94, 96, 98, 100, 102,
701 104, 106, 108, 110, 112, 114, 116, 118, 120, 122,
702 124, 126, 128, 130, 132, 134, 136, 138, 140, 142,
703 144, 146, 148, 150, 152, 154, 156, 158, 160, 162,
704 164, 166, 168, 170, 172, 174, 176, 178, 180, 182,
705 184, 186, 188, 190, 192, 194, 196, 198, 200, 202,
706 204, 206, 208, 210, 212, 214, 216, 218, 220, 222,
707 224, 226, 229, 230, 232, 234, 236, 238, 240, 242,
708 245, 246, 248, 250, 252, 254, 257, 260, 263, 266,
709 269, 272, 275, 278, 281, 284, 287, 290, 293, 296,
710 299, 302, 305, 308, 311, 314, 317, 320, 323, 326,
711 329, 332, 335, 338, 341, 344, 347, 350, 353, 356,
712 359, 362, 365, 368, 371, 374, 377, 380, 383, 386,
713 389, 392, 395, 398, 401, 404, 407, 410, 413, 416,
714 419, 422, 425, 428, 431, 434, 437, 440, 443, 446,
715 449, 452, 455, 458, 461, 464, 467, 470, 473, 476,
716 480, 483, 486, 489, 492, 495, 498, 501, 504, 507,
717 510, 513, 516, 519, 522, 525, 528, 531, 534, 538,
718 541, 544, 547, 550, 553, 556, 559, 562, 565, 568,
719 571, 574, 577, 579, 582, 583, 585, 587, 589, 591,
720 593, 595, 597, 600, 603, 606, 609, 612, 615, 618,
724 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
725 static const yytype_int16 yyrhs[] =
727 131, 0, -1, -1, 131, 132, -1, 133, 134, -1,
728 136, 137, -1, 139, 140, -1, 259, 260, -1, 249,
729 250, -1, 11, -1, 134, 135, -1, -1, 142, -1,
730 143, -1, 147, -1, 150, -1, 156, -1, 157, -1,
731 158, -1, 159, -1, 148, -1, 169, -1, 170, -1,
732 171, -1, 172, -1, 173, -1, 190, -1, 191, -1,
733 192, -1, 194, -1, 195, -1, 153, -1, 196, -1,
734 197, -1, 200, -1, 198, -1, 199, -1, 201, -1,
735 202, -1, 203, -1, 214, -1, 182, -1, 183, -1,
736 184, -1, 185, -1, 204, -1, 217, -1, 178, -1,
737 180, -1, 218, -1, 223, -1, 224, -1, 225, -1,
738 154, -1, 189, -1, 232, -1, 233, -1, 179, -1,
739 228, -1, 166, -1, 149, -1, 174, -1, 215, -1,
740 221, -1, 205, -1, 216, -1, 235, -1, 236, -1,
741 155, -1, 144, -1, 165, -1, 208, -1, 145, -1,
742 151, -1, 152, -1, 175, -1, 176, -1, 234, -1,
743 207, -1, 209, -1, 210, -1, 146, -1, 237, -1,
744 193, -1, 213, -1, 167, -1, 181, -1, 219, -1,
745 220, -1, 222, -1, 227, -1, 177, -1, 229, -1,
746 230, -1, 231, -1, 186, -1, 188, -1, 211, -1,
747 212, -1, 187, -1, 206, -1, 226, -1, 168, -1,
748 160, -1, 161, -1, 162, -1, 163, -1, 164, -1,
749 238, -1, 239, -1, 38, -1, 137, 138, -1, -1,
750 240, -1, 241, -1, 242, -1, 244, -1, 243, -1,
751 44, -1, 140, 141, -1, -1, 245, -1, 246, -1,
752 247, -1, 248, -1, 13, 10, -1, 12, 10, -1,
753 76, 10, -1, 79, 10, -1, 96, 10, -1, 14,
754 10, -1, 16, 10, -1, 67, 10, -1, 15, 10,
755 -1, 80, 10, -1, 81, 10, -1, 31, 10, -1,
756 60, 10, -1, 75, 10, -1, 17, 10, -1, 18,
757 10, -1, 19, 10, -1, 20, 10, -1, 121, 10,
758 -1, 122, 10, -1, 123, 10, -1, 124, 10, -1,
759 125, 10, -1, 77, 10, -1, 66, 10, -1, 101,
760 10, -1, 120, 10, -1, 21, 10, -1, 22, 10,
761 -1, 23, 10, -1, 24, 10, -1, 25, 10, -1,
762 68, 10, -1, 82, 10, -1, 83, 10, -1, 109,
763 10, -1, 54, 10, -1, 64, 10, -1, 55, 10,
764 -1, 102, 10, -1, 48, 10, -1, 49, 10, -1,
765 50, 10, -1, 51, 10, -1, 113, 10, -1, 117,
766 10, -1, 114, 10, -1, 61, 10, -1, 26, 10,
767 -1, 27, 10, -1, 28, 10, -1, 98, 10, -1,
768 29, 10, -1, 30, 10, -1, 32, 10, -1, 33,
769 10, -1, 35, 10, -1, 36, 10, -1, 34, 10,
770 -1, 41, 10, -1, 42, 10, -1, 43, 10, -1,
771 52, 10, -1, 71, 10, -1, 118, 10, -1, 85,
772 10, -1, 78, 10, -1, 86, 10, -1, 87, 10,
773 -1, 115, 10, -1, 116, 10, -1, 100, 10, -1,
774 47, 10, -1, 69, 10, -1, 72, 10, 10, -1,
775 53, 10, -1, 56, 10, -1, 105, 10, -1, 106,
776 10, -1, 70, 10, -1, 107, 10, -1, 57, 10,
777 -1, 58, 10, -1, 59, 10, -1, 119, 10, -1,
778 108, 10, -1, 65, 10, -1, 111, 10, -1, 112,
779 10, -1, 110, 10, -1, 62, 10, -1, 63, 10,
780 -1, 84, 10, -1, 73, 10, 10, -1, 74, 10,
781 -1, 97, 10, -1, 128, 10, -1, 129, 10, -1,
782 37, 10, -1, 39, 10, -1, 40, 10, -1, 127,
783 10, -1, 99, 10, -1, 37, 10, -1, 45, 10,
784 -1, 46, 10, -1, 126, 10, -1, 88, -1, 250,
785 251, -1, -1, 252, -1, 254, -1, 253, -1, 255,
786 -1, 256, -1, 257, -1, 258, -1, 89, 10, -1,
787 91, 10, -1, 90, 10, -1, 92, 10, -1, 93,
788 10, -1, 94, 10, -1, 95, 10, -1, 103, -1,
789 260, 261, -1, -1, 262, -1, 104, 10, -1
792 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
793 static const yytype_uint16 yyrline[] =
795 0, 110, 110, 110, 111, 111, 112, 112, 113, 117,
796 122, 123, 124, 124, 124, 125, 125, 126, 126, 126,
797 127, 127, 127, 128, 128, 128, 129, 129, 130, 130,
798 131, 131, 132, 132, 133, 133, 134, 134, 135, 135,
799 136, 136, 137, 137, 137, 138, 138, 138, 139, 139,
800 139, 140, 140, 141, 141, 142, 142, 143, 143, 144,
801 144, 144, 145, 145, 146, 146, 147, 147, 147, 148,
802 148, 149, 149, 150, 150, 151, 151, 151, 152, 152,
803 153, 153, 154, 154, 155, 155, 156, 156, 157, 157,
804 157, 158, 158, 159, 159, 159, 160, 160, 160, 161,
805 161, 161, 162, 162, 162, 163, 163, 163, 164, 164,
806 166, 178, 179, 180, 180, 180, 180, 180, 182, 194,
807 195, 196, 196, 196, 196, 198, 207, 216, 227, 236,
808 245, 254, 267, 282, 291, 300, 309, 318, 327, 336,
809 345, 354, 363, 372, 381, 390, 397, 404, 413, 422,
810 436, 445, 454, 461, 468, 475, 483, 490, 497, 504,
811 511, 519, 527, 535, 542, 549, 558, 567, 574, 581,
812 589, 597, 610, 621, 629, 642, 651, 660, 668, 681,
813 690, 698, 707, 715, 728, 735, 745, 755, 765, 775,
814 785, 795, 805, 812, 819, 828, 837, 846, 853, 863,
815 877, 884, 902, 915, 928, 937, 946, 955, 965, 975,
816 984, 993, 1000, 1009, 1018, 1027, 1035, 1048, 1056, 1078,
817 1085, 1100, 1110, 1120, 1130, 1137, 1144, 1153, 1163, 1173,
818 1180, 1187, 1196, 1201, 1202, 1203, 1203, 1203, 1204, 1204,
819 1204, 1205, 1207, 1217, 1226, 1233, 1240, 1247, 1254, 1261,
820 1266, 1267, 1268, 1270
824 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
825 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
826 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
827 static const char *const yytname[] =
829 "$end", "error", "$undefined", "SPACE", "LETTER", "NEWLINE", "COMMENT",
830 "COLON", "ANY", "ZONESTR", "STRING_ARG", "VAR_SERVER", "VAR_VERBOSITY",
831 "VAR_NUM_THREADS", "VAR_PORT", "VAR_OUTGOING_RANGE", "VAR_INTERFACE",
832 "VAR_DO_IP4", "VAR_DO_IP6", "VAR_DO_UDP", "VAR_DO_TCP", "VAR_CHROOT",
833 "VAR_USERNAME", "VAR_DIRECTORY", "VAR_LOGFILE", "VAR_PIDFILE",
834 "VAR_MSG_CACHE_SIZE", "VAR_MSG_CACHE_SLABS",
835 "VAR_NUM_QUERIES_PER_THREAD", "VAR_RRSET_CACHE_SIZE",
836 "VAR_RRSET_CACHE_SLABS", "VAR_OUTGOING_NUM_TCP", "VAR_INFRA_HOST_TTL",
837 "VAR_INFRA_LAME_TTL", "VAR_INFRA_CACHE_SLABS",
838 "VAR_INFRA_CACHE_NUMHOSTS", "VAR_INFRA_CACHE_LAME_SIZE", "VAR_NAME",
839 "VAR_STUB_ZONE", "VAR_STUB_HOST", "VAR_STUB_ADDR",
840 "VAR_TARGET_FETCH_POLICY", "VAR_HARDEN_SHORT_BUFSIZE",
841 "VAR_HARDEN_LARGE_QUERIES", "VAR_FORWARD_ZONE", "VAR_FORWARD_HOST",
842 "VAR_FORWARD_ADDR", "VAR_DO_NOT_QUERY_ADDRESS", "VAR_HIDE_IDENTITY",
843 "VAR_HIDE_VERSION", "VAR_IDENTITY", "VAR_VERSION", "VAR_HARDEN_GLUE",
844 "VAR_MODULE_CONF", "VAR_TRUST_ANCHOR_FILE", "VAR_TRUST_ANCHOR",
845 "VAR_VAL_OVERRIDE_DATE", "VAR_BOGUS_TTL", "VAR_VAL_CLEAN_ADDITIONAL",
846 "VAR_VAL_PERMISSIVE_MODE", "VAR_INCOMING_NUM_TCP", "VAR_MSG_BUFFER_SIZE",
847 "VAR_KEY_CACHE_SIZE", "VAR_KEY_CACHE_SLABS", "VAR_TRUSTED_KEYS_FILE",
848 "VAR_VAL_NSEC3_KEYSIZE_ITERATIONS", "VAR_USE_SYSLOG",
849 "VAR_OUTGOING_INTERFACE", "VAR_ROOT_HINTS", "VAR_DO_NOT_QUERY_LOCALHOST",
850 "VAR_CACHE_MAX_TTL", "VAR_HARDEN_DNSSEC_STRIPPED", "VAR_ACCESS_CONTROL",
851 "VAR_LOCAL_ZONE", "VAR_LOCAL_DATA", "VAR_INTERFACE_AUTOMATIC",
852 "VAR_STATISTICS_INTERVAL", "VAR_DO_DAEMONIZE", "VAR_USE_CAPS_FOR_ID",
853 "VAR_STATISTICS_CUMULATIVE", "VAR_OUTGOING_PORT_PERMIT",
854 "VAR_OUTGOING_PORT_AVOID", "VAR_DLV_ANCHOR_FILE", "VAR_DLV_ANCHOR",
855 "VAR_NEG_CACHE_SIZE", "VAR_HARDEN_REFERRAL_PATH", "VAR_PRIVATE_ADDRESS",
856 "VAR_PRIVATE_DOMAIN", "VAR_REMOTE_CONTROL", "VAR_CONTROL_ENABLE",
857 "VAR_CONTROL_INTERFACE", "VAR_CONTROL_PORT", "VAR_SERVER_KEY_FILE",
858 "VAR_SERVER_CERT_FILE", "VAR_CONTROL_KEY_FILE", "VAR_CONTROL_CERT_FILE",
859 "VAR_EXTENDED_STATISTICS", "VAR_LOCAL_DATA_PTR", "VAR_JOSTLE_TIMEOUT",
860 "VAR_STUB_PRIME", "VAR_UNWANTED_REPLY_THRESHOLD", "VAR_LOG_TIME_ASCII",
861 "VAR_DOMAIN_INSECURE", "VAR_PYTHON", "VAR_PYTHON_SCRIPT",
862 "VAR_VAL_SIG_SKEW_MIN", "VAR_VAL_SIG_SKEW_MAX", "VAR_CACHE_MIN_TTL",
863 "VAR_VAL_LOG_LEVEL", "VAR_AUTO_TRUST_ANCHOR_FILE", "VAR_KEEP_MISSING",
864 "VAR_ADD_HOLDDOWN", "VAR_DEL_HOLDDOWN", "VAR_SO_RCVBUF",
865 "VAR_EDNS_BUFFER_SIZE", "VAR_PREFETCH", "VAR_PREFETCH_KEY",
866 "VAR_SO_SNDBUF", "VAR_HARDEN_BELOW_NXDOMAIN", "VAR_IGNORE_CD_FLAG",
867 "VAR_LOG_QUERIES", "VAR_TCP_UPSTREAM", "VAR_SSL_UPSTREAM",
868 "VAR_SSL_SERVICE_KEY", "VAR_SSL_SERVICE_PEM", "VAR_SSL_PORT",
869 "VAR_FORWARD_FIRST", "VAR_STUB_FIRST", "VAR_MINIMAL_RESPONSES",
870 "VAR_RRSET_ROUNDROBIN", "$accept", "toplevelvars", "toplevelvar",
871 "serverstart", "contents_server", "content_server", "stubstart",
872 "contents_stub", "content_stub", "forwardstart", "contents_forward",
873 "content_forward", "server_num_threads", "server_verbosity",
874 "server_statistics_interval", "server_statistics_cumulative",
875 "server_extended_statistics", "server_port", "server_interface",
876 "server_outgoing_interface", "server_outgoing_range",
877 "server_outgoing_port_permit", "server_outgoing_port_avoid",
878 "server_outgoing_num_tcp", "server_incoming_num_tcp",
879 "server_interface_automatic", "server_do_ip4", "server_do_ip6",
880 "server_do_udp", "server_do_tcp", "server_tcp_upstream",
881 "server_ssl_upstream", "server_ssl_service_key",
882 "server_ssl_service_pem", "server_ssl_port", "server_do_daemonize",
883 "server_use_syslog", "server_log_time_ascii", "server_log_queries",
884 "server_chroot", "server_username", "server_directory", "server_logfile",
885 "server_pidfile", "server_root_hints", "server_dlv_anchor_file",
886 "server_dlv_anchor", "server_auto_trust_anchor_file",
887 "server_trust_anchor_file", "server_trusted_keys_file",
888 "server_trust_anchor", "server_domain_insecure", "server_hide_identity",
889 "server_hide_version", "server_identity", "server_version",
890 "server_so_rcvbuf", "server_so_sndbuf", "server_edns_buffer_size",
891 "server_msg_buffer_size", "server_msg_cache_size",
892 "server_msg_cache_slabs", "server_num_queries_per_thread",
893 "server_jostle_timeout", "server_rrset_cache_size",
894 "server_rrset_cache_slabs", "server_infra_host_ttl",
895 "server_infra_lame_ttl", "server_infra_cache_numhosts",
896 "server_infra_cache_lame_size", "server_infra_cache_slabs",
897 "server_target_fetch_policy", "server_harden_short_bufsize",
898 "server_harden_large_queries", "server_harden_glue",
899 "server_harden_dnssec_stripped", "server_harden_below_nxdomain",
900 "server_harden_referral_path", "server_use_caps_for_id",
901 "server_private_address", "server_private_domain", "server_prefetch",
902 "server_prefetch_key", "server_unwanted_reply_threshold",
903 "server_do_not_query_address", "server_do_not_query_localhost",
904 "server_access_control", "server_module_conf",
905 "server_val_override_date", "server_val_sig_skew_min",
906 "server_val_sig_skew_max", "server_cache_max_ttl",
907 "server_cache_min_ttl", "server_bogus_ttl",
908 "server_val_clean_additional", "server_val_permissive_mode",
909 "server_ignore_cd_flag", "server_val_log_level",
910 "server_val_nsec3_keysize_iterations", "server_add_holddown",
911 "server_del_holddown", "server_keep_missing", "server_key_cache_size",
912 "server_key_cache_slabs", "server_neg_cache_size", "server_local_zone",
913 "server_local_data", "server_local_data_ptr", "server_minimal_responses",
914 "server_rrset_roundrobin", "stub_name", "stub_host", "stub_addr",
915 "stub_first", "stub_prime", "forward_name", "forward_host",
916 "forward_addr", "forward_first", "rcstart", "contents_rc", "content_rc",
917 "rc_control_enable", "rc_control_port", "rc_control_interface",
918 "rc_server_key_file", "rc_server_cert_file", "rc_control_key_file",
919 "rc_control_cert_file", "pythonstart", "contents_py", "content_py",
925 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
927 static const yytype_uint16 yytoknum[] =
929 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
930 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
931 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
932 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
933 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
934 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
935 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
936 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
937 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
938 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
939 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
940 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
941 375, 376, 377, 378, 379, 380, 381, 382, 383, 384
945 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
946 static const yytype_uint16 yyr1[] =
948 0, 130, 131, 131, 132, 132, 132, 132, 132, 133,
949 134, 134, 135, 135, 135, 135, 135, 135, 135, 135,
950 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
951 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
952 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
953 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
954 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
955 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
956 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
957 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
958 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
959 136, 137, 137, 138, 138, 138, 138, 138, 139, 140,
960 140, 141, 141, 141, 141, 142, 143, 144, 145, 146,
961 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
962 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
963 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
964 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
965 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
966 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
967 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
968 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
969 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
970 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
971 247, 248, 249, 250, 250, 251, 251, 251, 251, 251,
972 251, 251, 252, 253, 254, 255, 256, 257, 258, 259,
976 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
977 static const yytype_uint8 yyr2[] =
979 0, 2, 0, 2, 2, 2, 2, 2, 2, 1,
980 2, 0, 1, 1, 1, 1, 1, 1, 1, 1,
981 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
982 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
983 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
984 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
985 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
986 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
987 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
988 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
989 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
990 1, 2, 0, 1, 1, 1, 1, 1, 1, 2,
991 0, 1, 1, 1, 1, 2, 2, 2, 2, 2,
992 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
993 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
994 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
995 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
996 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
997 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
998 2, 2, 2, 2, 2, 2, 2, 2, 2, 3,
999 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1000 2, 2, 2, 2, 2, 2, 2, 2, 3, 2,
1001 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1002 2, 2, 1, 2, 0, 1, 1, 1, 1, 1,
1003 1, 1, 2, 2, 2, 2, 2, 2, 2, 1,
1007 /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
1008 Performed when YYTABLE doesn't specify something else to do. Zero
1009 means the default is an error. */
1010 static const yytype_uint8 yydefact[] =
1012 2, 0, 1, 9, 110, 118, 232, 249, 3, 11,
1013 112, 120, 234, 251, 4, 5, 6, 8, 7, 0,
1014 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1015 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1016 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1017 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1018 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1019 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1020 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1021 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1022 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1023 0, 0, 0, 0, 0, 0, 0, 10, 12, 13,
1024 69, 72, 81, 14, 20, 60, 15, 73, 74, 31,
1025 53, 68, 16, 17, 18, 19, 103, 104, 105, 106,
1026 107, 70, 59, 85, 102, 21, 22, 23, 24, 25,
1027 61, 75, 76, 91, 47, 57, 48, 86, 41, 42,
1028 43, 44, 95, 99, 96, 54, 26, 27, 28, 83,
1029 29, 30, 32, 33, 35, 36, 34, 37, 38, 39,
1030 45, 64, 100, 78, 71, 79, 80, 97, 98, 84,
1031 40, 62, 65, 46, 49, 87, 88, 63, 89, 50,
1032 51, 52, 101, 90, 58, 92, 93, 94, 55, 56,
1033 77, 66, 67, 82, 108, 109, 0, 0, 0, 0,
1034 0, 111, 113, 114, 115, 117, 116, 0, 0, 0,
1035 0, 119, 121, 122, 123, 124, 0, 0, 0, 0,
1036 0, 0, 0, 233, 235, 237, 236, 238, 239, 240,
1037 241, 0, 250, 252, 126, 125, 130, 133, 131, 139,
1038 140, 141, 142, 152, 153, 154, 155, 156, 173, 174,
1039 175, 177, 178, 136, 179, 180, 183, 181, 182, 184,
1040 185, 186, 197, 165, 166, 167, 168, 187, 200, 161,
1041 163, 201, 206, 207, 208, 137, 172, 215, 216, 162,
1042 211, 149, 132, 157, 198, 204, 188, 0, 0, 219,
1043 138, 127, 148, 191, 128, 134, 135, 158, 159, 217,
1044 190, 192, 193, 129, 220, 176, 196, 150, 164, 202,
1045 203, 205, 210, 160, 214, 212, 213, 169, 171, 194,
1046 195, 170, 189, 209, 151, 143, 144, 145, 146, 147,
1047 221, 222, 223, 224, 225, 227, 226, 228, 229, 230,
1048 231, 242, 244, 243, 245, 246, 247, 248, 253, 199,
1052 /* YYDEFGOTO[NTERM-NUM]. */
1053 static const yytype_int16 yydefgoto[] =
1055 -1, 1, 8, 9, 14, 117, 10, 15, 221, 11,
1056 16, 231, 118, 119, 120, 121, 122, 123, 124, 125,
1057 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
1058 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
1059 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
1060 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
1061 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
1062 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
1063 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
1064 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
1065 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
1066 222, 223, 224, 225, 226, 232, 233, 234, 235, 12,
1067 17, 243, 244, 245, 246, 247, 248, 249, 250, 13,
1071 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1073 #define YYPACT_NINF -80
1074 static const yytype_int16 yypact[] =
1076 -80, 76, -80, -80, -80, -80, -80, -80, -80, -80,
1077 -80, -80, -80, -80, -12, 40, 46, 32, -79, 16,
1078 17, 18, 22, 23, 24, 68, 71, 72, 105, 108,
1079 109, 118, 119, 120, 121, 122, 123, 124, 125, 126,
1080 127, 128, 130, 131, 132, 133, 134, 135, 136, 137,
1081 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
1082 148, 149, 150, 151, 152, 153, 155, 156, 158, 159,
1083 160, 161, 163, 164, 165, 166, 167, 168, 170, 171,
1084 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
1085 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
1086 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
1087 202, 203, 204, 205, 206, 207, 208, -80, -80, -80,
1088 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1089 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1090 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1091 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1092 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1093 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1094 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1095 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1096 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1097 -80, -80, -80, -80, -80, -80, 209, 210, 211, 212,
1098 213, -80, -80, -80, -80, -80, -80, 214, 215, 216,
1099 217, -80, -80, -80, -80, -80, 218, 219, 220, 221,
1100 222, 223, 224, -80, -80, -80, -80, -80, -80, -80,
1101 -80, 225, -80, -80, -80, -80, -80, -80, -80, -80,
1102 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1103 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1104 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1105 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1106 -80, -80, -80, -80, -80, -80, -80, 226, 227, -80,
1107 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1108 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1109 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1110 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1111 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1112 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1116 /* YYPGOTO[NTERM-NUM]. */
1117 static const yytype_int8 yypgoto[] =
1119 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1120 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1121 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1122 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1123 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1124 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1125 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1126 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1127 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1128 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1129 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1130 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1131 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1135 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
1136 positive, shift that token. If negative, reduce the rule which
1137 number is the opposite. If YYTABLE_NINF, syntax error. */
1138 #define YYTABLE_NINF -1
1139 static const yytype_uint16 yytable[] =
1141 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1142 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1143 39, 40, 41, 42, 43, 251, 254, 255, 256, 44,
1144 45, 46, 257, 258, 259, 47, 48, 49, 50, 51,
1145 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1146 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1147 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1148 82, 83, 84, 85, 86, 87, 2, 216, 260, 217,
1149 218, 261, 262, 227, 88, 89, 90, 3, 91, 92,
1150 93, 228, 229, 94, 95, 96, 97, 98, 99, 100,
1151 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1152 111, 112, 113, 114, 4, 263, 115, 116, 264, 265,
1153 5, 236, 237, 238, 239, 240, 241, 242, 266, 267,
1154 268, 269, 270, 271, 272, 273, 274, 275, 276, 219,
1155 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
1156 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
1157 297, 298, 299, 300, 6, 301, 302, 220, 303, 304,
1158 305, 306, 230, 307, 308, 309, 310, 311, 312, 7,
1159 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
1160 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
1161 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
1162 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
1163 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
1164 363, 364, 365, 366, 367, 368, 369, 370
1167 #define yypact_value_is_default(yystate) \
1168 ((yystate) == (-80))
1170 #define yytable_value_is_error(yytable_value) \
1173 static const yytype_uint8 yycheck[] =
1175 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1176 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1177 32, 33, 34, 35, 36, 104, 10, 10, 10, 41,
1178 42, 43, 10, 10, 10, 47, 48, 49, 50, 51,
1179 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1180 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1181 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1182 82, 83, 84, 85, 86, 87, 0, 37, 10, 39,
1183 40, 10, 10, 37, 96, 97, 98, 11, 100, 101,
1184 102, 45, 46, 105, 106, 107, 108, 109, 110, 111,
1185 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
1186 122, 123, 124, 125, 38, 10, 128, 129, 10, 10,
1187 44, 89, 90, 91, 92, 93, 94, 95, 10, 10,
1188 10, 10, 10, 10, 10, 10, 10, 10, 10, 99,
1189 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1190 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1191 10, 10, 10, 10, 88, 10, 10, 127, 10, 10,
1192 10, 10, 126, 10, 10, 10, 10, 10, 10, 103,
1193 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1194 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1195 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1196 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1197 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1198 10, 10, 10, 10, 10, 10, 10, 10
1201 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1202 symbol of state STATE-NUM. */
1203 static const yytype_uint16 yystos[] =
1205 0, 131, 0, 11, 38, 44, 88, 103, 132, 133,
1206 136, 139, 249, 259, 134, 137, 140, 250, 260, 12,
1207 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1208 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1209 33, 34, 35, 36, 41, 42, 43, 47, 48, 49,
1210 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1211 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1212 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1213 80, 81, 82, 83, 84, 85, 86, 87, 96, 97,
1214 98, 100, 101, 102, 105, 106, 107, 108, 109, 110,
1215 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
1216 121, 122, 123, 124, 125, 128, 129, 135, 142, 143,
1217 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
1218 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
1219 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
1220 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
1221 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
1222 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
1223 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
1224 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
1225 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
1226 234, 235, 236, 237, 238, 239, 37, 39, 40, 99,
1227 127, 138, 240, 241, 242, 243, 244, 37, 45, 46,
1228 126, 141, 245, 246, 247, 248, 89, 90, 91, 92,
1229 93, 94, 95, 251, 252, 253, 254, 255, 256, 257,
1230 258, 104, 261, 262, 10, 10, 10, 10, 10, 10,
1231 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1232 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1233 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1234 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1235 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1236 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1237 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1238 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1239 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1240 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1241 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1245 #define yyerrok (yyerrstatus = 0)
1246 #define yyclearin (yychar = YYEMPTY)
1247 #define YYEMPTY (-2)
1250 #define YYACCEPT goto yyacceptlab
1251 #define YYABORT goto yyabortlab
1252 #define YYERROR goto yyerrorlab
1255 /* Like YYERROR except do call yyerror. This remains here temporarily
1256 to ease the transition to the new meaning of YYERROR, for GCC.
1257 Once GCC version 2 has supplanted version 1, this can go. However,
1258 YYFAIL appears to be in use. Nevertheless, it is formally deprecated
1259 in Bison 2.4.2's NEWS entry, where a plan to phase it out is
1262 #define YYFAIL goto yyerrlab
1264 /* This is here to suppress warnings from the GCC cpp's
1265 -Wunused-macros. Normally we don't worry about that warning, but
1266 some users do, and we want to make it easy for users to remove
1267 YYFAIL uses, which will produce warnings from Bison 2.5. */
1270 #define YYRECOVERING() (!!yyerrstatus)
1272 #define YYBACKUP(Token, Value) \
1274 if (yychar == YYEMPTY && yylen == 1) \
1283 yyerror (YY_("syntax error: cannot back up")); \
1290 #define YYERRCODE 256
1293 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
1294 If N is 0, then set CURRENT to the empty location which ends
1295 the previous symbol: RHS[0] (always defined). */
1297 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
1298 #ifndef YYLLOC_DEFAULT
1299 # define YYLLOC_DEFAULT(Current, Rhs, N) \
1303 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
1304 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
1305 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
1306 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
1310 (Current).first_line = (Current).last_line = \
1311 YYRHSLOC (Rhs, 0).last_line; \
1312 (Current).first_column = (Current).last_column = \
1313 YYRHSLOC (Rhs, 0).last_column; \
1319 /* This macro is provided for backward compatibility. */
1321 #ifndef YY_LOCATION_PRINT
1322 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1326 /* YYLEX -- calling `yylex' with the right arguments. */
1329 # define YYLEX yylex (YYLEX_PARAM)
1331 # define YYLEX yylex ()
1334 /* Enable debugging if requested. */
1338 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1339 # define YYFPRINTF fprintf
1342 # define YYDPRINTF(Args) \
1348 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
1352 YYFPRINTF (stderr, "%s ", Title); \
1353 yy_symbol_print (stderr, \
1355 YYFPRINTF (stderr, "\n"); \
1360 /*--------------------------------.
1361 | Print this symbol on YYOUTPUT. |
1362 `--------------------------------*/
1365 #if (defined __STDC__ || defined __C99__FUNC__ \
1366 || defined __cplusplus || defined _MSC_VER)
1368 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1371 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
1374 YYSTYPE const * const yyvaluep;
1380 if (yytype < YYNTOKENS)
1381 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1393 /*--------------------------------.
1394 | Print this symbol on YYOUTPUT. |
1395 `--------------------------------*/
1397 #if (defined __STDC__ || defined __C99__FUNC__ \
1398 || defined __cplusplus || defined _MSC_VER)
1400 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1403 yy_symbol_print (yyoutput, yytype, yyvaluep)
1406 YYSTYPE const * const yyvaluep;
1409 if (yytype < YYNTOKENS)
1410 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1412 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
1414 yy_symbol_value_print (yyoutput, yytype, yyvaluep);
1415 YYFPRINTF (yyoutput, ")");
1418 /*------------------------------------------------------------------.
1419 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
1421 `------------------------------------------------------------------*/
1423 #if (defined __STDC__ || defined __C99__FUNC__ \
1424 || defined __cplusplus || defined _MSC_VER)
1426 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
1429 yy_stack_print (yybottom, yytop)
1430 yytype_int16 *yybottom;
1431 yytype_int16 *yytop;
1434 YYFPRINTF (stderr, "Stack now");
1435 for (; yybottom <= yytop; yybottom++)
1437 int yybot = *yybottom;
1438 YYFPRINTF (stderr, " %d", yybot);
1440 YYFPRINTF (stderr, "\n");
1443 # define YY_STACK_PRINT(Bottom, Top) \
1446 yy_stack_print ((Bottom), (Top)); \
1450 /*------------------------------------------------.
1451 | Report that the YYRULE is going to be reduced. |
1452 `------------------------------------------------*/
1454 #if (defined __STDC__ || defined __C99__FUNC__ \
1455 || defined __cplusplus || defined _MSC_VER)
1457 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
1460 yy_reduce_print (yyvsp, yyrule)
1465 int yynrhs = yyr2[yyrule];
1467 unsigned long int yylno = yyrline[yyrule];
1468 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
1470 /* The symbols being reduced. */
1471 for (yyi = 0; yyi < yynrhs; yyi++)
1473 YYFPRINTF (stderr, " $%d = ", yyi + 1);
1474 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
1475 &(yyvsp[(yyi + 1) - (yynrhs)])
1477 YYFPRINTF (stderr, "\n");
1481 # define YY_REDUCE_PRINT(Rule) \
1484 yy_reduce_print (yyvsp, Rule); \
1487 /* Nonzero means print parse trace. It is left uninitialized so that
1488 multiple parsers can coexist. */
1490 #else /* !YYDEBUG */
1491 # define YYDPRINTF(Args)
1492 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1493 # define YY_STACK_PRINT(Bottom, Top)
1494 # define YY_REDUCE_PRINT(Rule)
1495 #endif /* !YYDEBUG */
1498 /* YYINITDEPTH -- initial size of the parser's stacks. */
1500 # define YYINITDEPTH 200
1503 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1504 if the built-in stack extension method is used).
1506 Do not make this value too large; the results are undefined if
1507 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1508 evaluated with infinite-precision integer arithmetic. */
1511 # define YYMAXDEPTH 10000
1518 # if defined __GLIBC__ && defined _STRING_H
1519 # define yystrlen strlen
1521 /* Return the length of YYSTR. */
1522 #if (defined __STDC__ || defined __C99__FUNC__ \
1523 || defined __cplusplus || defined _MSC_VER)
1525 yystrlen (const char *yystr)
1533 for (yylen = 0; yystr[yylen]; yylen++)
1541 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1542 # define yystpcpy stpcpy
1544 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1546 #if (defined __STDC__ || defined __C99__FUNC__ \
1547 || defined __cplusplus || defined _MSC_VER)
1549 yystpcpy (char *yydest, const char *yysrc)
1552 yystpcpy (yydest, yysrc)
1558 const char *yys = yysrc;
1560 while ((*yyd++ = *yys++) != '\0')
1569 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1570 quotes and backslashes, so that it's suitable for yyerror. The
1571 heuristic is that double-quoting is unnecessary unless the string
1572 contains an apostrophe, a comma, or backslash (other than
1573 backslash-backslash). YYSTR is taken from yytname. If YYRES is
1574 null, do not copy; instead, return the length of what the result
1577 yytnamerr (char *yyres, const char *yystr)
1582 char const *yyp = yystr;
1589 goto do_not_strip_quotes;
1593 goto do_not_strip_quotes;
1606 do_not_strip_quotes: ;
1610 return yystrlen (yystr);
1612 return yystpcpy (yyres, yystr) - yyres;
1616 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
1617 about the unexpected token YYTOKEN for the state stack whose top is
1620 Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
1621 not large enough to hold the message. In that case, also set
1622 *YYMSG_ALLOC to the required number of bytes. Return 2 if the
1623 required number of bytes is too large to store. */
1625 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
1626 yytype_int16 *yyssp, int yytoken)
1628 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
1629 YYSIZE_T yysize = yysize0;
1631 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1632 /* Internationalized format string. */
1633 const char *yyformat = 0;
1634 /* Arguments of yyformat. */
1635 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1636 /* Number of reported tokens (one for the "unexpected", one per
1640 /* There are many possibilities here to consider:
1641 - Assume YYFAIL is not used. It's too flawed to consider. See
1642 <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
1643 for details. YYERROR is fine as it does not invoke this
1645 - If this state is a consistent state with a default action, then
1646 the only way this function was invoked is if the default action
1647 is an error action. In that case, don't check for expected
1648 tokens because there are none.
1649 - The only way there can be no lookahead present (in yychar) is if
1650 this state is a consistent state with a default action. Thus,
1651 detecting the absence of a lookahead is sufficient to determine
1652 that there is no unexpected or expected token to report. In that
1653 case, just report a simple "syntax error".
1654 - Don't assume there isn't a lookahead just because this state is a
1655 consistent state with a default action. There might have been a
1656 previous inconsistent state, consistent state with a non-default
1657 action, or user semantic action that manipulated yychar.
1658 - Of course, the expected token list depends on states to have
1659 correct lookahead information, and it depends on the parser not
1660 to perform extra reductions after fetching a lookahead from the
1661 scanner and before detecting a syntax error. Thus, state merging
1662 (from LALR or IELR) and default reductions corrupt the expected
1663 token list. However, the list is correct for canonical LR with
1664 one exception: it will still contain any token that will not be
1665 accepted due to an error action in a later state.
1667 if (yytoken != YYEMPTY)
1669 int yyn = yypact[*yyssp];
1670 yyarg[yycount++] = yytname[yytoken];
1671 if (!yypact_value_is_default (yyn))
1673 /* Start YYX at -YYN if negative to avoid negative indexes in
1674 YYCHECK. In other words, skip the first -YYN actions for
1675 this state because they are default actions. */
1676 int yyxbegin = yyn < 0 ? -yyn : 0;
1677 /* Stay within bounds of both yycheck and yytname. */
1678 int yychecklim = YYLAST - yyn + 1;
1679 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1682 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1683 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
1684 && !yytable_value_is_error (yytable[yyx + yyn]))
1686 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1692 yyarg[yycount++] = yytname[yyx];
1693 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
1694 if (! (yysize <= yysize1
1695 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1704 # define YYCASE_(N, S) \
1708 YYCASE_(0, YY_("syntax error"));
1709 YYCASE_(1, YY_("syntax error, unexpected %s"));
1710 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
1711 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
1712 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
1713 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1717 yysize1 = yysize + yystrlen (yyformat);
1718 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1722 if (*yymsg_alloc < yysize)
1724 *yymsg_alloc = 2 * yysize;
1725 if (! (yysize <= *yymsg_alloc
1726 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
1727 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
1731 /* Avoid sprintf, as that infringes on the user's name space.
1732 Don't have undefined behavior even if the translation
1733 produced a string with the wrong number of "%s"s. */
1737 while ((*yyp = *yyformat) != '\0')
1738 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
1740 yyp += yytnamerr (yyp, yyarg[yyi++]);
1751 #endif /* YYERROR_VERBOSE */
1753 /*-----------------------------------------------.
1754 | Release the memory associated to this symbol. |
1755 `-----------------------------------------------*/
1758 #if (defined __STDC__ || defined __C99__FUNC__ \
1759 || defined __cplusplus || defined _MSC_VER)
1761 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
1764 yydestruct (yymsg, yytype, yyvaluep)
1774 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1785 /* Prevent warnings from -Wmissing-prototypes. */
1786 #ifdef YYPARSE_PARAM
1787 #if defined __STDC__ || defined __cplusplus
1788 int yyparse (void *YYPARSE_PARAM);
1792 #else /* ! YYPARSE_PARAM */
1793 #if defined __STDC__ || defined __cplusplus
1798 #endif /* ! YYPARSE_PARAM */
1801 /* The lookahead symbol. */
1804 /* The semantic value of the lookahead symbol. */
1807 /* Number of syntax errors so far. */
1815 #ifdef YYPARSE_PARAM
1816 #if (defined __STDC__ || defined __C99__FUNC__ \
1817 || defined __cplusplus || defined _MSC_VER)
1819 yyparse (void *YYPARSE_PARAM)
1822 yyparse (YYPARSE_PARAM)
1823 void *YYPARSE_PARAM;
1825 #else /* ! YYPARSE_PARAM */
1826 #if (defined __STDC__ || defined __C99__FUNC__ \
1827 || defined __cplusplus || defined _MSC_VER)
1838 /* Number of tokens to shift before error messages enabled. */
1841 /* The stacks and their tools:
1842 `yyss': related to states.
1843 `yyvs': related to semantic values.
1845 Refer to the stacks thru separate pointers, to allow yyoverflow
1846 to reallocate them elsewhere. */
1848 /* The state stack. */
1849 yytype_int16 yyssa[YYINITDEPTH];
1851 yytype_int16 *yyssp;
1853 /* The semantic value stack. */
1854 YYSTYPE yyvsa[YYINITDEPTH];
1858 YYSIZE_T yystacksize;
1862 /* Lookahead token as an internal (translated) token number. */
1864 /* The variables used to return semantic value and location from the
1869 /* Buffer for error messages, and its allocated size. */
1871 char *yymsg = yymsgbuf;
1872 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
1875 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
1877 /* The number of symbols on the RHS of the reduced rule.
1878 Keep to zero when no symbol should be popped. */
1884 yystacksize = YYINITDEPTH;
1886 YYDPRINTF ((stderr, "Starting parse\n"));
1891 yychar = YYEMPTY; /* Cause a token to be read. */
1893 /* Initialize stack pointers.
1894 Waste one element of value and location stack
1895 so that they stay on the same level as the state stack.
1896 The wasted elements are never initialized. */
1902 /*------------------------------------------------------------.
1903 | yynewstate -- Push a new state, which is found in yystate. |
1904 `------------------------------------------------------------*/
1906 /* In all cases, when you get here, the value and location stacks
1907 have just been pushed. So pushing a state here evens the stacks. */
1913 if (yyss + yystacksize - 1 <= yyssp)
1915 /* Get the current used size of the three stacks, in elements. */
1916 YYSIZE_T yysize = yyssp - yyss + 1;
1920 /* Give user a chance to reallocate the stack. Use copies of
1921 these so that the &'s don't force the real ones into
1923 YYSTYPE *yyvs1 = yyvs;
1924 yytype_int16 *yyss1 = yyss;
1926 /* Each stack pointer address is followed by the size of the
1927 data in use in that stack, in bytes. This used to be a
1928 conditional around just the two extra args, but that might
1929 be undefined if yyoverflow is a macro. */
1930 yyoverflow (YY_("memory exhausted"),
1931 &yyss1, yysize * sizeof (*yyssp),
1932 &yyvs1, yysize * sizeof (*yyvsp),
1938 #else /* no yyoverflow */
1939 # ifndef YYSTACK_RELOCATE
1940 goto yyexhaustedlab;
1942 /* Extend the stack our own way. */
1943 if (YYMAXDEPTH <= yystacksize)
1944 goto yyexhaustedlab;
1946 if (YYMAXDEPTH < yystacksize)
1947 yystacksize = YYMAXDEPTH;
1950 yytype_int16 *yyss1 = yyss;
1951 union yyalloc *yyptr =
1952 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1954 goto yyexhaustedlab;
1955 YYSTACK_RELOCATE (yyss_alloc, yyss);
1956 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1957 # undef YYSTACK_RELOCATE
1959 YYSTACK_FREE (yyss1);
1962 #endif /* no yyoverflow */
1964 yyssp = yyss + yysize - 1;
1965 yyvsp = yyvs + yysize - 1;
1967 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1968 (unsigned long int) yystacksize));
1970 if (yyss + yystacksize - 1 <= yyssp)
1974 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1976 if (yystate == YYFINAL)
1986 /* Do appropriate processing given the current state. Read a
1987 lookahead token if we need one and don't already have one. */
1989 /* First try to decide what to do without reference to lookahead token. */
1990 yyn = yypact[yystate];
1991 if (yypact_value_is_default (yyn))
1994 /* Not known => get a lookahead token if don't already have one. */
1996 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
1997 if (yychar == YYEMPTY)
1999 YYDPRINTF ((stderr, "Reading a token: "));
2003 if (yychar <= YYEOF)
2005 yychar = yytoken = YYEOF;
2006 YYDPRINTF ((stderr, "Now at end of input.\n"));
2010 yytoken = YYTRANSLATE (yychar);
2011 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
2014 /* If the proper action on seeing token YYTOKEN is to reduce or to
2015 detect an error, take that action. */
2017 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2022 if (yytable_value_is_error (yyn))
2028 /* Count tokens shifted since error; after three, turn off error
2033 /* Shift the lookahead token. */
2034 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
2036 /* Discard the shifted token. */
2045 /*-----------------------------------------------------------.
2046 | yydefault -- do the default action for the current state. |
2047 `-----------------------------------------------------------*/
2049 yyn = yydefact[yystate];
2055 /*-----------------------------.
2056 | yyreduce -- Do a reduction. |
2057 `-----------------------------*/
2059 /* yyn is the number of a rule to reduce with. */
2062 /* If YYLEN is nonzero, implement the default value of the action:
2065 Otherwise, the following line sets YYVAL to garbage.
2066 This behavior is undocumented and Bison
2067 users should not rely upon it. Assigning to YYVAL
2068 unconditionally makes the parser a bit smaller, and it avoids a
2069 GCC warning that YYVAL may be used uninitialized. */
2070 yyval = yyvsp[1-yylen];
2073 YY_REDUCE_PRINT (yyn);
2078 /* Line 1806 of yacc.c */
2079 #line 118 "util/configparser.y"
2081 OUTYY(("\nP(server:)\n"));
2087 /* Line 1806 of yacc.c */
2088 #line 167 "util/configparser.y"
2090 struct config_stub* s;
2091 OUTYY(("\nP(stub_zone:)\n"));
2092 s = (struct config_stub*)calloc(1, sizeof(struct config_stub));
2094 s->next = cfg_parser->cfg->stubs;
2095 cfg_parser->cfg->stubs = s;
2097 yyerror("out of memory");
2103 /* Line 1806 of yacc.c */
2104 #line 183 "util/configparser.y"
2106 struct config_stub* s;
2107 OUTYY(("\nP(forward_zone:)\n"));
2108 s = (struct config_stub*)calloc(1, sizeof(struct config_stub));
2110 s->next = cfg_parser->cfg->forwards;
2111 cfg_parser->cfg->forwards = s;
2113 yyerror("out of memory");
2119 /* Line 1806 of yacc.c */
2120 #line 199 "util/configparser.y"
2122 OUTYY(("P(server_num_threads:%s)\n", (yyvsp[(2) - (2)].str)));
2123 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
2124 yyerror("number expected");
2125 else cfg_parser->cfg->num_threads = atoi((yyvsp[(2) - (2)].str));
2126 free((yyvsp[(2) - (2)].str));
2132 /* Line 1806 of yacc.c */
2133 #line 208 "util/configparser.y"
2135 OUTYY(("P(server_verbosity:%s)\n", (yyvsp[(2) - (2)].str)));
2136 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
2137 yyerror("number expected");
2138 else cfg_parser->cfg->verbosity = atoi((yyvsp[(2) - (2)].str));
2139 free((yyvsp[(2) - (2)].str));
2145 /* Line 1806 of yacc.c */
2146 #line 217 "util/configparser.y"
2148 OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[(2) - (2)].str)));
2149 if(strcmp((yyvsp[(2) - (2)].str), "") == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0)
2150 cfg_parser->cfg->stat_interval = 0;
2151 else if(atoi((yyvsp[(2) - (2)].str)) == 0)
2152 yyerror("number expected");
2153 else cfg_parser->cfg->stat_interval = atoi((yyvsp[(2) - (2)].str));
2154 free((yyvsp[(2) - (2)].str));
2160 /* Line 1806 of yacc.c */
2161 #line 228 "util/configparser.y"
2163 OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[(2) - (2)].str)));
2164 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2165 yyerror("expected yes or no.");
2166 else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2167 free((yyvsp[(2) - (2)].str));
2173 /* Line 1806 of yacc.c */
2174 #line 237 "util/configparser.y"
2176 OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[(2) - (2)].str)));
2177 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2178 yyerror("expected yes or no.");
2179 else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2180 free((yyvsp[(2) - (2)].str));
2186 /* Line 1806 of yacc.c */
2187 #line 246 "util/configparser.y"
2189 OUTYY(("P(server_port:%s)\n", (yyvsp[(2) - (2)].str)));
2190 if(atoi((yyvsp[(2) - (2)].str)) == 0)
2191 yyerror("port number expected");
2192 else cfg_parser->cfg->port = atoi((yyvsp[(2) - (2)].str));
2193 free((yyvsp[(2) - (2)].str));
2199 /* Line 1806 of yacc.c */
2200 #line 255 "util/configparser.y"
2202 OUTYY(("P(server_interface:%s)\n", (yyvsp[(2) - (2)].str)));
2203 if(cfg_parser->cfg->num_ifs == 0)
2204 cfg_parser->cfg->ifs = calloc(1, sizeof(char*));
2205 else cfg_parser->cfg->ifs = realloc(cfg_parser->cfg->ifs,
2206 (cfg_parser->cfg->num_ifs+1)*sizeof(char*));
2207 if(!cfg_parser->cfg->ifs)
2208 yyerror("out of memory");
2210 cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[(2) - (2)].str);
2216 /* Line 1806 of yacc.c */
2217 #line 268 "util/configparser.y"
2219 OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[(2) - (2)].str)));
2220 if(cfg_parser->cfg->num_out_ifs == 0)
2221 cfg_parser->cfg->out_ifs = calloc(1, sizeof(char*));
2222 else cfg_parser->cfg->out_ifs = realloc(
2223 cfg_parser->cfg->out_ifs,
2224 (cfg_parser->cfg->num_out_ifs+1)*sizeof(char*));
2225 if(!cfg_parser->cfg->out_ifs)
2226 yyerror("out of memory");
2228 cfg_parser->cfg->out_ifs[
2229 cfg_parser->cfg->num_out_ifs++] = (yyvsp[(2) - (2)].str);
2235 /* Line 1806 of yacc.c */
2236 #line 283 "util/configparser.y"
2238 OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[(2) - (2)].str)));
2239 if(atoi((yyvsp[(2) - (2)].str)) == 0)
2240 yyerror("number expected");
2241 else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[(2) - (2)].str));
2242 free((yyvsp[(2) - (2)].str));
2248 /* Line 1806 of yacc.c */
2249 #line 292 "util/configparser.y"
2251 OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[(2) - (2)].str)));
2252 if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 1,
2253 cfg_parser->cfg->outgoing_avail_ports, 65536))
2254 yyerror("port number or range (\"low-high\") expected");
2255 free((yyvsp[(2) - (2)].str));
2261 /* Line 1806 of yacc.c */
2262 #line 301 "util/configparser.y"
2264 OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[(2) - (2)].str)));
2265 if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 0,
2266 cfg_parser->cfg->outgoing_avail_ports, 65536))
2267 yyerror("port number or range (\"low-high\") expected");
2268 free((yyvsp[(2) - (2)].str));
2274 /* Line 1806 of yacc.c */
2275 #line 310 "util/configparser.y"
2277 OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[(2) - (2)].str)));
2278 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
2279 yyerror("number expected");
2280 else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[(2) - (2)].str));
2281 free((yyvsp[(2) - (2)].str));
2287 /* Line 1806 of yacc.c */
2288 #line 319 "util/configparser.y"
2290 OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[(2) - (2)].str)));
2291 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
2292 yyerror("number expected");
2293 else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[(2) - (2)].str));
2294 free((yyvsp[(2) - (2)].str));
2300 /* Line 1806 of yacc.c */
2301 #line 328 "util/configparser.y"
2303 OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[(2) - (2)].str)));
2304 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2305 yyerror("expected yes or no.");
2306 else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2307 free((yyvsp[(2) - (2)].str));
2313 /* Line 1806 of yacc.c */
2314 #line 337 "util/configparser.y"
2316 OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[(2) - (2)].str)));
2317 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2318 yyerror("expected yes or no.");
2319 else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2320 free((yyvsp[(2) - (2)].str));
2326 /* Line 1806 of yacc.c */
2327 #line 346 "util/configparser.y"
2329 OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[(2) - (2)].str)));
2330 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2331 yyerror("expected yes or no.");
2332 else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2333 free((yyvsp[(2) - (2)].str));
2339 /* Line 1806 of yacc.c */
2340 #line 355 "util/configparser.y"
2342 OUTYY(("P(server_do_udp:%s)\n", (yyvsp[(2) - (2)].str)));
2343 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2344 yyerror("expected yes or no.");
2345 else cfg_parser->cfg->do_udp = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2346 free((yyvsp[(2) - (2)].str));
2352 /* Line 1806 of yacc.c */
2353 #line 364 "util/configparser.y"
2355 OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[(2) - (2)].str)));
2356 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2357 yyerror("expected yes or no.");
2358 else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2359 free((yyvsp[(2) - (2)].str));
2365 /* Line 1806 of yacc.c */
2366 #line 373 "util/configparser.y"
2368 OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[(2) - (2)].str)));
2369 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2370 yyerror("expected yes or no.");
2371 else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2372 free((yyvsp[(2) - (2)].str));
2378 /* Line 1806 of yacc.c */
2379 #line 382 "util/configparser.y"
2381 OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[(2) - (2)].str)));
2382 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2383 yyerror("expected yes or no.");
2384 else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2385 free((yyvsp[(2) - (2)].str));
2391 /* Line 1806 of yacc.c */
2392 #line 391 "util/configparser.y"
2394 OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[(2) - (2)].str)));
2395 free(cfg_parser->cfg->ssl_service_key);
2396 cfg_parser->cfg->ssl_service_key = (yyvsp[(2) - (2)].str);
2402 /* Line 1806 of yacc.c */
2403 #line 398 "util/configparser.y"
2405 OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[(2) - (2)].str)));
2406 free(cfg_parser->cfg->ssl_service_pem);
2407 cfg_parser->cfg->ssl_service_pem = (yyvsp[(2) - (2)].str);
2413 /* Line 1806 of yacc.c */
2414 #line 405 "util/configparser.y"
2416 OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[(2) - (2)].str)));
2417 if(atoi((yyvsp[(2) - (2)].str)) == 0)
2418 yyerror("port number expected");
2419 else cfg_parser->cfg->ssl_port = atoi((yyvsp[(2) - (2)].str));
2420 free((yyvsp[(2) - (2)].str));
2426 /* Line 1806 of yacc.c */
2427 #line 414 "util/configparser.y"
2429 OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[(2) - (2)].str)));
2430 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2431 yyerror("expected yes or no.");
2432 else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2433 free((yyvsp[(2) - (2)].str));
2439 /* Line 1806 of yacc.c */
2440 #line 423 "util/configparser.y"
2442 OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[(2) - (2)].str)));
2443 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2444 yyerror("expected yes or no.");
2445 else cfg_parser->cfg->use_syslog = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2446 #if !defined(HAVE_SYSLOG_H) && !defined(UB_ON_WINDOWS)
2447 if(strcmp((yyvsp[(2) - (2)].str), "yes") == 0)
2448 yyerror("no syslog services are available. "
2449 "(reconfigure and compile to add)");
2451 free((yyvsp[(2) - (2)].str));
2457 /* Line 1806 of yacc.c */
2458 #line 437 "util/configparser.y"
2460 OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[(2) - (2)].str)));
2461 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2462 yyerror("expected yes or no.");
2463 else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2464 free((yyvsp[(2) - (2)].str));
2470 /* Line 1806 of yacc.c */
2471 #line 446 "util/configparser.y"
2473 OUTYY(("P(server_log_queries:%s)\n", (yyvsp[(2) - (2)].str)));
2474 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2475 yyerror("expected yes or no.");
2476 else cfg_parser->cfg->log_queries = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2477 free((yyvsp[(2) - (2)].str));
2483 /* Line 1806 of yacc.c */
2484 #line 455 "util/configparser.y"
2486 OUTYY(("P(server_chroot:%s)\n", (yyvsp[(2) - (2)].str)));
2487 free(cfg_parser->cfg->chrootdir);
2488 cfg_parser->cfg->chrootdir = (yyvsp[(2) - (2)].str);
2494 /* Line 1806 of yacc.c */
2495 #line 462 "util/configparser.y"
2497 OUTYY(("P(server_username:%s)\n", (yyvsp[(2) - (2)].str)));
2498 free(cfg_parser->cfg->username);
2499 cfg_parser->cfg->username = (yyvsp[(2) - (2)].str);
2505 /* Line 1806 of yacc.c */
2506 #line 469 "util/configparser.y"
2508 OUTYY(("P(server_directory:%s)\n", (yyvsp[(2) - (2)].str)));
2509 free(cfg_parser->cfg->directory);
2510 cfg_parser->cfg->directory = (yyvsp[(2) - (2)].str);
2516 /* Line 1806 of yacc.c */
2517 #line 476 "util/configparser.y"
2519 OUTYY(("P(server_logfile:%s)\n", (yyvsp[(2) - (2)].str)));
2520 free(cfg_parser->cfg->logfile);
2521 cfg_parser->cfg->logfile = (yyvsp[(2) - (2)].str);
2522 cfg_parser->cfg->use_syslog = 0;
2528 /* Line 1806 of yacc.c */
2529 #line 484 "util/configparser.y"
2531 OUTYY(("P(server_pidfile:%s)\n", (yyvsp[(2) - (2)].str)));
2532 free(cfg_parser->cfg->pidfile);
2533 cfg_parser->cfg->pidfile = (yyvsp[(2) - (2)].str);
2539 /* Line 1806 of yacc.c */
2540 #line 491 "util/configparser.y"
2542 OUTYY(("P(server_root_hints:%s)\n", (yyvsp[(2) - (2)].str)));
2543 if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[(2) - (2)].str)))
2544 yyerror("out of memory");
2550 /* Line 1806 of yacc.c */
2551 #line 498 "util/configparser.y"
2553 OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[(2) - (2)].str)));
2554 free(cfg_parser->cfg->dlv_anchor_file);
2555 cfg_parser->cfg->dlv_anchor_file = (yyvsp[(2) - (2)].str);
2561 /* Line 1806 of yacc.c */
2562 #line 505 "util/configparser.y"
2564 OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[(2) - (2)].str)));
2565 if(!cfg_strlist_insert(&cfg_parser->cfg->dlv_anchor_list, (yyvsp[(2) - (2)].str)))
2566 yyerror("out of memory");
2572 /* Line 1806 of yacc.c */
2573 #line 512 "util/configparser.y"
2575 OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str)));
2576 if(!cfg_strlist_insert(&cfg_parser->cfg->
2577 auto_trust_anchor_file_list, (yyvsp[(2) - (2)].str)))
2578 yyerror("out of memory");
2584 /* Line 1806 of yacc.c */
2585 #line 520 "util/configparser.y"
2587 OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str)));
2588 if(!cfg_strlist_insert(&cfg_parser->cfg->
2589 trust_anchor_file_list, (yyvsp[(2) - (2)].str)))
2590 yyerror("out of memory");
2596 /* Line 1806 of yacc.c */
2597 #line 528 "util/configparser.y"
2599 OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[(2) - (2)].str)));
2600 if(!cfg_strlist_insert(&cfg_parser->cfg->
2601 trusted_keys_file_list, (yyvsp[(2) - (2)].str)))
2602 yyerror("out of memory");
2608 /* Line 1806 of yacc.c */
2609 #line 536 "util/configparser.y"
2611 OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[(2) - (2)].str)));
2612 if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[(2) - (2)].str)))
2613 yyerror("out of memory");
2619 /* Line 1806 of yacc.c */
2620 #line 543 "util/configparser.y"
2622 OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[(2) - (2)].str)));
2623 if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[(2) - (2)].str)))
2624 yyerror("out of memory");
2630 /* Line 1806 of yacc.c */
2631 #line 550 "util/configparser.y"
2633 OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[(2) - (2)].str)));
2634 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2635 yyerror("expected yes or no.");
2636 else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2637 free((yyvsp[(2) - (2)].str));
2643 /* Line 1806 of yacc.c */
2644 #line 559 "util/configparser.y"
2646 OUTYY(("P(server_hide_version:%s)\n", (yyvsp[(2) - (2)].str)));
2647 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2648 yyerror("expected yes or no.");
2649 else cfg_parser->cfg->hide_version = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2650 free((yyvsp[(2) - (2)].str));
2656 /* Line 1806 of yacc.c */
2657 #line 568 "util/configparser.y"
2659 OUTYY(("P(server_identity:%s)\n", (yyvsp[(2) - (2)].str)));
2660 free(cfg_parser->cfg->identity);
2661 cfg_parser->cfg->identity = (yyvsp[(2) - (2)].str);
2667 /* Line 1806 of yacc.c */
2668 #line 575 "util/configparser.y"
2670 OUTYY(("P(server_version:%s)\n", (yyvsp[(2) - (2)].str)));
2671 free(cfg_parser->cfg->version);
2672 cfg_parser->cfg->version = (yyvsp[(2) - (2)].str);
2678 /* Line 1806 of yacc.c */
2679 #line 582 "util/configparser.y"
2681 OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[(2) - (2)].str)));
2682 if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->so_rcvbuf))
2683 yyerror("buffer size expected");
2684 free((yyvsp[(2) - (2)].str));
2690 /* Line 1806 of yacc.c */
2691 #line 590 "util/configparser.y"
2693 OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[(2) - (2)].str)));
2694 if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->so_sndbuf))
2695 yyerror("buffer size expected");
2696 free((yyvsp[(2) - (2)].str));
2702 /* Line 1806 of yacc.c */
2703 #line 598 "util/configparser.y"
2705 OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[(2) - (2)].str)));
2706 if(atoi((yyvsp[(2) - (2)].str)) == 0)
2707 yyerror("number expected");
2708 else if (atoi((yyvsp[(2) - (2)].str)) < 12)
2709 yyerror("edns buffer size too small");
2710 else if (atoi((yyvsp[(2) - (2)].str)) > 65535)
2711 cfg_parser->cfg->edns_buffer_size = 65535;
2712 else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[(2) - (2)].str));
2713 free((yyvsp[(2) - (2)].str));
2719 /* Line 1806 of yacc.c */
2720 #line 611 "util/configparser.y"
2722 OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[(2) - (2)].str)));
2723 if(atoi((yyvsp[(2) - (2)].str)) == 0)
2724 yyerror("number expected");
2725 else if (atoi((yyvsp[(2) - (2)].str)) < 4096)
2726 yyerror("message buffer size too small (use 4096)");
2727 else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[(2) - (2)].str));
2728 free((yyvsp[(2) - (2)].str));
2734 /* Line 1806 of yacc.c */
2735 #line 622 "util/configparser.y"
2737 OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[(2) - (2)].str)));
2738 if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->msg_cache_size))
2739 yyerror("memory size expected");
2740 free((yyvsp[(2) - (2)].str));
2746 /* Line 1806 of yacc.c */
2747 #line 630 "util/configparser.y"
2749 OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
2750 if(atoi((yyvsp[(2) - (2)].str)) == 0)
2751 yyerror("number expected");
2753 cfg_parser->cfg->msg_cache_slabs = atoi((yyvsp[(2) - (2)].str));
2754 if(!is_pow2(cfg_parser->cfg->msg_cache_slabs))
2755 yyerror("must be a power of 2");
2757 free((yyvsp[(2) - (2)].str));
2763 /* Line 1806 of yacc.c */
2764 #line 643 "util/configparser.y"
2766 OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[(2) - (2)].str)));
2767 if(atoi((yyvsp[(2) - (2)].str)) == 0)
2768 yyerror("number expected");
2769 else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[(2) - (2)].str));
2770 free((yyvsp[(2) - (2)].str));
2776 /* Line 1806 of yacc.c */
2777 #line 652 "util/configparser.y"
2779 OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[(2) - (2)].str)));
2780 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
2781 yyerror("number expected");
2782 else cfg_parser->cfg->jostle_time = atoi((yyvsp[(2) - (2)].str));
2783 free((yyvsp[(2) - (2)].str));
2789 /* Line 1806 of yacc.c */
2790 #line 661 "util/configparser.y"
2792 OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[(2) - (2)].str)));
2793 if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->rrset_cache_size))
2794 yyerror("memory size expected");
2795 free((yyvsp[(2) - (2)].str));
2801 /* Line 1806 of yacc.c */
2802 #line 669 "util/configparser.y"
2804 OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
2805 if(atoi((yyvsp[(2) - (2)].str)) == 0)
2806 yyerror("number expected");
2808 cfg_parser->cfg->rrset_cache_slabs = atoi((yyvsp[(2) - (2)].str));
2809 if(!is_pow2(cfg_parser->cfg->rrset_cache_slabs))
2810 yyerror("must be a power of 2");
2812 free((yyvsp[(2) - (2)].str));
2818 /* Line 1806 of yacc.c */
2819 #line 682 "util/configparser.y"
2821 OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
2822 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
2823 yyerror("number expected");
2824 else cfg_parser->cfg->host_ttl = atoi((yyvsp[(2) - (2)].str));
2825 free((yyvsp[(2) - (2)].str));
2831 /* Line 1806 of yacc.c */
2832 #line 691 "util/configparser.y"
2834 OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
2835 verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option "
2836 "removed, use infra-host-ttl)", (yyvsp[(2) - (2)].str));
2837 free((yyvsp[(2) - (2)].str));
2843 /* Line 1806 of yacc.c */
2844 #line 699 "util/configparser.y"
2846 OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[(2) - (2)].str)));
2847 if(atoi((yyvsp[(2) - (2)].str)) == 0)
2848 yyerror("number expected");
2849 else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[(2) - (2)].str));
2850 free((yyvsp[(2) - (2)].str));
2856 /* Line 1806 of yacc.c */
2857 #line 708 "util/configparser.y"
2859 OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[(2) - (2)].str)));
2860 verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s "
2861 "(option removed, use infra-cache-numhosts)", (yyvsp[(2) - (2)].str));
2862 free((yyvsp[(2) - (2)].str));
2868 /* Line 1806 of yacc.c */
2869 #line 716 "util/configparser.y"
2871 OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
2872 if(atoi((yyvsp[(2) - (2)].str)) == 0)
2873 yyerror("number expected");
2875 cfg_parser->cfg->infra_cache_slabs = atoi((yyvsp[(2) - (2)].str));
2876 if(!is_pow2(cfg_parser->cfg->infra_cache_slabs))
2877 yyerror("must be a power of 2");
2879 free((yyvsp[(2) - (2)].str));
2885 /* Line 1806 of yacc.c */
2886 #line 729 "util/configparser.y"
2888 OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[(2) - (2)].str)));
2889 free(cfg_parser->cfg->target_fetch_policy);
2890 cfg_parser->cfg->target_fetch_policy = (yyvsp[(2) - (2)].str);
2896 /* Line 1806 of yacc.c */
2897 #line 736 "util/configparser.y"
2899 OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[(2) - (2)].str)));
2900 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2901 yyerror("expected yes or no.");
2902 else cfg_parser->cfg->harden_short_bufsize =
2903 (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2904 free((yyvsp[(2) - (2)].str));
2910 /* Line 1806 of yacc.c */
2911 #line 746 "util/configparser.y"
2913 OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[(2) - (2)].str)));
2914 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2915 yyerror("expected yes or no.");
2916 else cfg_parser->cfg->harden_large_queries =
2917 (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2918 free((yyvsp[(2) - (2)].str));
2924 /* Line 1806 of yacc.c */
2925 #line 756 "util/configparser.y"
2927 OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[(2) - (2)].str)));
2928 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2929 yyerror("expected yes or no.");
2930 else cfg_parser->cfg->harden_glue =
2931 (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2932 free((yyvsp[(2) - (2)].str));
2938 /* Line 1806 of yacc.c */
2939 #line 766 "util/configparser.y"
2941 OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[(2) - (2)].str)));
2942 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2943 yyerror("expected yes or no.");
2944 else cfg_parser->cfg->harden_dnssec_stripped =
2945 (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2946 free((yyvsp[(2) - (2)].str));
2952 /* Line 1806 of yacc.c */
2953 #line 776 "util/configparser.y"
2955 OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[(2) - (2)].str)));
2956 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2957 yyerror("expected yes or no.");
2958 else cfg_parser->cfg->harden_below_nxdomain =
2959 (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2960 free((yyvsp[(2) - (2)].str));
2966 /* Line 1806 of yacc.c */
2967 #line 786 "util/configparser.y"
2969 OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[(2) - (2)].str)));
2970 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2971 yyerror("expected yes or no.");
2972 else cfg_parser->cfg->harden_referral_path =
2973 (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2974 free((yyvsp[(2) - (2)].str));
2980 /* Line 1806 of yacc.c */
2981 #line 796 "util/configparser.y"
2983 OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[(2) - (2)].str)));
2984 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2985 yyerror("expected yes or no.");
2986 else cfg_parser->cfg->use_caps_bits_for_id =
2987 (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2988 free((yyvsp[(2) - (2)].str));
2994 /* Line 1806 of yacc.c */
2995 #line 806 "util/configparser.y"
2997 OUTYY(("P(server_private_address:%s)\n", (yyvsp[(2) - (2)].str)));
2998 if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[(2) - (2)].str)))
2999 yyerror("out of memory");
3005 /* Line 1806 of yacc.c */
3006 #line 813 "util/configparser.y"
3008 OUTYY(("P(server_private_domain:%s)\n", (yyvsp[(2) - (2)].str)));
3009 if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[(2) - (2)].str)))
3010 yyerror("out of memory");
3016 /* Line 1806 of yacc.c */
3017 #line 820 "util/configparser.y"
3019 OUTYY(("P(server_prefetch:%s)\n", (yyvsp[(2) - (2)].str)));
3020 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
3021 yyerror("expected yes or no.");
3022 else cfg_parser->cfg->prefetch = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
3023 free((yyvsp[(2) - (2)].str));
3029 /* Line 1806 of yacc.c */
3030 #line 829 "util/configparser.y"
3032 OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[(2) - (2)].str)));
3033 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
3034 yyerror("expected yes or no.");
3035 else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
3036 free((yyvsp[(2) - (2)].str));
3042 /* Line 1806 of yacc.c */
3043 #line 838 "util/configparser.y"
3045 OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[(2) - (2)].str)));
3046 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
3047 yyerror("number expected");
3048 else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[(2) - (2)].str));
3049 free((yyvsp[(2) - (2)].str));
3055 /* Line 1806 of yacc.c */
3056 #line 847 "util/configparser.y"
3058 OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[(2) - (2)].str)));
3059 if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[(2) - (2)].str)))
3060 yyerror("out of memory");
3066 /* Line 1806 of yacc.c */
3067 #line 854 "util/configparser.y"
3069 OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[(2) - (2)].str)));
3070 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
3071 yyerror("expected yes or no.");
3072 else cfg_parser->cfg->donotquery_localhost =
3073 (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
3074 free((yyvsp[(2) - (2)].str));
3080 /* Line 1806 of yacc.c */
3081 #line 864 "util/configparser.y"
3083 OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)));
3084 if(strcmp((yyvsp[(3) - (3)].str), "deny")!=0 && strcmp((yyvsp[(3) - (3)].str), "refuse")!=0 &&
3085 strcmp((yyvsp[(3) - (3)].str), "allow")!=0 &&
3086 strcmp((yyvsp[(3) - (3)].str), "allow_snoop")!=0) {
3087 yyerror("expected deny, refuse, allow or allow_snoop "
3088 "in access control action");
3090 if(!cfg_str2list_insert(&cfg_parser->cfg->acls, (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)))
3091 fatal_exit("out of memory adding acl");
3098 /* Line 1806 of yacc.c */
3099 #line 878 "util/configparser.y"
3101 OUTYY(("P(server_module_conf:%s)\n", (yyvsp[(2) - (2)].str)));
3102 free(cfg_parser->cfg->module_conf);
3103 cfg_parser->cfg->module_conf = (yyvsp[(2) - (2)].str);
3109 /* Line 1806 of yacc.c */
3110 #line 885 "util/configparser.y"
3112 OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[(2) - (2)].str)));
3113 if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) {
3114 cfg_parser->cfg->val_date_override = 0;
3115 } else if(strlen((yyvsp[(2) - (2)].str)) == 14) {
3116 cfg_parser->cfg->val_date_override =
3117 cfg_convert_timeval((yyvsp[(2) - (2)].str));
3118 if(!cfg_parser->cfg->val_date_override)
3119 yyerror("bad date/time specification");
3121 if(atoi((yyvsp[(2) - (2)].str)) == 0)
3122 yyerror("number expected");
3123 cfg_parser->cfg->val_date_override = atoi((yyvsp[(2) - (2)].str));
3125 free((yyvsp[(2) - (2)].str));
3131 /* Line 1806 of yacc.c */
3132 #line 903 "util/configparser.y"
3134 OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[(2) - (2)].str)));
3135 if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) {
3136 cfg_parser->cfg->val_sig_skew_min = 0;
3138 cfg_parser->cfg->val_sig_skew_min = atoi((yyvsp[(2) - (2)].str));
3139 if(!cfg_parser->cfg->val_sig_skew_min)
3140 yyerror("number expected");
3142 free((yyvsp[(2) - (2)].str));
3148 /* Line 1806 of yacc.c */
3149 #line 916 "util/configparser.y"
3151 OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[(2) - (2)].str)));
3152 if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) {
3153 cfg_parser->cfg->val_sig_skew_max = 0;
3155 cfg_parser->cfg->val_sig_skew_max = atoi((yyvsp[(2) - (2)].str));
3156 if(!cfg_parser->cfg->val_sig_skew_max)
3157 yyerror("number expected");
3159 free((yyvsp[(2) - (2)].str));
3165 /* Line 1806 of yacc.c */
3166 #line 929 "util/configparser.y"
3168 OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
3169 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
3170 yyerror("number expected");
3171 else cfg_parser->cfg->max_ttl = atoi((yyvsp[(2) - (2)].str));
3172 free((yyvsp[(2) - (2)].str));
3178 /* Line 1806 of yacc.c */
3179 #line 938 "util/configparser.y"
3181 OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
3182 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
3183 yyerror("number expected");
3184 else cfg_parser->cfg->min_ttl = atoi((yyvsp[(2) - (2)].str));
3185 free((yyvsp[(2) - (2)].str));
3191 /* Line 1806 of yacc.c */
3192 #line 947 "util/configparser.y"
3194 OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
3195 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
3196 yyerror("number expected");
3197 else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[(2) - (2)].str));
3198 free((yyvsp[(2) - (2)].str));
3204 /* Line 1806 of yacc.c */
3205 #line 956 "util/configparser.y"
3207 OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[(2) - (2)].str)));
3208 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
3209 yyerror("expected yes or no.");
3210 else cfg_parser->cfg->val_clean_additional =
3211 (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
3212 free((yyvsp[(2) - (2)].str));
3218 /* Line 1806 of yacc.c */
3219 #line 966 "util/configparser.y"
3221 OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[(2) - (2)].str)));
3222 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
3223 yyerror("expected yes or no.");
3224 else cfg_parser->cfg->val_permissive_mode =
3225 (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
3226 free((yyvsp[(2) - (2)].str));
3232 /* Line 1806 of yacc.c */
3233 #line 976 "util/configparser.y"
3235 OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[(2) - (2)].str)));
3236 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
3237 yyerror("expected yes or no.");
3238 else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
3239 free((yyvsp[(2) - (2)].str));
3245 /* Line 1806 of yacc.c */
3246 #line 985 "util/configparser.y"
3248 OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[(2) - (2)].str)));
3249 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
3250 yyerror("number expected");
3251 else cfg_parser->cfg->val_log_level = atoi((yyvsp[(2) - (2)].str));
3252 free((yyvsp[(2) - (2)].str));
3258 /* Line 1806 of yacc.c */
3259 #line 994 "util/configparser.y"
3261 OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[(2) - (2)].str)));
3262 free(cfg_parser->cfg->val_nsec3_key_iterations);
3263 cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[(2) - (2)].str);
3269 /* Line 1806 of yacc.c */
3270 #line 1001 "util/configparser.y"
3272 OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[(2) - (2)].str)));
3273 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
3274 yyerror("number expected");
3275 else cfg_parser->cfg->add_holddown = atoi((yyvsp[(2) - (2)].str));
3276 free((yyvsp[(2) - (2)].str));
3282 /* Line 1806 of yacc.c */
3283 #line 1010 "util/configparser.y"
3285 OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[(2) - (2)].str)));
3286 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
3287 yyerror("number expected");
3288 else cfg_parser->cfg->del_holddown = atoi((yyvsp[(2) - (2)].str));
3289 free((yyvsp[(2) - (2)].str));
3295 /* Line 1806 of yacc.c */
3296 #line 1019 "util/configparser.y"
3298 OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[(2) - (2)].str)));
3299 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
3300 yyerror("number expected");
3301 else cfg_parser->cfg->keep_missing = atoi((yyvsp[(2) - (2)].str));
3302 free((yyvsp[(2) - (2)].str));
3308 /* Line 1806 of yacc.c */
3309 #line 1028 "util/configparser.y"
3311 OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[(2) - (2)].str)));
3312 if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->key_cache_size))
3313 yyerror("memory size expected");
3314 free((yyvsp[(2) - (2)].str));
3320 /* Line 1806 of yacc.c */
3321 #line 1036 "util/configparser.y"
3323 OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
3324 if(atoi((yyvsp[(2) - (2)].str)) == 0)
3325 yyerror("number expected");
3327 cfg_parser->cfg->key_cache_slabs = atoi((yyvsp[(2) - (2)].str));
3328 if(!is_pow2(cfg_parser->cfg->key_cache_slabs))
3329 yyerror("must be a power of 2");
3331 free((yyvsp[(2) - (2)].str));
3337 /* Line 1806 of yacc.c */
3338 #line 1049 "util/configparser.y"
3340 OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[(2) - (2)].str)));
3341 if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->neg_cache_size))
3342 yyerror("memory size expected");
3343 free((yyvsp[(2) - (2)].str));
3349 /* Line 1806 of yacc.c */
3350 #line 1057 "util/configparser.y"
3352 OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)));
3353 if(strcmp((yyvsp[(3) - (3)].str), "static")!=0 && strcmp((yyvsp[(3) - (3)].str), "deny")!=0 &&
3354 strcmp((yyvsp[(3) - (3)].str), "refuse")!=0 && strcmp((yyvsp[(3) - (3)].str), "redirect")!=0 &&
3355 strcmp((yyvsp[(3) - (3)].str), "transparent")!=0 && strcmp((yyvsp[(3) - (3)].str), "nodefault")!=0
3356 && strcmp((yyvsp[(3) - (3)].str), "typetransparent")!=0)
3357 yyerror("local-zone type: expected static, deny, "
3358 "refuse, redirect, transparent, "
3359 "typetransparent or nodefault");
3360 else if(strcmp((yyvsp[(3) - (3)].str), "nodefault")==0) {
3361 if(!cfg_strlist_insert(&cfg_parser->cfg->
3362 local_zones_nodefault, (yyvsp[(2) - (3)].str)))
3363 fatal_exit("out of memory adding local-zone");
3364 free((yyvsp[(3) - (3)].str));
3366 if(!cfg_str2list_insert(&cfg_parser->cfg->local_zones,
3367 (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)))
3368 fatal_exit("out of memory adding local-zone");
3375 /* Line 1806 of yacc.c */
3376 #line 1079 "util/configparser.y"
3378 OUTYY(("P(server_local_data:%s)\n", (yyvsp[(2) - (2)].str)));
3379 if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[(2) - (2)].str)))
3380 fatal_exit("out of memory adding local-data");
3386 /* Line 1806 of yacc.c */
3387 #line 1086 "util/configparser.y"
3390 OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[(2) - (2)].str)));
3391 ptr = cfg_ptr_reverse((yyvsp[(2) - (2)].str));
3392 free((yyvsp[(2) - (2)].str));
3394 if(!cfg_strlist_insert(&cfg_parser->cfg->
3396 fatal_exit("out of memory adding local-data");
3398 yyerror("local-data-ptr could not be reversed");
3405 /* Line 1806 of yacc.c */
3406 #line 1101 "util/configparser.y"
3408 OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[(2) - (2)].str)));
3409 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
3410 yyerror("expected yes or no.");
3411 else cfg_parser->cfg->minimal_responses =
3412 (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
3413 free((yyvsp[(2) - (2)].str));
3419 /* Line 1806 of yacc.c */
3420 #line 1111 "util/configparser.y"
3422 OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[(2) - (2)].str)));
3423 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
3424 yyerror("expected yes or no.");
3425 else cfg_parser->cfg->rrset_roundrobin =
3426 (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
3427 free((yyvsp[(2) - (2)].str));
3433 /* Line 1806 of yacc.c */
3434 #line 1121 "util/configparser.y"
3436 OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str)));
3437 if(cfg_parser->cfg->stubs->name)
3438 yyerror("stub name override, there must be one name "
3439 "for one stub-zone");
3440 free(cfg_parser->cfg->stubs->name);
3441 cfg_parser->cfg->stubs->name = (yyvsp[(2) - (2)].str);
3447 /* Line 1806 of yacc.c */
3448 #line 1131 "util/configparser.y"
3450 OUTYY(("P(stub-host:%s)\n", (yyvsp[(2) - (2)].str)));
3451 if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[(2) - (2)].str)))
3452 yyerror("out of memory");
3458 /* Line 1806 of yacc.c */
3459 #line 1138 "util/configparser.y"
3461 OUTYY(("P(stub-addr:%s)\n", (yyvsp[(2) - (2)].str)));
3462 if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[(2) - (2)].str)))
3463 yyerror("out of memory");
3469 /* Line 1806 of yacc.c */
3470 #line 1145 "util/configparser.y"
3472 OUTYY(("P(stub-first:%s)\n", (yyvsp[(2) - (2)].str)));
3473 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
3474 yyerror("expected yes or no.");
3475 else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[(2) - (2)].str), "yes")==0);
3476 free((yyvsp[(2) - (2)].str));
3482 /* Line 1806 of yacc.c */
3483 #line 1154 "util/configparser.y"
3485 OUTYY(("P(stub-prime:%s)\n", (yyvsp[(2) - (2)].str)));
3486 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
3487 yyerror("expected yes or no.");
3488 else cfg_parser->cfg->stubs->isprime =
3489 (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
3490 free((yyvsp[(2) - (2)].str));
3496 /* Line 1806 of yacc.c */
3497 #line 1164 "util/configparser.y"
3499 OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str)));
3500 if(cfg_parser->cfg->forwards->name)
3501 yyerror("forward name override, there must be one "
3502 "name for one forward-zone");
3503 free(cfg_parser->cfg->forwards->name);
3504 cfg_parser->cfg->forwards->name = (yyvsp[(2) - (2)].str);
3510 /* Line 1806 of yacc.c */
3511 #line 1174 "util/configparser.y"
3513 OUTYY(("P(forward-host:%s)\n", (yyvsp[(2) - (2)].str)));
3514 if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[(2) - (2)].str)))
3515 yyerror("out of memory");
3521 /* Line 1806 of yacc.c */
3522 #line 1181 "util/configparser.y"
3524 OUTYY(("P(forward-addr:%s)\n", (yyvsp[(2) - (2)].str)));
3525 if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[(2) - (2)].str)))
3526 yyerror("out of memory");
3532 /* Line 1806 of yacc.c */
3533 #line 1188 "util/configparser.y"
3535 OUTYY(("P(forward-first:%s)\n", (yyvsp[(2) - (2)].str)));
3536 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
3537 yyerror("expected yes or no.");
3538 else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[(2) - (2)].str), "yes")==0);
3539 free((yyvsp[(2) - (2)].str));
3545 /* Line 1806 of yacc.c */
3546 #line 1197 "util/configparser.y"
3548 OUTYY(("\nP(remote-control:)\n"));
3554 /* Line 1806 of yacc.c */
3555 #line 1208 "util/configparser.y"
3557 OUTYY(("P(control_enable:%s)\n", (yyvsp[(2) - (2)].str)));
3558 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
3559 yyerror("expected yes or no.");
3560 else cfg_parser->cfg->remote_control_enable =
3561 (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
3562 free((yyvsp[(2) - (2)].str));
3568 /* Line 1806 of yacc.c */
3569 #line 1218 "util/configparser.y"
3571 OUTYY(("P(control_port:%s)\n", (yyvsp[(2) - (2)].str)));
3572 if(atoi((yyvsp[(2) - (2)].str)) == 0)
3573 yyerror("control port number expected");
3574 else cfg_parser->cfg->control_port = atoi((yyvsp[(2) - (2)].str));
3575 free((yyvsp[(2) - (2)].str));
3581 /* Line 1806 of yacc.c */
3582 #line 1227 "util/configparser.y"
3584 OUTYY(("P(control_interface:%s)\n", (yyvsp[(2) - (2)].str)));
3585 if(!cfg_strlist_insert(&cfg_parser->cfg->control_ifs, (yyvsp[(2) - (2)].str)))
3586 yyerror("out of memory");
3592 /* Line 1806 of yacc.c */
3593 #line 1234 "util/configparser.y"
3595 OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[(2) - (2)].str)));
3596 free(cfg_parser->cfg->server_key_file);
3597 cfg_parser->cfg->server_key_file = (yyvsp[(2) - (2)].str);
3603 /* Line 1806 of yacc.c */
3604 #line 1241 "util/configparser.y"
3606 OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[(2) - (2)].str)));
3607 free(cfg_parser->cfg->server_cert_file);
3608 cfg_parser->cfg->server_cert_file = (yyvsp[(2) - (2)].str);
3614 /* Line 1806 of yacc.c */
3615 #line 1248 "util/configparser.y"
3617 OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[(2) - (2)].str)));
3618 free(cfg_parser->cfg->control_key_file);
3619 cfg_parser->cfg->control_key_file = (yyvsp[(2) - (2)].str);
3625 /* Line 1806 of yacc.c */
3626 #line 1255 "util/configparser.y"
3628 OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[(2) - (2)].str)));
3629 free(cfg_parser->cfg->control_cert_file);
3630 cfg_parser->cfg->control_cert_file = (yyvsp[(2) - (2)].str);
3636 /* Line 1806 of yacc.c */
3637 #line 1262 "util/configparser.y"
3639 OUTYY(("\nP(python:)\n"));
3645 /* Line 1806 of yacc.c */
3646 #line 1271 "util/configparser.y"
3648 OUTYY(("P(python-script:%s)\n", (yyvsp[(2) - (2)].str)));
3649 free(cfg_parser->cfg->python_script);
3650 cfg_parser->cfg->python_script = (yyvsp[(2) - (2)].str);
3656 /* Line 1806 of yacc.c */
3657 #line 3658 "util/configparser.c"
3660 /* User semantic actions sometimes alter yychar, and that requires
3661 that yytoken be updated with the new translation. We take the
3662 approach of translating immediately before every use of yytoken.
3663 One alternative is translating here after every semantic action,
3664 but that translation would be missed if the semantic action invokes
3665 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
3666 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
3667 incorrect destructor might then be invoked immediately. In the
3668 case of YYERROR or YYBACKUP, subsequent parser actions might lead
3669 to an incorrect destructor call or verbose syntax error message
3670 before the lookahead is translated. */
3671 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
3675 YY_STACK_PRINT (yyss, yyssp);
3679 /* Now `shift' the result of the reduction. Determine what state
3680 that goes to, based on the state we popped back to and the rule
3681 number reduced by. */
3685 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
3686 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3687 yystate = yytable[yystate];
3689 yystate = yydefgoto[yyn - YYNTOKENS];
3694 /*------------------------------------.
3695 | yyerrlab -- here on detecting error |
3696 `------------------------------------*/
3698 /* Make sure we have latest lookahead translation. See comments at
3699 user semantic actions for why this is necessary. */
3700 yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
3702 /* If not already recovering from an error, report this error. */
3706 #if ! YYERROR_VERBOSE
3707 yyerror (YY_("syntax error"));
3709 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
3712 char const *yymsgp = YY_("syntax error");
3713 int yysyntax_error_status;
3714 yysyntax_error_status = YYSYNTAX_ERROR;
3715 if (yysyntax_error_status == 0)
3717 else if (yysyntax_error_status == 1)
3719 if (yymsg != yymsgbuf)
3720 YYSTACK_FREE (yymsg);
3721 yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
3725 yymsg_alloc = sizeof yymsgbuf;
3726 yysyntax_error_status = 2;
3730 yysyntax_error_status = YYSYNTAX_ERROR;
3735 if (yysyntax_error_status == 2)
3736 goto yyexhaustedlab;
3738 # undef YYSYNTAX_ERROR
3744 if (yyerrstatus == 3)
3746 /* If just tried and failed to reuse lookahead token after an
3747 error, discard it. */
3749 if (yychar <= YYEOF)
3751 /* Return failure if at end of input. */
3752 if (yychar == YYEOF)
3757 yydestruct ("Error: discarding",
3763 /* Else will try to reuse lookahead token after shifting the error
3768 /*---------------------------------------------------.
3769 | yyerrorlab -- error raised explicitly by YYERROR. |
3770 `---------------------------------------------------*/
3773 /* Pacify compilers like GCC when the user code never invokes
3774 YYERROR and the label yyerrorlab therefore never appears in user
3776 if (/*CONSTCOND*/ 0)
3779 /* Do not reclaim the symbols of the rule which action triggered
3783 YY_STACK_PRINT (yyss, yyssp);
3788 /*-------------------------------------------------------------.
3789 | yyerrlab1 -- common code for both syntax error and YYERROR. |
3790 `-------------------------------------------------------------*/
3792 yyerrstatus = 3; /* Each real token shifted decrements this. */
3796 yyn = yypact[yystate];
3797 if (!yypact_value_is_default (yyn))
3800 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
3808 /* Pop the current state because it cannot handle the error token. */
3813 yydestruct ("Error: popping",
3814 yystos[yystate], yyvsp);
3817 YY_STACK_PRINT (yyss, yyssp);
3823 /* Shift the error token. */
3824 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
3830 /*-------------------------------------.
3831 | yyacceptlab -- YYACCEPT comes here. |
3832 `-------------------------------------*/
3837 /*-----------------------------------.
3838 | yyabortlab -- YYABORT comes here. |
3839 `-----------------------------------*/
3844 #if !defined(yyoverflow) || YYERROR_VERBOSE
3845 /*-------------------------------------------------.
3846 | yyexhaustedlab -- memory exhaustion comes here. |
3847 `-------------------------------------------------*/
3849 yyerror (YY_("memory exhausted"));
3855 if (yychar != YYEMPTY)
3857 /* Make sure we have latest lookahead translation. See comments at
3858 user semantic actions for why this is necessary. */
3859 yytoken = YYTRANSLATE (yychar);
3860 yydestruct ("Cleanup: discarding lookahead",
3863 /* Do not reclaim the symbols of the rule which action triggered
3864 this YYABORT or YYACCEPT. */
3866 YY_STACK_PRINT (yyss, yyssp);
3867 while (yyssp != yyss)
3869 yydestruct ("Cleanup: popping",
3870 yystos[*yyssp], yyvsp);
3875 YYSTACK_FREE (yyss);
3878 if (yymsg != yymsgbuf)
3879 YYSTACK_FREE (yymsg);
3881 /* Make sure YYID is used. */
3882 return YYID (yyresult);
3887 /* Line 2067 of yacc.c */
3888 #line 1276 "util/configparser.y"
3891 /* parse helper routines could be here */