1 /* A Bison parser, made by GNU Bison 2.6.1. */
3 /* Bison implementation for Yacc-like parsers in C
5 Copyright (C) 1984, 1989-1990, 2000-2012 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.6.1"
50 #define YYSKELETON_NAME "yacc.c"
64 /* Copy the first part of user declarations. */
65 /* Line 336 of yacc.c */
66 #line 38 "util/configparser.y"
76 #include "util/configyyrename.h"
77 #include "util/config_file.h"
78 #include "util/net_help.h"
81 void ub_c_error(const char *message);
83 /* these need to be global, otherwise they cannot be used inside yacc */
84 extern struct config_parser_state* cfg_parser;
87 #define OUTYY(s) printf s /* used ONLY when debugging */
93 /* Line 336 of yacc.c */
94 #line 95 "util/configparser.c"
97 # if defined __cplusplus && 201103L <= __cplusplus
98 # define YY_NULL nullptr
104 /* Enabling verbose error messages. */
105 #ifdef YYERROR_VERBOSE
106 # undef YYERROR_VERBOSE
107 # define YYERROR_VERBOSE 1
109 # define YYERROR_VERBOSE 0
112 /* In a future release of Bison, this section will be replaced
113 by #include "configparser.h". */
114 #ifndef YY_UTIL_CONFIGPARSER_H
115 # define YY_UTIL_CONFIGPARSER_H
116 /* Enabling traces. */
127 /* Put the tokens into the symbol table, so that GDB and other debuggers
140 VAR_NUM_THREADS = 268,
142 VAR_OUTGOING_RANGE = 270,
153 VAR_MSG_CACHE_SIZE = 281,
154 VAR_MSG_CACHE_SLABS = 282,
155 VAR_NUM_QUERIES_PER_THREAD = 283,
156 VAR_RRSET_CACHE_SIZE = 284,
157 VAR_RRSET_CACHE_SLABS = 285,
158 VAR_OUTGOING_NUM_TCP = 286,
159 VAR_INFRA_HOST_TTL = 287,
160 VAR_INFRA_LAME_TTL = 288,
161 VAR_INFRA_CACHE_SLABS = 289,
162 VAR_INFRA_CACHE_NUMHOSTS = 290,
163 VAR_INFRA_CACHE_LAME_SIZE = 291,
168 VAR_TARGET_FETCH_POLICY = 296,
169 VAR_HARDEN_SHORT_BUFSIZE = 297,
170 VAR_HARDEN_LARGE_QUERIES = 298,
171 VAR_FORWARD_ZONE = 299,
172 VAR_FORWARD_HOST = 300,
173 VAR_FORWARD_ADDR = 301,
174 VAR_DO_NOT_QUERY_ADDRESS = 302,
175 VAR_HIDE_IDENTITY = 303,
176 VAR_HIDE_VERSION = 304,
179 VAR_HARDEN_GLUE = 307,
180 VAR_MODULE_CONF = 308,
181 VAR_TRUST_ANCHOR_FILE = 309,
182 VAR_TRUST_ANCHOR = 310,
183 VAR_VAL_OVERRIDE_DATE = 311,
185 VAR_VAL_CLEAN_ADDITIONAL = 313,
186 VAR_VAL_PERMISSIVE_MODE = 314,
187 VAR_INCOMING_NUM_TCP = 315,
188 VAR_MSG_BUFFER_SIZE = 316,
189 VAR_KEY_CACHE_SIZE = 317,
190 VAR_KEY_CACHE_SLABS = 318,
191 VAR_TRUSTED_KEYS_FILE = 319,
192 VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 320,
193 VAR_USE_SYSLOG = 321,
194 VAR_OUTGOING_INTERFACE = 322,
195 VAR_ROOT_HINTS = 323,
196 VAR_DO_NOT_QUERY_LOCALHOST = 324,
197 VAR_CACHE_MAX_TTL = 325,
198 VAR_HARDEN_DNSSEC_STRIPPED = 326,
199 VAR_ACCESS_CONTROL = 327,
200 VAR_LOCAL_ZONE = 328,
201 VAR_LOCAL_DATA = 329,
202 VAR_INTERFACE_AUTOMATIC = 330,
203 VAR_STATISTICS_INTERVAL = 331,
204 VAR_DO_DAEMONIZE = 332,
205 VAR_USE_CAPS_FOR_ID = 333,
206 VAR_STATISTICS_CUMULATIVE = 334,
207 VAR_OUTGOING_PORT_PERMIT = 335,
208 VAR_OUTGOING_PORT_AVOID = 336,
209 VAR_DLV_ANCHOR_FILE = 337,
210 VAR_DLV_ANCHOR = 338,
211 VAR_NEG_CACHE_SIZE = 339,
212 VAR_HARDEN_REFERRAL_PATH = 340,
213 VAR_PRIVATE_ADDRESS = 341,
214 VAR_PRIVATE_DOMAIN = 342,
215 VAR_REMOTE_CONTROL = 343,
216 VAR_CONTROL_ENABLE = 344,
217 VAR_CONTROL_INTERFACE = 345,
218 VAR_CONTROL_PORT = 346,
219 VAR_SERVER_KEY_FILE = 347,
220 VAR_SERVER_CERT_FILE = 348,
221 VAR_CONTROL_KEY_FILE = 349,
222 VAR_CONTROL_CERT_FILE = 350,
223 VAR_EXTENDED_STATISTICS = 351,
224 VAR_LOCAL_DATA_PTR = 352,
225 VAR_JOSTLE_TIMEOUT = 353,
226 VAR_STUB_PRIME = 354,
227 VAR_UNWANTED_REPLY_THRESHOLD = 355,
228 VAR_LOG_TIME_ASCII = 356,
229 VAR_DOMAIN_INSECURE = 357,
231 VAR_PYTHON_SCRIPT = 359,
232 VAR_VAL_SIG_SKEW_MIN = 360,
233 VAR_VAL_SIG_SKEW_MAX = 361,
234 VAR_CACHE_MIN_TTL = 362,
235 VAR_VAL_LOG_LEVEL = 363,
236 VAR_AUTO_TRUST_ANCHOR_FILE = 364,
237 VAR_KEEP_MISSING = 365,
238 VAR_ADD_HOLDDOWN = 366,
239 VAR_DEL_HOLDDOWN = 367,
241 VAR_EDNS_BUFFER_SIZE = 369,
243 VAR_PREFETCH_KEY = 371,
245 VAR_HARDEN_BELOW_NXDOMAIN = 373,
246 VAR_IGNORE_CD_FLAG = 374,
247 VAR_LOG_QUERIES = 375,
248 VAR_TCP_UPSTREAM = 376,
249 VAR_SSL_UPSTREAM = 377,
250 VAR_SSL_SERVICE_KEY = 378,
251 VAR_SSL_SERVICE_PEM = 379,
253 VAR_FORWARD_FIRST = 381,
254 VAR_STUB_FIRST = 382,
255 VAR_MINIMAL_RESPONSES = 383,
256 VAR_RRSET_ROUNDROBIN = 384
267 #define STRING_ARG 265
268 #define VAR_SERVER 266
269 #define VAR_VERBOSITY 267
270 #define VAR_NUM_THREADS 268
272 #define VAR_OUTGOING_RANGE 270
273 #define VAR_INTERFACE 271
274 #define VAR_DO_IP4 272
275 #define VAR_DO_IP6 273
276 #define VAR_DO_UDP 274
277 #define VAR_DO_TCP 275
278 #define VAR_CHROOT 276
279 #define VAR_USERNAME 277
280 #define VAR_DIRECTORY 278
281 #define VAR_LOGFILE 279
282 #define VAR_PIDFILE 280
283 #define VAR_MSG_CACHE_SIZE 281
284 #define VAR_MSG_CACHE_SLABS 282
285 #define VAR_NUM_QUERIES_PER_THREAD 283
286 #define VAR_RRSET_CACHE_SIZE 284
287 #define VAR_RRSET_CACHE_SLABS 285
288 #define VAR_OUTGOING_NUM_TCP 286
289 #define VAR_INFRA_HOST_TTL 287
290 #define VAR_INFRA_LAME_TTL 288
291 #define VAR_INFRA_CACHE_SLABS 289
292 #define VAR_INFRA_CACHE_NUMHOSTS 290
293 #define VAR_INFRA_CACHE_LAME_SIZE 291
295 #define VAR_STUB_ZONE 293
296 #define VAR_STUB_HOST 294
297 #define VAR_STUB_ADDR 295
298 #define VAR_TARGET_FETCH_POLICY 296
299 #define VAR_HARDEN_SHORT_BUFSIZE 297
300 #define VAR_HARDEN_LARGE_QUERIES 298
301 #define VAR_FORWARD_ZONE 299
302 #define VAR_FORWARD_HOST 300
303 #define VAR_FORWARD_ADDR 301
304 #define VAR_DO_NOT_QUERY_ADDRESS 302
305 #define VAR_HIDE_IDENTITY 303
306 #define VAR_HIDE_VERSION 304
307 #define VAR_IDENTITY 305
308 #define VAR_VERSION 306
309 #define VAR_HARDEN_GLUE 307
310 #define VAR_MODULE_CONF 308
311 #define VAR_TRUST_ANCHOR_FILE 309
312 #define VAR_TRUST_ANCHOR 310
313 #define VAR_VAL_OVERRIDE_DATE 311
314 #define VAR_BOGUS_TTL 312
315 #define VAR_VAL_CLEAN_ADDITIONAL 313
316 #define VAR_VAL_PERMISSIVE_MODE 314
317 #define VAR_INCOMING_NUM_TCP 315
318 #define VAR_MSG_BUFFER_SIZE 316
319 #define VAR_KEY_CACHE_SIZE 317
320 #define VAR_KEY_CACHE_SLABS 318
321 #define VAR_TRUSTED_KEYS_FILE 319
322 #define VAR_VAL_NSEC3_KEYSIZE_ITERATIONS 320
323 #define VAR_USE_SYSLOG 321
324 #define VAR_OUTGOING_INTERFACE 322
325 #define VAR_ROOT_HINTS 323
326 #define VAR_DO_NOT_QUERY_LOCALHOST 324
327 #define VAR_CACHE_MAX_TTL 325
328 #define VAR_HARDEN_DNSSEC_STRIPPED 326
329 #define VAR_ACCESS_CONTROL 327
330 #define VAR_LOCAL_ZONE 328
331 #define VAR_LOCAL_DATA 329
332 #define VAR_INTERFACE_AUTOMATIC 330
333 #define VAR_STATISTICS_INTERVAL 331
334 #define VAR_DO_DAEMONIZE 332
335 #define VAR_USE_CAPS_FOR_ID 333
336 #define VAR_STATISTICS_CUMULATIVE 334
337 #define VAR_OUTGOING_PORT_PERMIT 335
338 #define VAR_OUTGOING_PORT_AVOID 336
339 #define VAR_DLV_ANCHOR_FILE 337
340 #define VAR_DLV_ANCHOR 338
341 #define VAR_NEG_CACHE_SIZE 339
342 #define VAR_HARDEN_REFERRAL_PATH 340
343 #define VAR_PRIVATE_ADDRESS 341
344 #define VAR_PRIVATE_DOMAIN 342
345 #define VAR_REMOTE_CONTROL 343
346 #define VAR_CONTROL_ENABLE 344
347 #define VAR_CONTROL_INTERFACE 345
348 #define VAR_CONTROL_PORT 346
349 #define VAR_SERVER_KEY_FILE 347
350 #define VAR_SERVER_CERT_FILE 348
351 #define VAR_CONTROL_KEY_FILE 349
352 #define VAR_CONTROL_CERT_FILE 350
353 #define VAR_EXTENDED_STATISTICS 351
354 #define VAR_LOCAL_DATA_PTR 352
355 #define VAR_JOSTLE_TIMEOUT 353
356 #define VAR_STUB_PRIME 354
357 #define VAR_UNWANTED_REPLY_THRESHOLD 355
358 #define VAR_LOG_TIME_ASCII 356
359 #define VAR_DOMAIN_INSECURE 357
360 #define VAR_PYTHON 358
361 #define VAR_PYTHON_SCRIPT 359
362 #define VAR_VAL_SIG_SKEW_MIN 360
363 #define VAR_VAL_SIG_SKEW_MAX 361
364 #define VAR_CACHE_MIN_TTL 362
365 #define VAR_VAL_LOG_LEVEL 363
366 #define VAR_AUTO_TRUST_ANCHOR_FILE 364
367 #define VAR_KEEP_MISSING 365
368 #define VAR_ADD_HOLDDOWN 366
369 #define VAR_DEL_HOLDDOWN 367
370 #define VAR_SO_RCVBUF 368
371 #define VAR_EDNS_BUFFER_SIZE 369
372 #define VAR_PREFETCH 370
373 #define VAR_PREFETCH_KEY 371
374 #define VAR_SO_SNDBUF 372
375 #define VAR_HARDEN_BELOW_NXDOMAIN 373
376 #define VAR_IGNORE_CD_FLAG 374
377 #define VAR_LOG_QUERIES 375
378 #define VAR_TCP_UPSTREAM 376
379 #define VAR_SSL_UPSTREAM 377
380 #define VAR_SSL_SERVICE_KEY 378
381 #define VAR_SSL_SERVICE_PEM 379
382 #define VAR_SSL_PORT 380
383 #define VAR_FORWARD_FIRST 381
384 #define VAR_STUB_FIRST 382
385 #define VAR_MINIMAL_RESPONSES 383
386 #define VAR_RRSET_ROUNDROBIN 384
390 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
391 typedef union YYSTYPE
393 /* Line 350 of yacc.c */
394 #line 64 "util/configparser.y"
399 /* Line 350 of yacc.c */
400 #line 401 "util/configparser.c"
402 # define YYSTYPE_IS_TRIVIAL 1
403 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
404 # define YYSTYPE_IS_DECLARED 1
407 extern YYSTYPE yylval;
410 #if defined __STDC__ || defined __cplusplus
411 int yyparse (void *YYPARSE_PARAM);
415 #else /* ! YYPARSE_PARAM */
416 #if defined __STDC__ || defined __cplusplus
421 #endif /* ! YYPARSE_PARAM */
423 #endif /* !YY_UTIL_CONFIGPARSER_H */
425 /* Copy the second part of user declarations. */
427 /* Line 353 of yacc.c */
428 #line 429 "util/configparser.c"
435 typedef YYTYPE_UINT8 yytype_uint8;
437 typedef unsigned char yytype_uint8;
441 typedef YYTYPE_INT8 yytype_int8;
442 #elif (defined __STDC__ || defined __C99__FUNC__ \
443 || defined __cplusplus || defined _MSC_VER)
444 typedef signed char yytype_int8;
446 typedef short int yytype_int8;
450 typedef YYTYPE_UINT16 yytype_uint16;
452 typedef unsigned short int yytype_uint16;
456 typedef YYTYPE_INT16 yytype_int16;
458 typedef short int yytype_int16;
462 # ifdef __SIZE_TYPE__
463 # define YYSIZE_T __SIZE_TYPE__
464 # elif defined size_t
465 # define YYSIZE_T size_t
466 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
467 || defined __cplusplus || defined _MSC_VER)
468 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
469 # define YYSIZE_T size_t
471 # define YYSIZE_T unsigned int
475 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
478 # if defined YYENABLE_NLS && YYENABLE_NLS
480 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
481 # define YY_(msgid) dgettext ("bison-runtime", msgid)
485 # define YY_(msgid) msgid
489 /* Suppress unused-variable warnings by "using" E. */
490 #if ! defined lint || defined __GNUC__
491 # define YYUSE(e) ((void) (e))
493 # define YYUSE(e) /* empty */
496 /* Identity function, used to suppress warnings about constant conditions. */
500 #if (defined __STDC__ || defined __C99__FUNC__ \
501 || defined __cplusplus || defined _MSC_VER)
514 #if ! defined yyoverflow || YYERROR_VERBOSE
516 /* The parser invokes alloca or malloc; define the necessary symbols. */
518 # ifdef YYSTACK_USE_ALLOCA
519 # if YYSTACK_USE_ALLOCA
521 # define YYSTACK_ALLOC __builtin_alloca
522 # elif defined __BUILTIN_VA_ARG_INCR
523 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
525 # define YYSTACK_ALLOC __alloca
526 # elif defined _MSC_VER
527 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
528 # define alloca _alloca
530 # define YYSTACK_ALLOC alloca
531 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
532 || defined __cplusplus || defined _MSC_VER)
533 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
534 /* Use EXIT_SUCCESS as a witness for stdlib.h. */
535 # ifndef EXIT_SUCCESS
536 # define EXIT_SUCCESS 0
543 # ifdef YYSTACK_ALLOC
544 /* Pacify GCC's `empty if-body' warning. */
545 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
546 # ifndef YYSTACK_ALLOC_MAXIMUM
547 /* The OS might guarantee only one guard page at the bottom of the stack,
548 and a page size can be as small as 4096 bytes. So we cannot safely
549 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
550 to allow for a few compiler-allocated temporary stack slots. */
551 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
554 # define YYSTACK_ALLOC YYMALLOC
555 # define YYSTACK_FREE YYFREE
556 # ifndef YYSTACK_ALLOC_MAXIMUM
557 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
559 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
560 && ! ((defined YYMALLOC || defined malloc) \
561 && (defined YYFREE || defined free)))
562 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
563 # ifndef EXIT_SUCCESS
564 # define EXIT_SUCCESS 0
568 # define YYMALLOC malloc
569 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
570 || defined __cplusplus || defined _MSC_VER)
571 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
576 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
577 || defined __cplusplus || defined _MSC_VER)
578 void free (void *); /* INFRINGES ON USER NAME SPACE */
582 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
585 #if (! defined yyoverflow \
586 && (! defined __cplusplus \
587 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
589 /* A type that is properly aligned for any stack member. */
592 yytype_int16 yyss_alloc;
596 /* The size of the maximum gap between one aligned stack and the next. */
597 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
599 /* The size of an array large to enough to hold all stacks, each with
601 # define YYSTACK_BYTES(N) \
602 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
603 + YYSTACK_GAP_MAXIMUM)
605 # define YYCOPY_NEEDED 1
607 /* Relocate STACK from its old location to the new one. The
608 local variables YYSIZE and YYSTACKSIZE give the old and new number of
609 elements in the stack, and YYPTR gives the new location of the
610 stack. Advance YYPTR to a properly aligned location for the next
612 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
615 YYSIZE_T yynewbytes; \
616 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
617 Stack = &yyptr->Stack_alloc; \
618 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
619 yyptr += yynewbytes / sizeof (*yyptr); \
625 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
626 /* Copy COUNT objects from SRC to DST. The source and destination do
629 # if defined __GNUC__ && 1 < __GNUC__
630 # define YYCOPY(Dst, Src, Count) \
631 __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
633 # define YYCOPY(Dst, Src, Count) \
637 for (yyi = 0; yyi < (Count); yyi++) \
638 (Dst)[yyi] = (Src)[yyi]; \
643 #endif /* !YYCOPY_NEEDED */
645 /* YYFINAL -- State number of the termination state. */
647 /* YYLAST -- Last index in YYTABLE. */
650 /* YYNTOKENS -- Number of terminals. */
651 #define YYNTOKENS 130
652 /* YYNNTS -- Number of nonterminals. */
654 /* YYNRULES -- Number of rules. */
656 /* YYNRULES -- Number of states. */
657 #define YYNSTATES 371
659 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
661 #define YYMAXUTOK 384
663 #define YYTRANSLATE(YYX) \
664 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
666 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
667 static const yytype_uint8 yytranslate[] =
669 0, 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, 2, 2, 2, 2,
676 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
677 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
678 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
679 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
680 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
681 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
682 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
683 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
684 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
685 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
686 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
687 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
688 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
689 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
690 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
691 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
692 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
693 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
694 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
695 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
696 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
697 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
698 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
699 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
700 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
701 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
702 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
703 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
704 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
705 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
706 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
707 125, 126, 127, 128, 129
711 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
713 static const yytype_uint16 yyprhs[] =
715 0, 0, 3, 4, 7, 10, 13, 16, 19, 22,
716 24, 27, 28, 30, 32, 34, 36, 38, 40, 42,
717 44, 46, 48, 50, 52, 54, 56, 58, 60, 62,
718 64, 66, 68, 70, 72, 74, 76, 78, 80, 82,
719 84, 86, 88, 90, 92, 94, 96, 98, 100, 102,
720 104, 106, 108, 110, 112, 114, 116, 118, 120, 122,
721 124, 126, 128, 130, 132, 134, 136, 138, 140, 142,
722 144, 146, 148, 150, 152, 154, 156, 158, 160, 162,
723 164, 166, 168, 170, 172, 174, 176, 178, 180, 182,
724 184, 186, 188, 190, 192, 194, 196, 198, 200, 202,
725 204, 206, 208, 210, 212, 214, 216, 218, 220, 222,
726 224, 226, 229, 230, 232, 234, 236, 238, 240, 242,
727 245, 246, 248, 250, 252, 254, 257, 260, 263, 266,
728 269, 272, 275, 278, 281, 284, 287, 290, 293, 296,
729 299, 302, 305, 308, 311, 314, 317, 320, 323, 326,
730 329, 332, 335, 338, 341, 344, 347, 350, 353, 356,
731 359, 362, 365, 368, 371, 374, 377, 380, 383, 386,
732 389, 392, 395, 398, 401, 404, 407, 410, 413, 416,
733 419, 422, 425, 428, 431, 434, 437, 440, 443, 446,
734 449, 452, 455, 458, 461, 464, 467, 470, 473, 476,
735 480, 483, 486, 489, 492, 495, 498, 501, 504, 507,
736 510, 513, 516, 519, 522, 525, 528, 531, 534, 538,
737 541, 544, 547, 550, 553, 556, 559, 562, 565, 568,
738 571, 574, 577, 579, 582, 583, 585, 587, 589, 591,
739 593, 595, 597, 600, 603, 606, 609, 612, 615, 618,
743 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
744 static const yytype_int16 yyrhs[] =
746 131, 0, -1, -1, 131, 132, -1, 133, 134, -1,
747 136, 137, -1, 139, 140, -1, 259, 260, -1, 249,
748 250, -1, 11, -1, 134, 135, -1, -1, 142, -1,
749 143, -1, 147, -1, 150, -1, 156, -1, 157, -1,
750 158, -1, 159, -1, 148, -1, 169, -1, 170, -1,
751 171, -1, 172, -1, 173, -1, 190, -1, 191, -1,
752 192, -1, 194, -1, 195, -1, 153, -1, 196, -1,
753 197, -1, 200, -1, 198, -1, 199, -1, 201, -1,
754 202, -1, 203, -1, 214, -1, 182, -1, 183, -1,
755 184, -1, 185, -1, 204, -1, 217, -1, 178, -1,
756 180, -1, 218, -1, 223, -1, 224, -1, 225, -1,
757 154, -1, 189, -1, 232, -1, 233, -1, 179, -1,
758 228, -1, 166, -1, 149, -1, 174, -1, 215, -1,
759 221, -1, 205, -1, 216, -1, 235, -1, 236, -1,
760 155, -1, 144, -1, 165, -1, 208, -1, 145, -1,
761 151, -1, 152, -1, 175, -1, 176, -1, 234, -1,
762 207, -1, 209, -1, 210, -1, 146, -1, 237, -1,
763 193, -1, 213, -1, 167, -1, 181, -1, 219, -1,
764 220, -1, 222, -1, 227, -1, 177, -1, 229, -1,
765 230, -1, 231, -1, 186, -1, 188, -1, 211, -1,
766 212, -1, 187, -1, 206, -1, 226, -1, 168, -1,
767 160, -1, 161, -1, 162, -1, 163, -1, 164, -1,
768 238, -1, 239, -1, 38, -1, 137, 138, -1, -1,
769 240, -1, 241, -1, 242, -1, 244, -1, 243, -1,
770 44, -1, 140, 141, -1, -1, 245, -1, 246, -1,
771 247, -1, 248, -1, 13, 10, -1, 12, 10, -1,
772 76, 10, -1, 79, 10, -1, 96, 10, -1, 14,
773 10, -1, 16, 10, -1, 67, 10, -1, 15, 10,
774 -1, 80, 10, -1, 81, 10, -1, 31, 10, -1,
775 60, 10, -1, 75, 10, -1, 17, 10, -1, 18,
776 10, -1, 19, 10, -1, 20, 10, -1, 121, 10,
777 -1, 122, 10, -1, 123, 10, -1, 124, 10, -1,
778 125, 10, -1, 77, 10, -1, 66, 10, -1, 101,
779 10, -1, 120, 10, -1, 21, 10, -1, 22, 10,
780 -1, 23, 10, -1, 24, 10, -1, 25, 10, -1,
781 68, 10, -1, 82, 10, -1, 83, 10, -1, 109,
782 10, -1, 54, 10, -1, 64, 10, -1, 55, 10,
783 -1, 102, 10, -1, 48, 10, -1, 49, 10, -1,
784 50, 10, -1, 51, 10, -1, 113, 10, -1, 117,
785 10, -1, 114, 10, -1, 61, 10, -1, 26, 10,
786 -1, 27, 10, -1, 28, 10, -1, 98, 10, -1,
787 29, 10, -1, 30, 10, -1, 32, 10, -1, 33,
788 10, -1, 35, 10, -1, 36, 10, -1, 34, 10,
789 -1, 41, 10, -1, 42, 10, -1, 43, 10, -1,
790 52, 10, -1, 71, 10, -1, 118, 10, -1, 85,
791 10, -1, 78, 10, -1, 86, 10, -1, 87, 10,
792 -1, 115, 10, -1, 116, 10, -1, 100, 10, -1,
793 47, 10, -1, 69, 10, -1, 72, 10, 10, -1,
794 53, 10, -1, 56, 10, -1, 105, 10, -1, 106,
795 10, -1, 70, 10, -1, 107, 10, -1, 57, 10,
796 -1, 58, 10, -1, 59, 10, -1, 119, 10, -1,
797 108, 10, -1, 65, 10, -1, 111, 10, -1, 112,
798 10, -1, 110, 10, -1, 62, 10, -1, 63, 10,
799 -1, 84, 10, -1, 73, 10, 10, -1, 74, 10,
800 -1, 97, 10, -1, 128, 10, -1, 129, 10, -1,
801 37, 10, -1, 39, 10, -1, 40, 10, -1, 127,
802 10, -1, 99, 10, -1, 37, 10, -1, 45, 10,
803 -1, 46, 10, -1, 126, 10, -1, 88, -1, 250,
804 251, -1, -1, 252, -1, 254, -1, 253, -1, 255,
805 -1, 256, -1, 257, -1, 258, -1, 89, 10, -1,
806 91, 10, -1, 90, 10, -1, 92, 10, -1, 93,
807 10, -1, 94, 10, -1, 95, 10, -1, 103, -1,
808 260, 261, -1, -1, 262, -1, 104, 10, -1
811 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
812 static const yytype_uint16 yyrline[] =
814 0, 110, 110, 110, 111, 111, 112, 112, 113, 117,
815 122, 123, 124, 124, 124, 125, 125, 126, 126, 126,
816 127, 127, 127, 128, 128, 128, 129, 129, 130, 130,
817 131, 131, 132, 132, 133, 133, 134, 134, 135, 135,
818 136, 136, 137, 137, 137, 138, 138, 138, 139, 139,
819 139, 140, 140, 141, 141, 142, 142, 143, 143, 144,
820 144, 144, 145, 145, 146, 146, 147, 147, 147, 148,
821 148, 149, 149, 150, 150, 151, 151, 151, 152, 152,
822 153, 153, 154, 154, 155, 155, 156, 156, 157, 157,
823 157, 158, 158, 159, 159, 159, 160, 160, 160, 161,
824 161, 161, 162, 162, 162, 163, 163, 163, 164, 164,
825 166, 178, 179, 180, 180, 180, 180, 180, 182, 194,
826 195, 196, 196, 196, 196, 198, 207, 216, 227, 236,
827 245, 254, 267, 282, 291, 300, 309, 318, 327, 336,
828 345, 354, 363, 372, 381, 390, 397, 404, 413, 422,
829 436, 445, 454, 461, 468, 475, 483, 490, 497, 504,
830 511, 519, 527, 535, 542, 549, 558, 567, 574, 581,
831 589, 597, 610, 621, 629, 642, 651, 660, 668, 681,
832 690, 698, 707, 715, 728, 735, 745, 755, 765, 775,
833 785, 795, 805, 812, 819, 828, 837, 846, 853, 863,
834 877, 884, 902, 915, 928, 937, 946, 955, 965, 975,
835 984, 993, 1000, 1009, 1018, 1027, 1035, 1048, 1056, 1078,
836 1085, 1100, 1110, 1120, 1130, 1137, 1144, 1153, 1163, 1173,
837 1180, 1187, 1196, 1201, 1202, 1203, 1203, 1203, 1204, 1204,
838 1204, 1205, 1207, 1217, 1226, 1233, 1240, 1247, 1254, 1261,
839 1266, 1267, 1268, 1270
843 #if YYDEBUG || YYERROR_VERBOSE || 0
844 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
845 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
846 static const char *const yytname[] =
848 "$end", "error", "$undefined", "SPACE", "LETTER", "NEWLINE", "COMMENT",
849 "COLON", "ANY", "ZONESTR", "STRING_ARG", "VAR_SERVER", "VAR_VERBOSITY",
850 "VAR_NUM_THREADS", "VAR_PORT", "VAR_OUTGOING_RANGE", "VAR_INTERFACE",
851 "VAR_DO_IP4", "VAR_DO_IP6", "VAR_DO_UDP", "VAR_DO_TCP", "VAR_CHROOT",
852 "VAR_USERNAME", "VAR_DIRECTORY", "VAR_LOGFILE", "VAR_PIDFILE",
853 "VAR_MSG_CACHE_SIZE", "VAR_MSG_CACHE_SLABS",
854 "VAR_NUM_QUERIES_PER_THREAD", "VAR_RRSET_CACHE_SIZE",
855 "VAR_RRSET_CACHE_SLABS", "VAR_OUTGOING_NUM_TCP", "VAR_INFRA_HOST_TTL",
856 "VAR_INFRA_LAME_TTL", "VAR_INFRA_CACHE_SLABS",
857 "VAR_INFRA_CACHE_NUMHOSTS", "VAR_INFRA_CACHE_LAME_SIZE", "VAR_NAME",
858 "VAR_STUB_ZONE", "VAR_STUB_HOST", "VAR_STUB_ADDR",
859 "VAR_TARGET_FETCH_POLICY", "VAR_HARDEN_SHORT_BUFSIZE",
860 "VAR_HARDEN_LARGE_QUERIES", "VAR_FORWARD_ZONE", "VAR_FORWARD_HOST",
861 "VAR_FORWARD_ADDR", "VAR_DO_NOT_QUERY_ADDRESS", "VAR_HIDE_IDENTITY",
862 "VAR_HIDE_VERSION", "VAR_IDENTITY", "VAR_VERSION", "VAR_HARDEN_GLUE",
863 "VAR_MODULE_CONF", "VAR_TRUST_ANCHOR_FILE", "VAR_TRUST_ANCHOR",
864 "VAR_VAL_OVERRIDE_DATE", "VAR_BOGUS_TTL", "VAR_VAL_CLEAN_ADDITIONAL",
865 "VAR_VAL_PERMISSIVE_MODE", "VAR_INCOMING_NUM_TCP", "VAR_MSG_BUFFER_SIZE",
866 "VAR_KEY_CACHE_SIZE", "VAR_KEY_CACHE_SLABS", "VAR_TRUSTED_KEYS_FILE",
867 "VAR_VAL_NSEC3_KEYSIZE_ITERATIONS", "VAR_USE_SYSLOG",
868 "VAR_OUTGOING_INTERFACE", "VAR_ROOT_HINTS", "VAR_DO_NOT_QUERY_LOCALHOST",
869 "VAR_CACHE_MAX_TTL", "VAR_HARDEN_DNSSEC_STRIPPED", "VAR_ACCESS_CONTROL",
870 "VAR_LOCAL_ZONE", "VAR_LOCAL_DATA", "VAR_INTERFACE_AUTOMATIC",
871 "VAR_STATISTICS_INTERVAL", "VAR_DO_DAEMONIZE", "VAR_USE_CAPS_FOR_ID",
872 "VAR_STATISTICS_CUMULATIVE", "VAR_OUTGOING_PORT_PERMIT",
873 "VAR_OUTGOING_PORT_AVOID", "VAR_DLV_ANCHOR_FILE", "VAR_DLV_ANCHOR",
874 "VAR_NEG_CACHE_SIZE", "VAR_HARDEN_REFERRAL_PATH", "VAR_PRIVATE_ADDRESS",
875 "VAR_PRIVATE_DOMAIN", "VAR_REMOTE_CONTROL", "VAR_CONTROL_ENABLE",
876 "VAR_CONTROL_INTERFACE", "VAR_CONTROL_PORT", "VAR_SERVER_KEY_FILE",
877 "VAR_SERVER_CERT_FILE", "VAR_CONTROL_KEY_FILE", "VAR_CONTROL_CERT_FILE",
878 "VAR_EXTENDED_STATISTICS", "VAR_LOCAL_DATA_PTR", "VAR_JOSTLE_TIMEOUT",
879 "VAR_STUB_PRIME", "VAR_UNWANTED_REPLY_THRESHOLD", "VAR_LOG_TIME_ASCII",
880 "VAR_DOMAIN_INSECURE", "VAR_PYTHON", "VAR_PYTHON_SCRIPT",
881 "VAR_VAL_SIG_SKEW_MIN", "VAR_VAL_SIG_SKEW_MAX", "VAR_CACHE_MIN_TTL",
882 "VAR_VAL_LOG_LEVEL", "VAR_AUTO_TRUST_ANCHOR_FILE", "VAR_KEEP_MISSING",
883 "VAR_ADD_HOLDDOWN", "VAR_DEL_HOLDDOWN", "VAR_SO_RCVBUF",
884 "VAR_EDNS_BUFFER_SIZE", "VAR_PREFETCH", "VAR_PREFETCH_KEY",
885 "VAR_SO_SNDBUF", "VAR_HARDEN_BELOW_NXDOMAIN", "VAR_IGNORE_CD_FLAG",
886 "VAR_LOG_QUERIES", "VAR_TCP_UPSTREAM", "VAR_SSL_UPSTREAM",
887 "VAR_SSL_SERVICE_KEY", "VAR_SSL_SERVICE_PEM", "VAR_SSL_PORT",
888 "VAR_FORWARD_FIRST", "VAR_STUB_FIRST", "VAR_MINIMAL_RESPONSES",
889 "VAR_RRSET_ROUNDROBIN", "$accept", "toplevelvars", "toplevelvar",
890 "serverstart", "contents_server", "content_server", "stubstart",
891 "contents_stub", "content_stub", "forwardstart", "contents_forward",
892 "content_forward", "server_num_threads", "server_verbosity",
893 "server_statistics_interval", "server_statistics_cumulative",
894 "server_extended_statistics", "server_port", "server_interface",
895 "server_outgoing_interface", "server_outgoing_range",
896 "server_outgoing_port_permit", "server_outgoing_port_avoid",
897 "server_outgoing_num_tcp", "server_incoming_num_tcp",
898 "server_interface_automatic", "server_do_ip4", "server_do_ip6",
899 "server_do_udp", "server_do_tcp", "server_tcp_upstream",
900 "server_ssl_upstream", "server_ssl_service_key",
901 "server_ssl_service_pem", "server_ssl_port", "server_do_daemonize",
902 "server_use_syslog", "server_log_time_ascii", "server_log_queries",
903 "server_chroot", "server_username", "server_directory", "server_logfile",
904 "server_pidfile", "server_root_hints", "server_dlv_anchor_file",
905 "server_dlv_anchor", "server_auto_trust_anchor_file",
906 "server_trust_anchor_file", "server_trusted_keys_file",
907 "server_trust_anchor", "server_domain_insecure", "server_hide_identity",
908 "server_hide_version", "server_identity", "server_version",
909 "server_so_rcvbuf", "server_so_sndbuf", "server_edns_buffer_size",
910 "server_msg_buffer_size", "server_msg_cache_size",
911 "server_msg_cache_slabs", "server_num_queries_per_thread",
912 "server_jostle_timeout", "server_rrset_cache_size",
913 "server_rrset_cache_slabs", "server_infra_host_ttl",
914 "server_infra_lame_ttl", "server_infra_cache_numhosts",
915 "server_infra_cache_lame_size", "server_infra_cache_slabs",
916 "server_target_fetch_policy", "server_harden_short_bufsize",
917 "server_harden_large_queries", "server_harden_glue",
918 "server_harden_dnssec_stripped", "server_harden_below_nxdomain",
919 "server_harden_referral_path", "server_use_caps_for_id",
920 "server_private_address", "server_private_domain", "server_prefetch",
921 "server_prefetch_key", "server_unwanted_reply_threshold",
922 "server_do_not_query_address", "server_do_not_query_localhost",
923 "server_access_control", "server_module_conf",
924 "server_val_override_date", "server_val_sig_skew_min",
925 "server_val_sig_skew_max", "server_cache_max_ttl",
926 "server_cache_min_ttl", "server_bogus_ttl",
927 "server_val_clean_additional", "server_val_permissive_mode",
928 "server_ignore_cd_flag", "server_val_log_level",
929 "server_val_nsec3_keysize_iterations", "server_add_holddown",
930 "server_del_holddown", "server_keep_missing", "server_key_cache_size",
931 "server_key_cache_slabs", "server_neg_cache_size", "server_local_zone",
932 "server_local_data", "server_local_data_ptr", "server_minimal_responses",
933 "server_rrset_roundrobin", "stub_name", "stub_host", "stub_addr",
934 "stub_first", "stub_prime", "forward_name", "forward_host",
935 "forward_addr", "forward_first", "rcstart", "contents_rc", "content_rc",
936 "rc_control_enable", "rc_control_port", "rc_control_interface",
937 "rc_server_key_file", "rc_server_cert_file", "rc_control_key_file",
938 "rc_control_cert_file", "pythonstart", "contents_py", "content_py",
944 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
946 static const yytype_uint16 yytoknum[] =
948 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
949 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
950 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
951 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
952 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
953 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
954 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
955 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
956 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
957 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
958 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
959 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
960 375, 376, 377, 378, 379, 380, 381, 382, 383, 384
964 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
965 static const yytype_uint16 yyr1[] =
967 0, 130, 131, 131, 132, 132, 132, 132, 132, 133,
968 134, 134, 135, 135, 135, 135, 135, 135, 135, 135,
969 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
970 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
971 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
972 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
973 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
974 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
975 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
976 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
977 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
978 136, 137, 137, 138, 138, 138, 138, 138, 139, 140,
979 140, 141, 141, 141, 141, 142, 143, 144, 145, 146,
980 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
981 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
982 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
983 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
984 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
985 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
986 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
987 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
988 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
989 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
990 247, 248, 249, 250, 250, 251, 251, 251, 251, 251,
991 251, 251, 252, 253, 254, 255, 256, 257, 258, 259,
995 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
996 static const yytype_uint8 yyr2[] =
998 0, 2, 0, 2, 2, 2, 2, 2, 2, 1,
999 2, 0, 1, 1, 1, 1, 1, 1, 1, 1,
1000 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1001 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1002 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1003 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1004 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1005 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1006 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1007 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1008 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1009 1, 2, 0, 1, 1, 1, 1, 1, 1, 2,
1010 0, 1, 1, 1, 1, 2, 2, 2, 2, 2,
1011 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1012 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1013 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1014 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1015 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1016 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1017 2, 2, 2, 2, 2, 2, 2, 2, 2, 3,
1018 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1019 2, 2, 2, 2, 2, 2, 2, 2, 3, 2,
1020 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1021 2, 2, 1, 2, 0, 1, 1, 1, 1, 1,
1022 1, 1, 2, 2, 2, 2, 2, 2, 2, 1,
1026 /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
1027 Performed when YYTABLE doesn't specify something else to do. Zero
1028 means the default is an error. */
1029 static const yytype_uint8 yydefact[] =
1031 2, 0, 1, 9, 110, 118, 232, 249, 3, 11,
1032 112, 120, 234, 251, 4, 5, 6, 8, 7, 0,
1033 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1034 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1035 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1036 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1037 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1038 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1039 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1040 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1041 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1042 0, 0, 0, 0, 0, 0, 0, 10, 12, 13,
1043 69, 72, 81, 14, 20, 60, 15, 73, 74, 31,
1044 53, 68, 16, 17, 18, 19, 103, 104, 105, 106,
1045 107, 70, 59, 85, 102, 21, 22, 23, 24, 25,
1046 61, 75, 76, 91, 47, 57, 48, 86, 41, 42,
1047 43, 44, 95, 99, 96, 54, 26, 27, 28, 83,
1048 29, 30, 32, 33, 35, 36, 34, 37, 38, 39,
1049 45, 64, 100, 78, 71, 79, 80, 97, 98, 84,
1050 40, 62, 65, 46, 49, 87, 88, 63, 89, 50,
1051 51, 52, 101, 90, 58, 92, 93, 94, 55, 56,
1052 77, 66, 67, 82, 108, 109, 0, 0, 0, 0,
1053 0, 111, 113, 114, 115, 117, 116, 0, 0, 0,
1054 0, 119, 121, 122, 123, 124, 0, 0, 0, 0,
1055 0, 0, 0, 233, 235, 237, 236, 238, 239, 240,
1056 241, 0, 250, 252, 126, 125, 130, 133, 131, 139,
1057 140, 141, 142, 152, 153, 154, 155, 156, 173, 174,
1058 175, 177, 178, 136, 179, 180, 183, 181, 182, 184,
1059 185, 186, 197, 165, 166, 167, 168, 187, 200, 161,
1060 163, 201, 206, 207, 208, 137, 172, 215, 216, 162,
1061 211, 149, 132, 157, 198, 204, 188, 0, 0, 219,
1062 138, 127, 148, 191, 128, 134, 135, 158, 159, 217,
1063 190, 192, 193, 129, 220, 176, 196, 150, 164, 202,
1064 203, 205, 210, 160, 214, 212, 213, 169, 171, 194,
1065 195, 170, 189, 209, 151, 143, 144, 145, 146, 147,
1066 221, 222, 223, 224, 225, 227, 226, 228, 229, 230,
1067 231, 242, 244, 243, 245, 246, 247, 248, 253, 199,
1071 /* YYDEFGOTO[NTERM-NUM]. */
1072 static const yytype_int16 yydefgoto[] =
1074 -1, 1, 8, 9, 14, 117, 10, 15, 221, 11,
1075 16, 231, 118, 119, 120, 121, 122, 123, 124, 125,
1076 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
1077 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
1078 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
1079 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
1080 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
1081 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
1082 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
1083 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
1084 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
1085 222, 223, 224, 225, 226, 232, 233, 234, 235, 12,
1086 17, 243, 244, 245, 246, 247, 248, 249, 250, 13,
1090 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1092 #define YYPACT_NINF -80
1093 static const yytype_int16 yypact[] =
1095 -80, 76, -80, -80, -80, -80, -80, -80, -80, -80,
1096 -80, -80, -80, -80, -12, 40, 46, 32, -79, 16,
1097 17, 18, 22, 23, 24, 68, 71, 72, 105, 108,
1098 109, 118, 119, 120, 121, 122, 123, 124, 125, 126,
1099 127, 128, 130, 131, 132, 133, 134, 135, 136, 137,
1100 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
1101 148, 149, 150, 151, 152, 153, 155, 156, 158, 159,
1102 160, 161, 163, 164, 165, 166, 167, 168, 170, 171,
1103 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
1104 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
1105 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
1106 202, 203, 204, 205, 206, 207, 208, -80, -80, -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,
1113 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1114 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1115 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1116 -80, -80, -80, -80, -80, -80, 209, 210, 211, 212,
1117 213, -80, -80, -80, -80, -80, -80, 214, 215, 216,
1118 217, -80, -80, -80, -80, -80, 218, 219, 220, 221,
1119 222, 223, 224, -80, -80, -80, -80, -80, -80, -80,
1120 -80, 225, -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, 226, 227, -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 /* YYPGOTO[NTERM-NUM]. */
1136 static const yytype_int8 yypgoto[] =
1138 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1139 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1140 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1141 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1142 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1143 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1144 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1145 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1146 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1147 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1148 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1149 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1150 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1154 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
1155 positive, shift that token. If negative, reduce the rule which
1156 number is the opposite. If YYTABLE_NINF, syntax error. */
1157 #define YYTABLE_NINF -1
1158 static const yytype_uint16 yytable[] =
1160 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1161 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1162 39, 40, 41, 42, 43, 251, 254, 255, 256, 44,
1163 45, 46, 257, 258, 259, 47, 48, 49, 50, 51,
1164 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1165 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1166 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1167 82, 83, 84, 85, 86, 87, 2, 216, 260, 217,
1168 218, 261, 262, 227, 88, 89, 90, 3, 91, 92,
1169 93, 228, 229, 94, 95, 96, 97, 98, 99, 100,
1170 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1171 111, 112, 113, 114, 4, 263, 115, 116, 264, 265,
1172 5, 236, 237, 238, 239, 240, 241, 242, 266, 267,
1173 268, 269, 270, 271, 272, 273, 274, 275, 276, 219,
1174 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
1175 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
1176 297, 298, 299, 300, 6, 301, 302, 220, 303, 304,
1177 305, 306, 230, 307, 308, 309, 310, 311, 312, 7,
1178 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
1179 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
1180 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
1181 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
1182 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
1183 363, 364, 365, 366, 367, 368, 369, 370
1186 #define yypact_value_is_default(yystate) \
1187 ((yystate) == (-80))
1189 #define yytable_value_is_error(yytable_value) \
1192 static const yytype_uint8 yycheck[] =
1194 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1195 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1196 32, 33, 34, 35, 36, 104, 10, 10, 10, 41,
1197 42, 43, 10, 10, 10, 47, 48, 49, 50, 51,
1198 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1199 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1200 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1201 82, 83, 84, 85, 86, 87, 0, 37, 10, 39,
1202 40, 10, 10, 37, 96, 97, 98, 11, 100, 101,
1203 102, 45, 46, 105, 106, 107, 108, 109, 110, 111,
1204 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
1205 122, 123, 124, 125, 38, 10, 128, 129, 10, 10,
1206 44, 89, 90, 91, 92, 93, 94, 95, 10, 10,
1207 10, 10, 10, 10, 10, 10, 10, 10, 10, 99,
1208 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1209 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1210 10, 10, 10, 10, 88, 10, 10, 127, 10, 10,
1211 10, 10, 126, 10, 10, 10, 10, 10, 10, 103,
1212 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1213 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1214 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1215 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1216 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1217 10, 10, 10, 10, 10, 10, 10, 10
1220 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1221 symbol of state STATE-NUM. */
1222 static const yytype_uint16 yystos[] =
1224 0, 131, 0, 11, 38, 44, 88, 103, 132, 133,
1225 136, 139, 249, 259, 134, 137, 140, 250, 260, 12,
1226 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1227 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1228 33, 34, 35, 36, 41, 42, 43, 47, 48, 49,
1229 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1230 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1231 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1232 80, 81, 82, 83, 84, 85, 86, 87, 96, 97,
1233 98, 100, 101, 102, 105, 106, 107, 108, 109, 110,
1234 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
1235 121, 122, 123, 124, 125, 128, 129, 135, 142, 143,
1236 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
1237 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
1238 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
1239 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
1240 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
1241 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
1242 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
1243 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
1244 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
1245 234, 235, 236, 237, 238, 239, 37, 39, 40, 99,
1246 127, 138, 240, 241, 242, 243, 244, 37, 45, 46,
1247 126, 141, 245, 246, 247, 248, 89, 90, 91, 92,
1248 93, 94, 95, 251, 252, 253, 254, 255, 256, 257,
1249 258, 104, 261, 262, 10, 10, 10, 10, 10, 10,
1250 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1251 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1252 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1253 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1254 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1255 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1256 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1257 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1258 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1259 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1260 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1264 #define yyerrok (yyerrstatus = 0)
1265 #define yyclearin (yychar = YYEMPTY)
1266 #define YYEMPTY (-2)
1269 #define YYACCEPT goto yyacceptlab
1270 #define YYABORT goto yyabortlab
1271 #define YYERROR goto yyerrorlab
1274 /* Like YYERROR except do call yyerror. This remains here temporarily
1275 to ease the transition to the new meaning of YYERROR, for GCC.
1276 Once GCC version 2 has supplanted version 1, this can go. However,
1277 YYFAIL appears to be in use. Nevertheless, it is formally deprecated
1278 in Bison 2.4.2's NEWS entry, where a plan to phase it out is
1281 #define YYFAIL goto yyerrlab
1283 /* This is here to suppress warnings from the GCC cpp's
1284 -Wunused-macros. Normally we don't worry about that warning, but
1285 some users do, and we want to make it easy for users to remove
1286 YYFAIL uses, which will produce warnings from Bison 2.5. */
1289 #define YYRECOVERING() (!!yyerrstatus)
1291 #define YYBACKUP(Token, Value) \
1293 if (yychar == YYEMPTY) \
1297 YYPOPSTACK (yylen); \
1303 yyerror (YY_("syntax error: cannot back up")); \
1310 #define YYERRCODE 256
1312 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
1313 If N is 0, then set CURRENT to the empty location which ends
1314 the previous symbol: RHS[0] (always defined). */
1316 #ifndef YYLLOC_DEFAULT
1317 # define YYLLOC_DEFAULT(Current, Rhs, N) \
1321 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
1322 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
1323 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
1324 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
1328 (Current).first_line = (Current).last_line = \
1329 YYRHSLOC (Rhs, 0).last_line; \
1330 (Current).first_column = (Current).last_column = \
1331 YYRHSLOC (Rhs, 0).last_column; \
1336 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
1340 /* This macro is provided for backward compatibility. */
1342 #ifndef YY_LOCATION_PRINT
1343 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1347 /* YYLEX -- calling `yylex' with the right arguments. */
1350 # define YYLEX yylex (YYLEX_PARAM)
1352 # define YYLEX yylex ()
1355 /* Enable debugging if requested. */
1359 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1360 # define YYFPRINTF fprintf
1363 # define YYDPRINTF(Args) \
1369 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
1373 YYFPRINTF (stderr, "%s ", Title); \
1374 yy_symbol_print (stderr, \
1376 YYFPRINTF (stderr, "\n"); \
1381 /*--------------------------------.
1382 | Print this symbol on YYOUTPUT. |
1383 `--------------------------------*/
1386 #if (defined __STDC__ || defined __C99__FUNC__ \
1387 || defined __cplusplus || defined _MSC_VER)
1389 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1392 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
1395 YYSTYPE const * const yyvaluep;
1398 FILE *yyo = yyoutput;
1403 if (yytype < YYNTOKENS)
1404 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1416 /*--------------------------------.
1417 | Print this symbol on YYOUTPUT. |
1418 `--------------------------------*/
1420 #if (defined __STDC__ || defined __C99__FUNC__ \
1421 || defined __cplusplus || defined _MSC_VER)
1423 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1426 yy_symbol_print (yyoutput, yytype, yyvaluep)
1429 YYSTYPE const * const yyvaluep;
1432 if (yytype < YYNTOKENS)
1433 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1435 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
1437 yy_symbol_value_print (yyoutput, yytype, yyvaluep);
1438 YYFPRINTF (yyoutput, ")");
1441 /*------------------------------------------------------------------.
1442 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
1444 `------------------------------------------------------------------*/
1446 #if (defined __STDC__ || defined __C99__FUNC__ \
1447 || defined __cplusplus || defined _MSC_VER)
1449 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
1452 yy_stack_print (yybottom, yytop)
1453 yytype_int16 *yybottom;
1454 yytype_int16 *yytop;
1457 YYFPRINTF (stderr, "Stack now");
1458 for (; yybottom <= yytop; yybottom++)
1460 int yybot = *yybottom;
1461 YYFPRINTF (stderr, " %d", yybot);
1463 YYFPRINTF (stderr, "\n");
1466 # define YY_STACK_PRINT(Bottom, Top) \
1469 yy_stack_print ((Bottom), (Top)); \
1473 /*------------------------------------------------.
1474 | Report that the YYRULE is going to be reduced. |
1475 `------------------------------------------------*/
1477 #if (defined __STDC__ || defined __C99__FUNC__ \
1478 || defined __cplusplus || defined _MSC_VER)
1480 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
1483 yy_reduce_print (yyvsp, yyrule)
1488 int yynrhs = yyr2[yyrule];
1490 unsigned long int yylno = yyrline[yyrule];
1491 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
1493 /* The symbols being reduced. */
1494 for (yyi = 0; yyi < yynrhs; yyi++)
1496 YYFPRINTF (stderr, " $%d = ", yyi + 1);
1497 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
1498 &(yyvsp[(yyi + 1) - (yynrhs)])
1500 YYFPRINTF (stderr, "\n");
1504 # define YY_REDUCE_PRINT(Rule) \
1507 yy_reduce_print (yyvsp, Rule); \
1510 /* Nonzero means print parse trace. It is left uninitialized so that
1511 multiple parsers can coexist. */
1513 #else /* !YYDEBUG */
1514 # define YYDPRINTF(Args)
1515 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1516 # define YY_STACK_PRINT(Bottom, Top)
1517 # define YY_REDUCE_PRINT(Rule)
1518 #endif /* !YYDEBUG */
1521 /* YYINITDEPTH -- initial size of the parser's stacks. */
1523 # define YYINITDEPTH 200
1526 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1527 if the built-in stack extension method is used).
1529 Do not make this value too large; the results are undefined if
1530 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1531 evaluated with infinite-precision integer arithmetic. */
1534 # define YYMAXDEPTH 10000
1541 # if defined __GLIBC__ && defined _STRING_H
1542 # define yystrlen strlen
1544 /* Return the length of YYSTR. */
1545 #if (defined __STDC__ || defined __C99__FUNC__ \
1546 || defined __cplusplus || defined _MSC_VER)
1548 yystrlen (const char *yystr)
1556 for (yylen = 0; yystr[yylen]; yylen++)
1564 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1565 # define yystpcpy stpcpy
1567 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1569 #if (defined __STDC__ || defined __C99__FUNC__ \
1570 || defined __cplusplus || defined _MSC_VER)
1572 yystpcpy (char *yydest, const char *yysrc)
1575 yystpcpy (yydest, yysrc)
1581 const char *yys = yysrc;
1583 while ((*yyd++ = *yys++) != '\0')
1592 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1593 quotes and backslashes, so that it's suitable for yyerror. The
1594 heuristic is that double-quoting is unnecessary unless the string
1595 contains an apostrophe, a comma, or backslash (other than
1596 backslash-backslash). YYSTR is taken from yytname. If YYRES is
1597 null, do not copy; instead, return the length of what the result
1600 yytnamerr (char *yyres, const char *yystr)
1605 char const *yyp = yystr;
1612 goto do_not_strip_quotes;
1616 goto do_not_strip_quotes;
1629 do_not_strip_quotes: ;
1633 return yystrlen (yystr);
1635 return yystpcpy (yyres, yystr) - yyres;
1639 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
1640 about the unexpected token YYTOKEN for the state stack whose top is
1643 Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
1644 not large enough to hold the message. In that case, also set
1645 *YYMSG_ALLOC to the required number of bytes. Return 2 if the
1646 required number of bytes is too large to store. */
1648 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
1649 yytype_int16 *yyssp, int yytoken)
1651 YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
1652 YYSIZE_T yysize = yysize0;
1654 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1655 /* Internationalized format string. */
1656 const char *yyformat = YY_NULL;
1657 /* Arguments of yyformat. */
1658 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1659 /* Number of reported tokens (one for the "unexpected", one per
1663 /* There are many possibilities here to consider:
1664 - Assume YYFAIL is not used. It's too flawed to consider. See
1665 <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
1666 for details. YYERROR is fine as it does not invoke this
1668 - If this state is a consistent state with a default action, then
1669 the only way this function was invoked is if the default action
1670 is an error action. In that case, don't check for expected
1671 tokens because there are none.
1672 - The only way there can be no lookahead present (in yychar) is if
1673 this state is a consistent state with a default action. Thus,
1674 detecting the absence of a lookahead is sufficient to determine
1675 that there is no unexpected or expected token to report. In that
1676 case, just report a simple "syntax error".
1677 - Don't assume there isn't a lookahead just because this state is a
1678 consistent state with a default action. There might have been a
1679 previous inconsistent state, consistent state with a non-default
1680 action, or user semantic action that manipulated yychar.
1681 - Of course, the expected token list depends on states to have
1682 correct lookahead information, and it depends on the parser not
1683 to perform extra reductions after fetching a lookahead from the
1684 scanner and before detecting a syntax error. Thus, state merging
1685 (from LALR or IELR) and default reductions corrupt the expected
1686 token list. However, the list is correct for canonical LR with
1687 one exception: it will still contain any token that will not be
1688 accepted due to an error action in a later state.
1690 if (yytoken != YYEMPTY)
1692 int yyn = yypact[*yyssp];
1693 yyarg[yycount++] = yytname[yytoken];
1694 if (!yypact_value_is_default (yyn))
1696 /* Start YYX at -YYN if negative to avoid negative indexes in
1697 YYCHECK. In other words, skip the first -YYN actions for
1698 this state because they are default actions. */
1699 int yyxbegin = yyn < 0 ? -yyn : 0;
1700 /* Stay within bounds of both yycheck and yytname. */
1701 int yychecklim = YYLAST - yyn + 1;
1702 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1705 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1706 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
1707 && !yytable_value_is_error (yytable[yyx + yyn]))
1709 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1715 yyarg[yycount++] = yytname[yyx];
1716 yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
1717 if (! (yysize <= yysize1
1718 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1727 # define YYCASE_(N, S) \
1731 YYCASE_(0, YY_("syntax error"));
1732 YYCASE_(1, YY_("syntax error, unexpected %s"));
1733 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
1734 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
1735 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
1736 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1740 yysize1 = yysize + yystrlen (yyformat);
1741 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1745 if (*yymsg_alloc < yysize)
1747 *yymsg_alloc = 2 * yysize;
1748 if (! (yysize <= *yymsg_alloc
1749 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
1750 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
1754 /* Avoid sprintf, as that infringes on the user's name space.
1755 Don't have undefined behavior even if the translation
1756 produced a string with the wrong number of "%s"s. */
1760 while ((*yyp = *yyformat) != '\0')
1761 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
1763 yyp += yytnamerr (yyp, yyarg[yyi++]);
1774 #endif /* YYERROR_VERBOSE */
1776 /*-----------------------------------------------.
1777 | Release the memory associated to this symbol. |
1778 `-----------------------------------------------*/
1781 #if (defined __STDC__ || defined __C99__FUNC__ \
1782 || defined __cplusplus || defined _MSC_VER)
1784 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
1787 yydestruct (yymsg, yytype, yyvaluep)
1797 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1810 /* The lookahead symbol. */
1813 /* The semantic value of the lookahead symbol. */
1816 /* Number of syntax errors so far. */
1824 #ifdef YYPARSE_PARAM
1825 #if (defined __STDC__ || defined __C99__FUNC__ \
1826 || defined __cplusplus || defined _MSC_VER)
1828 yyparse (void *YYPARSE_PARAM)
1831 yyparse (YYPARSE_PARAM)
1832 void *YYPARSE_PARAM;
1834 #else /* ! YYPARSE_PARAM */
1835 #if (defined __STDC__ || defined __C99__FUNC__ \
1836 || defined __cplusplus || defined _MSC_VER)
1847 /* Number of tokens to shift before error messages enabled. */
1850 /* The stacks and their tools:
1851 `yyss': related to states.
1852 `yyvs': related to semantic values.
1854 Refer to the stacks through separate pointers, to allow yyoverflow
1855 to reallocate them elsewhere. */
1857 /* The state stack. */
1858 yytype_int16 yyssa[YYINITDEPTH];
1860 yytype_int16 *yyssp;
1862 /* The semantic value stack. */
1863 YYSTYPE yyvsa[YYINITDEPTH];
1867 YYSIZE_T yystacksize;
1871 /* Lookahead token as an internal (translated) token number. */
1873 /* The variables used to return semantic value and location from the
1878 /* Buffer for error messages, and its allocated size. */
1880 char *yymsg = yymsgbuf;
1881 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
1884 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
1886 /* The number of symbols on the RHS of the reduced rule.
1887 Keep to zero when no symbol should be popped. */
1893 yystacksize = YYINITDEPTH;
1895 YYDPRINTF ((stderr, "Starting parse\n"));
1900 yychar = YYEMPTY; /* Cause a token to be read. */
1902 /* Initialize stack pointers.
1903 Waste one element of value and location stack
1904 so that they stay on the same level as the state stack.
1905 The wasted elements are never initialized. */
1910 /*------------------------------------------------------------.
1911 | yynewstate -- Push a new state, which is found in yystate. |
1912 `------------------------------------------------------------*/
1914 /* In all cases, when you get here, the value and location stacks
1915 have just been pushed. So pushing a state here evens the stacks. */
1921 if (yyss + yystacksize - 1 <= yyssp)
1923 /* Get the current used size of the three stacks, in elements. */
1924 YYSIZE_T yysize = yyssp - yyss + 1;
1928 /* Give user a chance to reallocate the stack. Use copies of
1929 these so that the &'s don't force the real ones into
1931 YYSTYPE *yyvs1 = yyvs;
1932 yytype_int16 *yyss1 = yyss;
1934 /* Each stack pointer address is followed by the size of the
1935 data in use in that stack, in bytes. This used to be a
1936 conditional around just the two extra args, but that might
1937 be undefined if yyoverflow is a macro. */
1938 yyoverflow (YY_("memory exhausted"),
1939 &yyss1, yysize * sizeof (*yyssp),
1940 &yyvs1, yysize * sizeof (*yyvsp),
1946 #else /* no yyoverflow */
1947 # ifndef YYSTACK_RELOCATE
1948 goto yyexhaustedlab;
1950 /* Extend the stack our own way. */
1951 if (YYMAXDEPTH <= yystacksize)
1952 goto yyexhaustedlab;
1954 if (YYMAXDEPTH < yystacksize)
1955 yystacksize = YYMAXDEPTH;
1958 yytype_int16 *yyss1 = yyss;
1959 union yyalloc *yyptr =
1960 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1962 goto yyexhaustedlab;
1963 YYSTACK_RELOCATE (yyss_alloc, yyss);
1964 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1965 # undef YYSTACK_RELOCATE
1967 YYSTACK_FREE (yyss1);
1970 #endif /* no yyoverflow */
1972 yyssp = yyss + yysize - 1;
1973 yyvsp = yyvs + yysize - 1;
1975 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1976 (unsigned long int) yystacksize));
1978 if (yyss + yystacksize - 1 <= yyssp)
1982 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1984 if (yystate == YYFINAL)
1994 /* Do appropriate processing given the current state. Read a
1995 lookahead token if we need one and don't already have one. */
1997 /* First try to decide what to do without reference to lookahead token. */
1998 yyn = yypact[yystate];
1999 if (yypact_value_is_default (yyn))
2002 /* Not known => get a lookahead token if don't already have one. */
2004 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
2005 if (yychar == YYEMPTY)
2007 YYDPRINTF ((stderr, "Reading a token: "));
2011 if (yychar <= YYEOF)
2013 yychar = yytoken = YYEOF;
2014 YYDPRINTF ((stderr, "Now at end of input.\n"));
2018 yytoken = YYTRANSLATE (yychar);
2019 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
2022 /* If the proper action on seeing token YYTOKEN is to reduce or to
2023 detect an error, take that action. */
2025 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2030 if (yytable_value_is_error (yyn))
2036 /* Count tokens shifted since error; after three, turn off error
2041 /* Shift the lookahead token. */
2042 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
2044 /* Discard the shifted token. */
2053 /*-----------------------------------------------------------.
2054 | yydefault -- do the default action for the current state. |
2055 `-----------------------------------------------------------*/
2057 yyn = yydefact[yystate];
2063 /*-----------------------------.
2064 | yyreduce -- Do a reduction. |
2065 `-----------------------------*/
2067 /* yyn is the number of a rule to reduce with. */
2070 /* If YYLEN is nonzero, implement the default value of the action:
2073 Otherwise, the following line sets YYVAL to garbage.
2074 This behavior is undocumented and Bison
2075 users should not rely upon it. Assigning to YYVAL
2076 unconditionally makes the parser a bit smaller, and it avoids a
2077 GCC warning that YYVAL may be used uninitialized. */
2078 yyval = yyvsp[1-yylen];
2081 YY_REDUCE_PRINT (yyn);
2085 /* Line 1787 of yacc.c */
2086 #line 118 "util/configparser.y"
2088 OUTYY(("\nP(server:)\n"));
2093 /* Line 1787 of yacc.c */
2094 #line 167 "util/configparser.y"
2096 struct config_stub* s;
2097 OUTYY(("\nP(stub_zone:)\n"));
2098 s = (struct config_stub*)calloc(1, sizeof(struct config_stub));
2100 s->next = cfg_parser->cfg->stubs;
2101 cfg_parser->cfg->stubs = s;
2103 yyerror("out of memory");
2108 /* Line 1787 of yacc.c */
2109 #line 183 "util/configparser.y"
2111 struct config_stub* s;
2112 OUTYY(("\nP(forward_zone:)\n"));
2113 s = (struct config_stub*)calloc(1, sizeof(struct config_stub));
2115 s->next = cfg_parser->cfg->forwards;
2116 cfg_parser->cfg->forwards = s;
2118 yyerror("out of memory");
2123 /* Line 1787 of yacc.c */
2124 #line 199 "util/configparser.y"
2126 OUTYY(("P(server_num_threads:%s)\n", (yyvsp[(2) - (2)].str)));
2127 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
2128 yyerror("number expected");
2129 else cfg_parser->cfg->num_threads = atoi((yyvsp[(2) - (2)].str));
2130 free((yyvsp[(2) - (2)].str));
2135 /* Line 1787 of yacc.c */
2136 #line 208 "util/configparser.y"
2138 OUTYY(("P(server_verbosity:%s)\n", (yyvsp[(2) - (2)].str)));
2139 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
2140 yyerror("number expected");
2141 else cfg_parser->cfg->verbosity = atoi((yyvsp[(2) - (2)].str));
2142 free((yyvsp[(2) - (2)].str));
2147 /* Line 1787 of yacc.c */
2148 #line 217 "util/configparser.y"
2150 OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[(2) - (2)].str)));
2151 if(strcmp((yyvsp[(2) - (2)].str), "") == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0)
2152 cfg_parser->cfg->stat_interval = 0;
2153 else if(atoi((yyvsp[(2) - (2)].str)) == 0)
2154 yyerror("number expected");
2155 else cfg_parser->cfg->stat_interval = atoi((yyvsp[(2) - (2)].str));
2156 free((yyvsp[(2) - (2)].str));
2161 /* Line 1787 of yacc.c */
2162 #line 228 "util/configparser.y"
2164 OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[(2) - (2)].str)));
2165 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2166 yyerror("expected yes or no.");
2167 else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2168 free((yyvsp[(2) - (2)].str));
2173 /* Line 1787 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));
2185 /* Line 1787 of yacc.c */
2186 #line 246 "util/configparser.y"
2188 OUTYY(("P(server_port:%s)\n", (yyvsp[(2) - (2)].str)));
2189 if(atoi((yyvsp[(2) - (2)].str)) == 0)
2190 yyerror("port number expected");
2191 else cfg_parser->cfg->port = atoi((yyvsp[(2) - (2)].str));
2192 free((yyvsp[(2) - (2)].str));
2197 /* Line 1787 of yacc.c */
2198 #line 255 "util/configparser.y"
2200 OUTYY(("P(server_interface:%s)\n", (yyvsp[(2) - (2)].str)));
2201 if(cfg_parser->cfg->num_ifs == 0)
2202 cfg_parser->cfg->ifs = calloc(1, sizeof(char*));
2203 else cfg_parser->cfg->ifs = realloc(cfg_parser->cfg->ifs,
2204 (cfg_parser->cfg->num_ifs+1)*sizeof(char*));
2205 if(!cfg_parser->cfg->ifs)
2206 yyerror("out of memory");
2208 cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[(2) - (2)].str);
2213 /* Line 1787 of yacc.c */
2214 #line 268 "util/configparser.y"
2216 OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[(2) - (2)].str)));
2217 if(cfg_parser->cfg->num_out_ifs == 0)
2218 cfg_parser->cfg->out_ifs = calloc(1, sizeof(char*));
2219 else cfg_parser->cfg->out_ifs = realloc(
2220 cfg_parser->cfg->out_ifs,
2221 (cfg_parser->cfg->num_out_ifs+1)*sizeof(char*));
2222 if(!cfg_parser->cfg->out_ifs)
2223 yyerror("out of memory");
2225 cfg_parser->cfg->out_ifs[
2226 cfg_parser->cfg->num_out_ifs++] = (yyvsp[(2) - (2)].str);
2231 /* Line 1787 of yacc.c */
2232 #line 283 "util/configparser.y"
2234 OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[(2) - (2)].str)));
2235 if(atoi((yyvsp[(2) - (2)].str)) == 0)
2236 yyerror("number expected");
2237 else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[(2) - (2)].str));
2238 free((yyvsp[(2) - (2)].str));
2243 /* Line 1787 of yacc.c */
2244 #line 292 "util/configparser.y"
2246 OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[(2) - (2)].str)));
2247 if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 1,
2248 cfg_parser->cfg->outgoing_avail_ports, 65536))
2249 yyerror("port number or range (\"low-high\") expected");
2250 free((yyvsp[(2) - (2)].str));
2255 /* Line 1787 of yacc.c */
2256 #line 301 "util/configparser.y"
2258 OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[(2) - (2)].str)));
2259 if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 0,
2260 cfg_parser->cfg->outgoing_avail_ports, 65536))
2261 yyerror("port number or range (\"low-high\") expected");
2262 free((yyvsp[(2) - (2)].str));
2267 /* Line 1787 of yacc.c */
2268 #line 310 "util/configparser.y"
2270 OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[(2) - (2)].str)));
2271 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
2272 yyerror("number expected");
2273 else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[(2) - (2)].str));
2274 free((yyvsp[(2) - (2)].str));
2279 /* Line 1787 of yacc.c */
2280 #line 319 "util/configparser.y"
2282 OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[(2) - (2)].str)));
2283 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
2284 yyerror("number expected");
2285 else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[(2) - (2)].str));
2286 free((yyvsp[(2) - (2)].str));
2291 /* Line 1787 of yacc.c */
2292 #line 328 "util/configparser.y"
2294 OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[(2) - (2)].str)));
2295 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2296 yyerror("expected yes or no.");
2297 else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2298 free((yyvsp[(2) - (2)].str));
2303 /* Line 1787 of yacc.c */
2304 #line 337 "util/configparser.y"
2306 OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[(2) - (2)].str)));
2307 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2308 yyerror("expected yes or no.");
2309 else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2310 free((yyvsp[(2) - (2)].str));
2315 /* Line 1787 of yacc.c */
2316 #line 346 "util/configparser.y"
2318 OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[(2) - (2)].str)));
2319 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2320 yyerror("expected yes or no.");
2321 else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2322 free((yyvsp[(2) - (2)].str));
2327 /* Line 1787 of yacc.c */
2328 #line 355 "util/configparser.y"
2330 OUTYY(("P(server_do_udp:%s)\n", (yyvsp[(2) - (2)].str)));
2331 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2332 yyerror("expected yes or no.");
2333 else cfg_parser->cfg->do_udp = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2334 free((yyvsp[(2) - (2)].str));
2339 /* Line 1787 of yacc.c */
2340 #line 364 "util/configparser.y"
2342 OUTYY(("P(server_do_tcp:%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_tcp = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2346 free((yyvsp[(2) - (2)].str));
2351 /* Line 1787 of yacc.c */
2352 #line 373 "util/configparser.y"
2354 OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[(2) - (2)].str)));
2355 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2356 yyerror("expected yes or no.");
2357 else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2358 free((yyvsp[(2) - (2)].str));
2363 /* Line 1787 of yacc.c */
2364 #line 382 "util/configparser.y"
2366 OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[(2) - (2)].str)));
2367 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2368 yyerror("expected yes or no.");
2369 else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2370 free((yyvsp[(2) - (2)].str));
2375 /* Line 1787 of yacc.c */
2376 #line 391 "util/configparser.y"
2378 OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[(2) - (2)].str)));
2379 free(cfg_parser->cfg->ssl_service_key);
2380 cfg_parser->cfg->ssl_service_key = (yyvsp[(2) - (2)].str);
2385 /* Line 1787 of yacc.c */
2386 #line 398 "util/configparser.y"
2388 OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[(2) - (2)].str)));
2389 free(cfg_parser->cfg->ssl_service_pem);
2390 cfg_parser->cfg->ssl_service_pem = (yyvsp[(2) - (2)].str);
2395 /* Line 1787 of yacc.c */
2396 #line 405 "util/configparser.y"
2398 OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[(2) - (2)].str)));
2399 if(atoi((yyvsp[(2) - (2)].str)) == 0)
2400 yyerror("port number expected");
2401 else cfg_parser->cfg->ssl_port = atoi((yyvsp[(2) - (2)].str));
2402 free((yyvsp[(2) - (2)].str));
2407 /* Line 1787 of yacc.c */
2408 #line 414 "util/configparser.y"
2410 OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[(2) - (2)].str)));
2411 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2412 yyerror("expected yes or no.");
2413 else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2414 free((yyvsp[(2) - (2)].str));
2419 /* Line 1787 of yacc.c */
2420 #line 423 "util/configparser.y"
2422 OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[(2) - (2)].str)));
2423 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2424 yyerror("expected yes or no.");
2425 else cfg_parser->cfg->use_syslog = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2426 #if !defined(HAVE_SYSLOG_H) && !defined(UB_ON_WINDOWS)
2427 if(strcmp((yyvsp[(2) - (2)].str), "yes") == 0)
2428 yyerror("no syslog services are available. "
2429 "(reconfigure and compile to add)");
2431 free((yyvsp[(2) - (2)].str));
2436 /* Line 1787 of yacc.c */
2437 #line 437 "util/configparser.y"
2439 OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[(2) - (2)].str)));
2440 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2441 yyerror("expected yes or no.");
2442 else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2443 free((yyvsp[(2) - (2)].str));
2448 /* Line 1787 of yacc.c */
2449 #line 446 "util/configparser.y"
2451 OUTYY(("P(server_log_queries:%s)\n", (yyvsp[(2) - (2)].str)));
2452 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2453 yyerror("expected yes or no.");
2454 else cfg_parser->cfg->log_queries = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2455 free((yyvsp[(2) - (2)].str));
2460 /* Line 1787 of yacc.c */
2461 #line 455 "util/configparser.y"
2463 OUTYY(("P(server_chroot:%s)\n", (yyvsp[(2) - (2)].str)));
2464 free(cfg_parser->cfg->chrootdir);
2465 cfg_parser->cfg->chrootdir = (yyvsp[(2) - (2)].str);
2470 /* Line 1787 of yacc.c */
2471 #line 462 "util/configparser.y"
2473 OUTYY(("P(server_username:%s)\n", (yyvsp[(2) - (2)].str)));
2474 free(cfg_parser->cfg->username);
2475 cfg_parser->cfg->username = (yyvsp[(2) - (2)].str);
2480 /* Line 1787 of yacc.c */
2481 #line 469 "util/configparser.y"
2483 OUTYY(("P(server_directory:%s)\n", (yyvsp[(2) - (2)].str)));
2484 free(cfg_parser->cfg->directory);
2485 cfg_parser->cfg->directory = (yyvsp[(2) - (2)].str);
2490 /* Line 1787 of yacc.c */
2491 #line 476 "util/configparser.y"
2493 OUTYY(("P(server_logfile:%s)\n", (yyvsp[(2) - (2)].str)));
2494 free(cfg_parser->cfg->logfile);
2495 cfg_parser->cfg->logfile = (yyvsp[(2) - (2)].str);
2496 cfg_parser->cfg->use_syslog = 0;
2501 /* Line 1787 of yacc.c */
2502 #line 484 "util/configparser.y"
2504 OUTYY(("P(server_pidfile:%s)\n", (yyvsp[(2) - (2)].str)));
2505 free(cfg_parser->cfg->pidfile);
2506 cfg_parser->cfg->pidfile = (yyvsp[(2) - (2)].str);
2511 /* Line 1787 of yacc.c */
2512 #line 491 "util/configparser.y"
2514 OUTYY(("P(server_root_hints:%s)\n", (yyvsp[(2) - (2)].str)));
2515 if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[(2) - (2)].str)))
2516 yyerror("out of memory");
2521 /* Line 1787 of yacc.c */
2522 #line 498 "util/configparser.y"
2524 OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[(2) - (2)].str)));
2525 free(cfg_parser->cfg->dlv_anchor_file);
2526 cfg_parser->cfg->dlv_anchor_file = (yyvsp[(2) - (2)].str);
2531 /* Line 1787 of yacc.c */
2532 #line 505 "util/configparser.y"
2534 OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[(2) - (2)].str)));
2535 if(!cfg_strlist_insert(&cfg_parser->cfg->dlv_anchor_list, (yyvsp[(2) - (2)].str)))
2536 yyerror("out of memory");
2541 /* Line 1787 of yacc.c */
2542 #line 512 "util/configparser.y"
2544 OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str)));
2545 if(!cfg_strlist_insert(&cfg_parser->cfg->
2546 auto_trust_anchor_file_list, (yyvsp[(2) - (2)].str)))
2547 yyerror("out of memory");
2552 /* Line 1787 of yacc.c */
2553 #line 520 "util/configparser.y"
2555 OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str)));
2556 if(!cfg_strlist_insert(&cfg_parser->cfg->
2557 trust_anchor_file_list, (yyvsp[(2) - (2)].str)))
2558 yyerror("out of memory");
2563 /* Line 1787 of yacc.c */
2564 #line 528 "util/configparser.y"
2566 OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[(2) - (2)].str)));
2567 if(!cfg_strlist_insert(&cfg_parser->cfg->
2568 trusted_keys_file_list, (yyvsp[(2) - (2)].str)))
2569 yyerror("out of memory");
2574 /* Line 1787 of yacc.c */
2575 #line 536 "util/configparser.y"
2577 OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[(2) - (2)].str)));
2578 if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[(2) - (2)].str)))
2579 yyerror("out of memory");
2584 /* Line 1787 of yacc.c */
2585 #line 543 "util/configparser.y"
2587 OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[(2) - (2)].str)));
2588 if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[(2) - (2)].str)))
2589 yyerror("out of memory");
2594 /* Line 1787 of yacc.c */
2595 #line 550 "util/configparser.y"
2597 OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[(2) - (2)].str)));
2598 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2599 yyerror("expected yes or no.");
2600 else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2601 free((yyvsp[(2) - (2)].str));
2606 /* Line 1787 of yacc.c */
2607 #line 559 "util/configparser.y"
2609 OUTYY(("P(server_hide_version:%s)\n", (yyvsp[(2) - (2)].str)));
2610 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2611 yyerror("expected yes or no.");
2612 else cfg_parser->cfg->hide_version = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2613 free((yyvsp[(2) - (2)].str));
2618 /* Line 1787 of yacc.c */
2619 #line 568 "util/configparser.y"
2621 OUTYY(("P(server_identity:%s)\n", (yyvsp[(2) - (2)].str)));
2622 free(cfg_parser->cfg->identity);
2623 cfg_parser->cfg->identity = (yyvsp[(2) - (2)].str);
2628 /* Line 1787 of yacc.c */
2629 #line 575 "util/configparser.y"
2631 OUTYY(("P(server_version:%s)\n", (yyvsp[(2) - (2)].str)));
2632 free(cfg_parser->cfg->version);
2633 cfg_parser->cfg->version = (yyvsp[(2) - (2)].str);
2638 /* Line 1787 of yacc.c */
2639 #line 582 "util/configparser.y"
2641 OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[(2) - (2)].str)));
2642 if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->so_rcvbuf))
2643 yyerror("buffer size expected");
2644 free((yyvsp[(2) - (2)].str));
2649 /* Line 1787 of yacc.c */
2650 #line 590 "util/configparser.y"
2652 OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[(2) - (2)].str)));
2653 if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->so_sndbuf))
2654 yyerror("buffer size expected");
2655 free((yyvsp[(2) - (2)].str));
2660 /* Line 1787 of yacc.c */
2661 #line 598 "util/configparser.y"
2663 OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[(2) - (2)].str)));
2664 if(atoi((yyvsp[(2) - (2)].str)) == 0)
2665 yyerror("number expected");
2666 else if (atoi((yyvsp[(2) - (2)].str)) < 12)
2667 yyerror("edns buffer size too small");
2668 else if (atoi((yyvsp[(2) - (2)].str)) > 65535)
2669 cfg_parser->cfg->edns_buffer_size = 65535;
2670 else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[(2) - (2)].str));
2671 free((yyvsp[(2) - (2)].str));
2676 /* Line 1787 of yacc.c */
2677 #line 611 "util/configparser.y"
2679 OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[(2) - (2)].str)));
2680 if(atoi((yyvsp[(2) - (2)].str)) == 0)
2681 yyerror("number expected");
2682 else if (atoi((yyvsp[(2) - (2)].str)) < 4096)
2683 yyerror("message buffer size too small (use 4096)");
2684 else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[(2) - (2)].str));
2685 free((yyvsp[(2) - (2)].str));
2690 /* Line 1787 of yacc.c */
2691 #line 622 "util/configparser.y"
2693 OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[(2) - (2)].str)));
2694 if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->msg_cache_size))
2695 yyerror("memory size expected");
2696 free((yyvsp[(2) - (2)].str));
2701 /* Line 1787 of yacc.c */
2702 #line 630 "util/configparser.y"
2704 OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
2705 if(atoi((yyvsp[(2) - (2)].str)) == 0)
2706 yyerror("number expected");
2708 cfg_parser->cfg->msg_cache_slabs = atoi((yyvsp[(2) - (2)].str));
2709 if(!is_pow2(cfg_parser->cfg->msg_cache_slabs))
2710 yyerror("must be a power of 2");
2712 free((yyvsp[(2) - (2)].str));
2717 /* Line 1787 of yacc.c */
2718 #line 643 "util/configparser.y"
2720 OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[(2) - (2)].str)));
2721 if(atoi((yyvsp[(2) - (2)].str)) == 0)
2722 yyerror("number expected");
2723 else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[(2) - (2)].str));
2724 free((yyvsp[(2) - (2)].str));
2729 /* Line 1787 of yacc.c */
2730 #line 652 "util/configparser.y"
2732 OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[(2) - (2)].str)));
2733 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
2734 yyerror("number expected");
2735 else cfg_parser->cfg->jostle_time = atoi((yyvsp[(2) - (2)].str));
2736 free((yyvsp[(2) - (2)].str));
2741 /* Line 1787 of yacc.c */
2742 #line 661 "util/configparser.y"
2744 OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[(2) - (2)].str)));
2745 if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->rrset_cache_size))
2746 yyerror("memory size expected");
2747 free((yyvsp[(2) - (2)].str));
2752 /* Line 1787 of yacc.c */
2753 #line 669 "util/configparser.y"
2755 OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
2756 if(atoi((yyvsp[(2) - (2)].str)) == 0)
2757 yyerror("number expected");
2759 cfg_parser->cfg->rrset_cache_slabs = atoi((yyvsp[(2) - (2)].str));
2760 if(!is_pow2(cfg_parser->cfg->rrset_cache_slabs))
2761 yyerror("must be a power of 2");
2763 free((yyvsp[(2) - (2)].str));
2768 /* Line 1787 of yacc.c */
2769 #line 682 "util/configparser.y"
2771 OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
2772 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
2773 yyerror("number expected");
2774 else cfg_parser->cfg->host_ttl = atoi((yyvsp[(2) - (2)].str));
2775 free((yyvsp[(2) - (2)].str));
2780 /* Line 1787 of yacc.c */
2781 #line 691 "util/configparser.y"
2783 OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
2784 verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option "
2785 "removed, use infra-host-ttl)", (yyvsp[(2) - (2)].str));
2786 free((yyvsp[(2) - (2)].str));
2791 /* Line 1787 of yacc.c */
2792 #line 699 "util/configparser.y"
2794 OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[(2) - (2)].str)));
2795 if(atoi((yyvsp[(2) - (2)].str)) == 0)
2796 yyerror("number expected");
2797 else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[(2) - (2)].str));
2798 free((yyvsp[(2) - (2)].str));
2803 /* Line 1787 of yacc.c */
2804 #line 708 "util/configparser.y"
2806 OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[(2) - (2)].str)));
2807 verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s "
2808 "(option removed, use infra-cache-numhosts)", (yyvsp[(2) - (2)].str));
2809 free((yyvsp[(2) - (2)].str));
2814 /* Line 1787 of yacc.c */
2815 #line 716 "util/configparser.y"
2817 OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
2818 if(atoi((yyvsp[(2) - (2)].str)) == 0)
2819 yyerror("number expected");
2821 cfg_parser->cfg->infra_cache_slabs = atoi((yyvsp[(2) - (2)].str));
2822 if(!is_pow2(cfg_parser->cfg->infra_cache_slabs))
2823 yyerror("must be a power of 2");
2825 free((yyvsp[(2) - (2)].str));
2830 /* Line 1787 of yacc.c */
2831 #line 729 "util/configparser.y"
2833 OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[(2) - (2)].str)));
2834 free(cfg_parser->cfg->target_fetch_policy);
2835 cfg_parser->cfg->target_fetch_policy = (yyvsp[(2) - (2)].str);
2840 /* Line 1787 of yacc.c */
2841 #line 736 "util/configparser.y"
2843 OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[(2) - (2)].str)));
2844 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2845 yyerror("expected yes or no.");
2846 else cfg_parser->cfg->harden_short_bufsize =
2847 (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2848 free((yyvsp[(2) - (2)].str));
2853 /* Line 1787 of yacc.c */
2854 #line 746 "util/configparser.y"
2856 OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[(2) - (2)].str)));
2857 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2858 yyerror("expected yes or no.");
2859 else cfg_parser->cfg->harden_large_queries =
2860 (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2861 free((yyvsp[(2) - (2)].str));
2866 /* Line 1787 of yacc.c */
2867 #line 756 "util/configparser.y"
2869 OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[(2) - (2)].str)));
2870 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2871 yyerror("expected yes or no.");
2872 else cfg_parser->cfg->harden_glue =
2873 (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2874 free((yyvsp[(2) - (2)].str));
2879 /* Line 1787 of yacc.c */
2880 #line 766 "util/configparser.y"
2882 OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[(2) - (2)].str)));
2883 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2884 yyerror("expected yes or no.");
2885 else cfg_parser->cfg->harden_dnssec_stripped =
2886 (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2887 free((yyvsp[(2) - (2)].str));
2892 /* Line 1787 of yacc.c */
2893 #line 776 "util/configparser.y"
2895 OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[(2) - (2)].str)));
2896 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2897 yyerror("expected yes or no.");
2898 else cfg_parser->cfg->harden_below_nxdomain =
2899 (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2900 free((yyvsp[(2) - (2)].str));
2905 /* Line 1787 of yacc.c */
2906 #line 786 "util/configparser.y"
2908 OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[(2) - (2)].str)));
2909 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2910 yyerror("expected yes or no.");
2911 else cfg_parser->cfg->harden_referral_path =
2912 (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2913 free((yyvsp[(2) - (2)].str));
2918 /* Line 1787 of yacc.c */
2919 #line 796 "util/configparser.y"
2921 OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[(2) - (2)].str)));
2922 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2923 yyerror("expected yes or no.");
2924 else cfg_parser->cfg->use_caps_bits_for_id =
2925 (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2926 free((yyvsp[(2) - (2)].str));
2931 /* Line 1787 of yacc.c */
2932 #line 806 "util/configparser.y"
2934 OUTYY(("P(server_private_address:%s)\n", (yyvsp[(2) - (2)].str)));
2935 if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[(2) - (2)].str)))
2936 yyerror("out of memory");
2941 /* Line 1787 of yacc.c */
2942 #line 813 "util/configparser.y"
2944 OUTYY(("P(server_private_domain:%s)\n", (yyvsp[(2) - (2)].str)));
2945 if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[(2) - (2)].str)))
2946 yyerror("out of memory");
2951 /* Line 1787 of yacc.c */
2952 #line 820 "util/configparser.y"
2954 OUTYY(("P(server_prefetch:%s)\n", (yyvsp[(2) - (2)].str)));
2955 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2956 yyerror("expected yes or no.");
2957 else cfg_parser->cfg->prefetch = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2958 free((yyvsp[(2) - (2)].str));
2963 /* Line 1787 of yacc.c */
2964 #line 829 "util/configparser.y"
2966 OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[(2) - (2)].str)));
2967 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2968 yyerror("expected yes or no.");
2969 else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2970 free((yyvsp[(2) - (2)].str));
2975 /* Line 1787 of yacc.c */
2976 #line 838 "util/configparser.y"
2978 OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[(2) - (2)].str)));
2979 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
2980 yyerror("number expected");
2981 else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[(2) - (2)].str));
2982 free((yyvsp[(2) - (2)].str));
2987 /* Line 1787 of yacc.c */
2988 #line 847 "util/configparser.y"
2990 OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[(2) - (2)].str)));
2991 if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[(2) - (2)].str)))
2992 yyerror("out of memory");
2997 /* Line 1787 of yacc.c */
2998 #line 854 "util/configparser.y"
3000 OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[(2) - (2)].str)));
3001 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
3002 yyerror("expected yes or no.");
3003 else cfg_parser->cfg->donotquery_localhost =
3004 (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
3005 free((yyvsp[(2) - (2)].str));
3010 /* Line 1787 of yacc.c */
3011 #line 864 "util/configparser.y"
3013 OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)));
3014 if(strcmp((yyvsp[(3) - (3)].str), "deny")!=0 && strcmp((yyvsp[(3) - (3)].str), "refuse")!=0 &&
3015 strcmp((yyvsp[(3) - (3)].str), "allow")!=0 &&
3016 strcmp((yyvsp[(3) - (3)].str), "allow_snoop")!=0) {
3017 yyerror("expected deny, refuse, allow or allow_snoop "
3018 "in access control action");
3020 if(!cfg_str2list_insert(&cfg_parser->cfg->acls, (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)))
3021 fatal_exit("out of memory adding acl");
3027 /* Line 1787 of yacc.c */
3028 #line 878 "util/configparser.y"
3030 OUTYY(("P(server_module_conf:%s)\n", (yyvsp[(2) - (2)].str)));
3031 free(cfg_parser->cfg->module_conf);
3032 cfg_parser->cfg->module_conf = (yyvsp[(2) - (2)].str);
3037 /* Line 1787 of yacc.c */
3038 #line 885 "util/configparser.y"
3040 OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[(2) - (2)].str)));
3041 if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) {
3042 cfg_parser->cfg->val_date_override = 0;
3043 } else if(strlen((yyvsp[(2) - (2)].str)) == 14) {
3044 cfg_parser->cfg->val_date_override =
3045 cfg_convert_timeval((yyvsp[(2) - (2)].str));
3046 if(!cfg_parser->cfg->val_date_override)
3047 yyerror("bad date/time specification");
3049 if(atoi((yyvsp[(2) - (2)].str)) == 0)
3050 yyerror("number expected");
3051 cfg_parser->cfg->val_date_override = atoi((yyvsp[(2) - (2)].str));
3053 free((yyvsp[(2) - (2)].str));
3058 /* Line 1787 of yacc.c */
3059 #line 903 "util/configparser.y"
3061 OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[(2) - (2)].str)));
3062 if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) {
3063 cfg_parser->cfg->val_sig_skew_min = 0;
3065 cfg_parser->cfg->val_sig_skew_min = atoi((yyvsp[(2) - (2)].str));
3066 if(!cfg_parser->cfg->val_sig_skew_min)
3067 yyerror("number expected");
3069 free((yyvsp[(2) - (2)].str));
3074 /* Line 1787 of yacc.c */
3075 #line 916 "util/configparser.y"
3077 OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[(2) - (2)].str)));
3078 if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) {
3079 cfg_parser->cfg->val_sig_skew_max = 0;
3081 cfg_parser->cfg->val_sig_skew_max = atoi((yyvsp[(2) - (2)].str));
3082 if(!cfg_parser->cfg->val_sig_skew_max)
3083 yyerror("number expected");
3085 free((yyvsp[(2) - (2)].str));
3090 /* Line 1787 of yacc.c */
3091 #line 929 "util/configparser.y"
3093 OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
3094 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
3095 yyerror("number expected");
3096 else cfg_parser->cfg->max_ttl = atoi((yyvsp[(2) - (2)].str));
3097 free((yyvsp[(2) - (2)].str));
3102 /* Line 1787 of yacc.c */
3103 #line 938 "util/configparser.y"
3105 OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
3106 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
3107 yyerror("number expected");
3108 else cfg_parser->cfg->min_ttl = atoi((yyvsp[(2) - (2)].str));
3109 free((yyvsp[(2) - (2)].str));
3114 /* Line 1787 of yacc.c */
3115 #line 947 "util/configparser.y"
3117 OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
3118 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
3119 yyerror("number expected");
3120 else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[(2) - (2)].str));
3121 free((yyvsp[(2) - (2)].str));
3126 /* Line 1787 of yacc.c */
3127 #line 956 "util/configparser.y"
3129 OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[(2) - (2)].str)));
3130 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
3131 yyerror("expected yes or no.");
3132 else cfg_parser->cfg->val_clean_additional =
3133 (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
3134 free((yyvsp[(2) - (2)].str));
3139 /* Line 1787 of yacc.c */
3140 #line 966 "util/configparser.y"
3142 OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[(2) - (2)].str)));
3143 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
3144 yyerror("expected yes or no.");
3145 else cfg_parser->cfg->val_permissive_mode =
3146 (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
3147 free((yyvsp[(2) - (2)].str));
3152 /* Line 1787 of yacc.c */
3153 #line 976 "util/configparser.y"
3155 OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[(2) - (2)].str)));
3156 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
3157 yyerror("expected yes or no.");
3158 else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
3159 free((yyvsp[(2) - (2)].str));
3164 /* Line 1787 of yacc.c */
3165 #line 985 "util/configparser.y"
3167 OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[(2) - (2)].str)));
3168 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
3169 yyerror("number expected");
3170 else cfg_parser->cfg->val_log_level = atoi((yyvsp[(2) - (2)].str));
3171 free((yyvsp[(2) - (2)].str));
3176 /* Line 1787 of yacc.c */
3177 #line 994 "util/configparser.y"
3179 OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[(2) - (2)].str)));
3180 free(cfg_parser->cfg->val_nsec3_key_iterations);
3181 cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[(2) - (2)].str);
3186 /* Line 1787 of yacc.c */
3187 #line 1001 "util/configparser.y"
3189 OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[(2) - (2)].str)));
3190 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
3191 yyerror("number expected");
3192 else cfg_parser->cfg->add_holddown = atoi((yyvsp[(2) - (2)].str));
3193 free((yyvsp[(2) - (2)].str));
3198 /* Line 1787 of yacc.c */
3199 #line 1010 "util/configparser.y"
3201 OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[(2) - (2)].str)));
3202 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
3203 yyerror("number expected");
3204 else cfg_parser->cfg->del_holddown = atoi((yyvsp[(2) - (2)].str));
3205 free((yyvsp[(2) - (2)].str));
3210 /* Line 1787 of yacc.c */
3211 #line 1019 "util/configparser.y"
3213 OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[(2) - (2)].str)));
3214 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
3215 yyerror("number expected");
3216 else cfg_parser->cfg->keep_missing = atoi((yyvsp[(2) - (2)].str));
3217 free((yyvsp[(2) - (2)].str));
3222 /* Line 1787 of yacc.c */
3223 #line 1028 "util/configparser.y"
3225 OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[(2) - (2)].str)));
3226 if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->key_cache_size))
3227 yyerror("memory size expected");
3228 free((yyvsp[(2) - (2)].str));
3233 /* Line 1787 of yacc.c */
3234 #line 1036 "util/configparser.y"
3236 OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
3237 if(atoi((yyvsp[(2) - (2)].str)) == 0)
3238 yyerror("number expected");
3240 cfg_parser->cfg->key_cache_slabs = atoi((yyvsp[(2) - (2)].str));
3241 if(!is_pow2(cfg_parser->cfg->key_cache_slabs))
3242 yyerror("must be a power of 2");
3244 free((yyvsp[(2) - (2)].str));
3249 /* Line 1787 of yacc.c */
3250 #line 1049 "util/configparser.y"
3252 OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[(2) - (2)].str)));
3253 if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->neg_cache_size))
3254 yyerror("memory size expected");
3255 free((yyvsp[(2) - (2)].str));
3260 /* Line 1787 of yacc.c */
3261 #line 1057 "util/configparser.y"
3263 OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)));
3264 if(strcmp((yyvsp[(3) - (3)].str), "static")!=0 && strcmp((yyvsp[(3) - (3)].str), "deny")!=0 &&
3265 strcmp((yyvsp[(3) - (3)].str), "refuse")!=0 && strcmp((yyvsp[(3) - (3)].str), "redirect")!=0 &&
3266 strcmp((yyvsp[(3) - (3)].str), "transparent")!=0 && strcmp((yyvsp[(3) - (3)].str), "nodefault")!=0
3267 && strcmp((yyvsp[(3) - (3)].str), "typetransparent")!=0)
3268 yyerror("local-zone type: expected static, deny, "
3269 "refuse, redirect, transparent, "
3270 "typetransparent or nodefault");
3271 else if(strcmp((yyvsp[(3) - (3)].str), "nodefault")==0) {
3272 if(!cfg_strlist_insert(&cfg_parser->cfg->
3273 local_zones_nodefault, (yyvsp[(2) - (3)].str)))
3274 fatal_exit("out of memory adding local-zone");
3275 free((yyvsp[(3) - (3)].str));
3277 if(!cfg_str2list_insert(&cfg_parser->cfg->local_zones,
3278 (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)))
3279 fatal_exit("out of memory adding local-zone");
3285 /* Line 1787 of yacc.c */
3286 #line 1079 "util/configparser.y"
3288 OUTYY(("P(server_local_data:%s)\n", (yyvsp[(2) - (2)].str)));
3289 if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[(2) - (2)].str)))
3290 fatal_exit("out of memory adding local-data");
3295 /* Line 1787 of yacc.c */
3296 #line 1086 "util/configparser.y"
3299 OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[(2) - (2)].str)));
3300 ptr = cfg_ptr_reverse((yyvsp[(2) - (2)].str));
3301 free((yyvsp[(2) - (2)].str));
3303 if(!cfg_strlist_insert(&cfg_parser->cfg->
3305 fatal_exit("out of memory adding local-data");
3307 yyerror("local-data-ptr could not be reversed");
3313 /* Line 1787 of yacc.c */
3314 #line 1101 "util/configparser.y"
3316 OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[(2) - (2)].str)));
3317 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
3318 yyerror("expected yes or no.");
3319 else cfg_parser->cfg->minimal_responses =
3320 (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
3321 free((yyvsp[(2) - (2)].str));
3326 /* Line 1787 of yacc.c */
3327 #line 1111 "util/configparser.y"
3329 OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[(2) - (2)].str)));
3330 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
3331 yyerror("expected yes or no.");
3332 else cfg_parser->cfg->rrset_roundrobin =
3333 (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
3334 free((yyvsp[(2) - (2)].str));
3339 /* Line 1787 of yacc.c */
3340 #line 1121 "util/configparser.y"
3342 OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str)));
3343 if(cfg_parser->cfg->stubs->name)
3344 yyerror("stub name override, there must be one name "
3345 "for one stub-zone");
3346 free(cfg_parser->cfg->stubs->name);
3347 cfg_parser->cfg->stubs->name = (yyvsp[(2) - (2)].str);
3352 /* Line 1787 of yacc.c */
3353 #line 1131 "util/configparser.y"
3355 OUTYY(("P(stub-host:%s)\n", (yyvsp[(2) - (2)].str)));
3356 if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[(2) - (2)].str)))
3357 yyerror("out of memory");
3362 /* Line 1787 of yacc.c */
3363 #line 1138 "util/configparser.y"
3365 OUTYY(("P(stub-addr:%s)\n", (yyvsp[(2) - (2)].str)));
3366 if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[(2) - (2)].str)))
3367 yyerror("out of memory");
3372 /* Line 1787 of yacc.c */
3373 #line 1145 "util/configparser.y"
3375 OUTYY(("P(stub-first:%s)\n", (yyvsp[(2) - (2)].str)));
3376 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
3377 yyerror("expected yes or no.");
3378 else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[(2) - (2)].str), "yes")==0);
3379 free((yyvsp[(2) - (2)].str));
3384 /* Line 1787 of yacc.c */
3385 #line 1154 "util/configparser.y"
3387 OUTYY(("P(stub-prime:%s)\n", (yyvsp[(2) - (2)].str)));
3388 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
3389 yyerror("expected yes or no.");
3390 else cfg_parser->cfg->stubs->isprime =
3391 (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
3392 free((yyvsp[(2) - (2)].str));
3397 /* Line 1787 of yacc.c */
3398 #line 1164 "util/configparser.y"
3400 OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str)));
3401 if(cfg_parser->cfg->forwards->name)
3402 yyerror("forward name override, there must be one "
3403 "name for one forward-zone");
3404 free(cfg_parser->cfg->forwards->name);
3405 cfg_parser->cfg->forwards->name = (yyvsp[(2) - (2)].str);
3410 /* Line 1787 of yacc.c */
3411 #line 1174 "util/configparser.y"
3413 OUTYY(("P(forward-host:%s)\n", (yyvsp[(2) - (2)].str)));
3414 if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[(2) - (2)].str)))
3415 yyerror("out of memory");
3420 /* Line 1787 of yacc.c */
3421 #line 1181 "util/configparser.y"
3423 OUTYY(("P(forward-addr:%s)\n", (yyvsp[(2) - (2)].str)));
3424 if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[(2) - (2)].str)))
3425 yyerror("out of memory");
3430 /* Line 1787 of yacc.c */
3431 #line 1188 "util/configparser.y"
3433 OUTYY(("P(forward-first:%s)\n", (yyvsp[(2) - (2)].str)));
3434 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
3435 yyerror("expected yes or no.");
3436 else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[(2) - (2)].str), "yes")==0);
3437 free((yyvsp[(2) - (2)].str));
3442 /* Line 1787 of yacc.c */
3443 #line 1197 "util/configparser.y"
3445 OUTYY(("\nP(remote-control:)\n"));
3450 /* Line 1787 of yacc.c */
3451 #line 1208 "util/configparser.y"
3453 OUTYY(("P(control_enable:%s)\n", (yyvsp[(2) - (2)].str)));
3454 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
3455 yyerror("expected yes or no.");
3456 else cfg_parser->cfg->remote_control_enable =
3457 (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
3458 free((yyvsp[(2) - (2)].str));
3463 /* Line 1787 of yacc.c */
3464 #line 1218 "util/configparser.y"
3466 OUTYY(("P(control_port:%s)\n", (yyvsp[(2) - (2)].str)));
3467 if(atoi((yyvsp[(2) - (2)].str)) == 0)
3468 yyerror("control port number expected");
3469 else cfg_parser->cfg->control_port = atoi((yyvsp[(2) - (2)].str));
3470 free((yyvsp[(2) - (2)].str));
3475 /* Line 1787 of yacc.c */
3476 #line 1227 "util/configparser.y"
3478 OUTYY(("P(control_interface:%s)\n", (yyvsp[(2) - (2)].str)));
3479 if(!cfg_strlist_insert(&cfg_parser->cfg->control_ifs, (yyvsp[(2) - (2)].str)))
3480 yyerror("out of memory");
3485 /* Line 1787 of yacc.c */
3486 #line 1234 "util/configparser.y"
3488 OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[(2) - (2)].str)));
3489 free(cfg_parser->cfg->server_key_file);
3490 cfg_parser->cfg->server_key_file = (yyvsp[(2) - (2)].str);
3495 /* Line 1787 of yacc.c */
3496 #line 1241 "util/configparser.y"
3498 OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[(2) - (2)].str)));
3499 free(cfg_parser->cfg->server_cert_file);
3500 cfg_parser->cfg->server_cert_file = (yyvsp[(2) - (2)].str);
3505 /* Line 1787 of yacc.c */
3506 #line 1248 "util/configparser.y"
3508 OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[(2) - (2)].str)));
3509 free(cfg_parser->cfg->control_key_file);
3510 cfg_parser->cfg->control_key_file = (yyvsp[(2) - (2)].str);
3515 /* Line 1787 of yacc.c */
3516 #line 1255 "util/configparser.y"
3518 OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[(2) - (2)].str)));
3519 free(cfg_parser->cfg->control_cert_file);
3520 cfg_parser->cfg->control_cert_file = (yyvsp[(2) - (2)].str);
3525 /* Line 1787 of yacc.c */
3526 #line 1262 "util/configparser.y"
3528 OUTYY(("\nP(python:)\n"));
3533 /* Line 1787 of yacc.c */
3534 #line 1271 "util/configparser.y"
3536 OUTYY(("P(python-script:%s)\n", (yyvsp[(2) - (2)].str)));
3537 free(cfg_parser->cfg->python_script);
3538 cfg_parser->cfg->python_script = (yyvsp[(2) - (2)].str);
3543 /* Line 1787 of yacc.c */
3544 #line 3545 "util/configparser.c"
3547 /* User semantic actions sometimes alter yychar, and that requires
3548 that yytoken be updated with the new translation. We take the
3549 approach of translating immediately before every use of yytoken.
3550 One alternative is translating here after every semantic action,
3551 but that translation would be missed if the semantic action invokes
3552 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
3553 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
3554 incorrect destructor might then be invoked immediately. In the
3555 case of YYERROR or YYBACKUP, subsequent parser actions might lead
3556 to an incorrect destructor call or verbose syntax error message
3557 before the lookahead is translated. */
3558 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
3562 YY_STACK_PRINT (yyss, yyssp);
3566 /* Now `shift' the result of the reduction. Determine what state
3567 that goes to, based on the state we popped back to and the rule
3568 number reduced by. */
3572 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
3573 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3574 yystate = yytable[yystate];
3576 yystate = yydefgoto[yyn - YYNTOKENS];
3581 /*------------------------------------.
3582 | yyerrlab -- here on detecting error |
3583 `------------------------------------*/
3585 /* Make sure we have latest lookahead translation. See comments at
3586 user semantic actions for why this is necessary. */
3587 yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
3589 /* If not already recovering from an error, report this error. */
3593 #if ! YYERROR_VERBOSE
3594 yyerror (YY_("syntax error"));
3596 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
3599 char const *yymsgp = YY_("syntax error");
3600 int yysyntax_error_status;
3601 yysyntax_error_status = YYSYNTAX_ERROR;
3602 if (yysyntax_error_status == 0)
3604 else if (yysyntax_error_status == 1)
3606 if (yymsg != yymsgbuf)
3607 YYSTACK_FREE (yymsg);
3608 yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
3612 yymsg_alloc = sizeof yymsgbuf;
3613 yysyntax_error_status = 2;
3617 yysyntax_error_status = YYSYNTAX_ERROR;
3622 if (yysyntax_error_status == 2)
3623 goto yyexhaustedlab;
3625 # undef YYSYNTAX_ERROR
3631 if (yyerrstatus == 3)
3633 /* If just tried and failed to reuse lookahead token after an
3634 error, discard it. */
3636 if (yychar <= YYEOF)
3638 /* Return failure if at end of input. */
3639 if (yychar == YYEOF)
3644 yydestruct ("Error: discarding",
3650 /* Else will try to reuse lookahead token after shifting the error
3655 /*---------------------------------------------------.
3656 | yyerrorlab -- error raised explicitly by YYERROR. |
3657 `---------------------------------------------------*/
3660 /* Pacify compilers like GCC when the user code never invokes
3661 YYERROR and the label yyerrorlab therefore never appears in user
3663 if (/*CONSTCOND*/ 0)
3666 /* Do not reclaim the symbols of the rule which action triggered
3670 YY_STACK_PRINT (yyss, yyssp);
3675 /*-------------------------------------------------------------.
3676 | yyerrlab1 -- common code for both syntax error and YYERROR. |
3677 `-------------------------------------------------------------*/
3679 yyerrstatus = 3; /* Each real token shifted decrements this. */
3683 yyn = yypact[yystate];
3684 if (!yypact_value_is_default (yyn))
3687 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
3695 /* Pop the current state because it cannot handle the error token. */
3700 yydestruct ("Error: popping",
3701 yystos[yystate], yyvsp);
3704 YY_STACK_PRINT (yyss, yyssp);
3710 /* Shift the error token. */
3711 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
3717 /*-------------------------------------.
3718 | yyacceptlab -- YYACCEPT comes here. |
3719 `-------------------------------------*/
3724 /*-----------------------------------.
3725 | yyabortlab -- YYABORT comes here. |
3726 `-----------------------------------*/
3731 #if !defined yyoverflow || YYERROR_VERBOSE
3732 /*-------------------------------------------------.
3733 | yyexhaustedlab -- memory exhaustion comes here. |
3734 `-------------------------------------------------*/
3736 yyerror (YY_("memory exhausted"));
3742 if (yychar != YYEMPTY)
3744 /* Make sure we have latest lookahead translation. See comments at
3745 user semantic actions for why this is necessary. */
3746 yytoken = YYTRANSLATE (yychar);
3747 yydestruct ("Cleanup: discarding lookahead",
3750 /* Do not reclaim the symbols of the rule which action triggered
3751 this YYABORT or YYACCEPT. */
3753 YY_STACK_PRINT (yyss, yyssp);
3754 while (yyssp != yyss)
3756 yydestruct ("Cleanup: popping",
3757 yystos[*yyssp], yyvsp);
3762 YYSTACK_FREE (yyss);
3765 if (yymsg != yymsgbuf)
3766 YYSTACK_FREE (yymsg);
3768 /* Make sure YYID is used. */
3769 return YYID (yyresult);
3773 /* Line 2048 of yacc.c */
3774 #line 1276 "util/configparser.y"
3777 /* parse helper routines could be here */