Kea 2.0.1
dhcp4_parser.h
Go to the documentation of this file.
1// A Bison parser, made by GNU Bison 3.8.2.
2
3// Skeleton interface for Bison LALR(1) parsers in C++
4
5// Copyright (C) 2002-2015, 2018-2021 Free Software Foundation, Inc.
6
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.
11
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.
16
17// You should have received a copy of the GNU General Public License
18// along with this program. If not, see <https://www.gnu.org/licenses/>.
19
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.
29
30// This special exception was added by the Free Software Foundation in
31// version 2.2 of Bison.
32
33
39// C++ LALR(1) parser skeleton written by Akim Demaille.
40
41// DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
42// especially those whose name start with YY_ or yy_. They are
43// private implementation details that can be changed or removed.
44
45#ifndef YY_PARSER4_DHCP4_PARSER_H_INCLUDED
46# define YY_PARSER4_DHCP4_PARSER_H_INCLUDED
47// "%code requires" blocks.
48#line 17 "dhcp4_parser.yy"
49
50#include <string>
51#include <cc/data.h>
52#include <dhcp/option.h>
53#include <boost/lexical_cast.hpp>
55
56using namespace isc::dhcp;
57using namespace isc::data;
58using namespace std;
59
60#line 61 "dhcp4_parser.h"
61
62# include <cassert>
63# include <cstdlib> // std::abort
64# include <iostream>
65# include <stdexcept>
66# include <string>
67# include <vector>
68
69#if defined __cplusplus
70# define YY_CPLUSPLUS __cplusplus
71#else
72# define YY_CPLUSPLUS 199711L
73#endif
74
75// Support move semantics when possible.
76#if 201103L <= YY_CPLUSPLUS
77# define YY_MOVE std::move
78# define YY_MOVE_OR_COPY move
79# define YY_MOVE_REF(Type) Type&&
80# define YY_RVREF(Type) Type&&
81# define YY_COPY(Type) Type
82#else
83# define YY_MOVE
84# define YY_MOVE_OR_COPY copy
85# define YY_MOVE_REF(Type) Type&
86# define YY_RVREF(Type) const Type&
87# define YY_COPY(Type) const Type&
88#endif
89
90// Support noexcept when possible.
91#if 201103L <= YY_CPLUSPLUS
92# define YY_NOEXCEPT noexcept
93# define YY_NOTHROW
94#else
95# define YY_NOEXCEPT
96# define YY_NOTHROW throw ()
97#endif
98
99// Support constexpr when possible.
100#if 201703 <= YY_CPLUSPLUS
101# define YY_CONSTEXPR constexpr
102#else
103# define YY_CONSTEXPR
104#endif
105# include "location.hh"
106#include <typeinfo>
107#ifndef PARSER4__ASSERT
108# include <cassert>
109# define PARSER4__ASSERT assert
110#endif
111
112
113#ifndef YY_ATTRIBUTE_PURE
114# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
115# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
116# else
117# define YY_ATTRIBUTE_PURE
118# endif
119#endif
120
121#ifndef YY_ATTRIBUTE_UNUSED
122# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
123# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
124# else
125# define YY_ATTRIBUTE_UNUSED
126# endif
127#endif
128
129/* Suppress unused-variable warnings by "using" E. */
130#if ! defined lint || defined __GNUC__
131# define YY_USE(E) ((void) (E))
132#else
133# define YY_USE(E) /* empty */
134#endif
135
136/* Suppress an incorrect diagnostic about yylval being uninitialized. */
137#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
138# if __GNUC__ * 100 + __GNUC_MINOR__ < 407
139# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
140 _Pragma ("GCC diagnostic push") \
141 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
142# else
143# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
144 _Pragma ("GCC diagnostic push") \
145 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
146 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
147# endif
148# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
149 _Pragma ("GCC diagnostic pop")
150#else
151# define YY_INITIAL_VALUE(Value) Value
152#endif
153#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
154# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
155# define YY_IGNORE_MAYBE_UNINITIALIZED_END
156#endif
157#ifndef YY_INITIAL_VALUE
158# define YY_INITIAL_VALUE(Value) /* Nothing. */
159#endif
160
161#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
162# define YY_IGNORE_USELESS_CAST_BEGIN \
163 _Pragma ("GCC diagnostic push") \
164 _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
165# define YY_IGNORE_USELESS_CAST_END \
166 _Pragma ("GCC diagnostic pop")
167#endif
168#ifndef YY_IGNORE_USELESS_CAST_BEGIN
169# define YY_IGNORE_USELESS_CAST_BEGIN
170# define YY_IGNORE_USELESS_CAST_END
171#endif
172
173# ifndef YY_CAST
174# ifdef __cplusplus
175# define YY_CAST(Type, Val) static_cast<Type> (Val)
176# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
177# else
178# define YY_CAST(Type, Val) ((Type) (Val))
179# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
180# endif
181# endif
182# ifndef YY_NULLPTR
183# if defined __cplusplus
184# if 201103L <= __cplusplus
185# define YY_NULLPTR nullptr
186# else
187# define YY_NULLPTR 0
188# endif
189# else
190# define YY_NULLPTR ((void*)0)
191# endif
192# endif
193
194/* Debug traces. */
195#ifndef PARSER4_DEBUG
196# if defined YYDEBUG
197#if YYDEBUG
198# define PARSER4_DEBUG 1
199# else
200# define PARSER4_DEBUG 0
201# endif
202# else /* ! defined YYDEBUG */
203# define PARSER4_DEBUG 1
204# endif /* ! defined YYDEBUG */
205#endif /* ! defined PARSER4_DEBUG */
206
207#line 14 "dhcp4_parser.yy"
208namespace isc { namespace dhcp {
209#line 210 "dhcp4_parser.h"
210
211
212
213
216 {
217 public:
218#ifdef PARSER4_STYPE
219# ifdef __GNUC__
220# pragma GCC message "bison: do not #define PARSER4_STYPE in C++, use %define api.value.type"
221# endif
222 typedef PARSER4_STYPE value_type;
223#else
230 {
231 public:
234
237 : yyraw_ ()
238 , yytypeid_ (YY_NULLPTR)
239 {}
240
242 template <typename T>
244 : yytypeid_ (&typeid (T))
245 {
246 PARSER4__ASSERT (sizeof (T) <= size);
247 new (yyas_<T> ()) T (YY_MOVE (t));
248 }
249
250#if 201103L <= YY_CPLUSPLUS
252 value_type (const self_type&) = delete;
254 self_type& operator= (const self_type&) = delete;
255#endif
256
259 {
260 PARSER4__ASSERT (!yytypeid_);
261 }
262
263# if 201103L <= YY_CPLUSPLUS
265 template <typename T, typename... U>
266 T&
267 emplace (U&&... u)
268 {
269 PARSER4__ASSERT (!yytypeid_);
270 PARSER4__ASSERT (sizeof (T) <= size);
271 yytypeid_ = & typeid (T);
272 return *new (yyas_<T> ()) T (std::forward <U>(u)...);
273 }
274# else
276 template <typename T>
277 T&
279 {
280 PARSER4__ASSERT (!yytypeid_);
281 PARSER4__ASSERT (sizeof (T) <= size);
282 yytypeid_ = & typeid (T);
283 return *new (yyas_<T> ()) T ();
284 }
285
287 template <typename T>
288 T&
289 emplace (const T& t)
290 {
291 PARSER4__ASSERT (!yytypeid_);
292 PARSER4__ASSERT (sizeof (T) <= size);
293 yytypeid_ = & typeid (T);
294 return *new (yyas_<T> ()) T (t);
295 }
296# endif
297
300 template <typename T>
301 T&
303 {
304 return emplace<T> ();
305 }
306
309 template <typename T>
310 T&
311 build (const T& t)
312 {
313 return emplace<T> (t);
314 }
315
317 template <typename T>
318 T&
320 {
321 PARSER4__ASSERT (yytypeid_);
322 PARSER4__ASSERT (*yytypeid_ == typeid (T));
323 PARSER4__ASSERT (sizeof (T) <= size);
324 return *yyas_<T> ();
325 }
326
328 template <typename T>
329 const T&
331 {
332 PARSER4__ASSERT (yytypeid_);
333 PARSER4__ASSERT (*yytypeid_ == typeid (T));
334 PARSER4__ASSERT (sizeof (T) <= size);
335 return *yyas_<T> ();
336 }
337
346 template <typename T>
347 void
349 {
350 PARSER4__ASSERT (yytypeid_);
351 PARSER4__ASSERT (*yytypeid_ == *that.yytypeid_);
352 std::swap (as<T> (), that.as<T> ());
353 }
354
358 template <typename T>
359 void
361 {
362# if 201103L <= YY_CPLUSPLUS
363 emplace<T> (std::move (that.as<T> ()));
364# else
365 emplace<T> ();
366 swap<T> (that);
367# endif
368 that.destroy<T> ();
369 }
370
371# if 201103L <= YY_CPLUSPLUS
373 template <typename T>
374 void
375 move (self_type&& that)
376 {
377 emplace<T> (std::move (that.as<T> ()));
378 that.destroy<T> ();
379 }
380#endif
381
383 template <typename T>
384 void
385 copy (const self_type& that)
386 {
387 emplace<T> (that.as<T> ());
388 }
389
391 template <typename T>
392 void
394 {
395 as<T> ().~T ();
396 yytypeid_ = YY_NULLPTR;
397 }
398
399 private:
400#if YY_CPLUSPLUS < 201103L
402 value_type (const self_type&);
404 self_type& operator= (const self_type&);
405#endif
406
408 template <typename T>
409 T*
410 yyas_ () YY_NOEXCEPT
411 {
412 void *yyp = yyraw_;
413 return static_cast<T*> (yyp);
414 }
415
417 template <typename T>
418 const T*
419 yyas_ () const YY_NOEXCEPT
420 {
421 const void *yyp = yyraw_;
422 return static_cast<const T*> (yyp);
423 }
424
426 union union_type
427 {
428 // value
429 // map_value
430 // ddns_replace_client_name_value
431 // socket_type
432 // outbound_interface_value
433 // db_type
434 // on_fail_mode
435 // hr_mode
436 // ncr_protocol_value
437 char dummy1[sizeof (ElementPtr)];
438
439 // "boolean"
440 char dummy2[sizeof (bool)];
441
442 // "floating point"
443 char dummy3[sizeof (double)];
444
445 // "integer"
446 char dummy4[sizeof (int64_t)];
447
448 // "constant string"
449 char dummy5[sizeof (std::string)];
450 };
451
453 enum { size = sizeof (union_type) };
454
456 union
457 {
459 long double yyalign_me_;
461 char yyraw_[size];
462 };
463
465 const std::type_info *yytypeid_;
466 };
467
468#endif
471
473 typedef location location_type;
474
476 struct syntax_error : std::runtime_error
477 {
478 syntax_error (const location_type& l, const std::string& m)
479 : std::runtime_error (m)
480 , location (l)
481 {}
482
484 : std::runtime_error (s.what ())
485 , location (s.location)
486 {}
487
489
491 };
492
494 struct token
495 {
497 {
498 TOKEN_PARSER4_EMPTY = -2,
499 TOKEN_END = 0, // "end of file"
500 TOKEN_PARSER4_error = 256, // error
501 TOKEN_PARSER4_UNDEF = 257, // "invalid token"
502 TOKEN_COMMA = 258, // ","
503 TOKEN_COLON = 259, // ":"
504 TOKEN_LSQUARE_BRACKET = 260, // "["
505 TOKEN_RSQUARE_BRACKET = 261, // "]"
506 TOKEN_LCURLY_BRACKET = 262, // "{"
507 TOKEN_RCURLY_BRACKET = 263, // "}"
508 TOKEN_NULL_TYPE = 264, // "null"
509 TOKEN_DHCP4 = 265, // "Dhcp4"
510 TOKEN_CONFIG_CONTROL = 266, // "config-control"
511 TOKEN_CONFIG_DATABASES = 267, // "config-databases"
512 TOKEN_CONFIG_FETCH_WAIT_TIME = 268, // "config-fetch-wait-time"
513 TOKEN_INTERFACES_CONFIG = 269, // "interfaces-config"
514 TOKEN_INTERFACES = 270, // "interfaces"
515 TOKEN_DHCP_SOCKET_TYPE = 271, // "dhcp-socket-type"
516 TOKEN_RAW = 272, // "raw"
517 TOKEN_UDP = 273, // "udp"
518 TOKEN_OUTBOUND_INTERFACE = 274, // "outbound-interface"
519 TOKEN_SAME_AS_INBOUND = 275, // "same-as-inbound"
520 TOKEN_USE_ROUTING = 276, // "use-routing"
521 TOKEN_RE_DETECT = 277, // "re-detect"
522 TOKEN_SANITY_CHECKS = 278, // "sanity-checks"
523 TOKEN_LEASE_CHECKS = 279, // "lease-checks"
524 TOKEN_ECHO_CLIENT_ID = 280, // "echo-client-id"
525 TOKEN_MATCH_CLIENT_ID = 281, // "match-client-id"
526 TOKEN_AUTHORITATIVE = 282, // "authoritative"
527 TOKEN_NEXT_SERVER = 283, // "next-server"
528 TOKEN_SERVER_HOSTNAME = 284, // "server-hostname"
529 TOKEN_BOOT_FILE_NAME = 285, // "boot-file-name"
530 TOKEN_LEASE_DATABASE = 286, // "lease-database"
531 TOKEN_HOSTS_DATABASE = 287, // "hosts-database"
532 TOKEN_HOSTS_DATABASES = 288, // "hosts-databases"
533 TOKEN_TYPE = 289, // "type"
534 TOKEN_MEMFILE = 290, // "memfile"
535 TOKEN_MYSQL = 291, // "mysql"
536 TOKEN_POSTGRESQL = 292, // "postgresql"
537 TOKEN_CQL = 293, // "cql"
538 TOKEN_USER = 294, // "user"
539 TOKEN_PASSWORD = 295, // "password"
540 TOKEN_HOST = 296, // "host"
541 TOKEN_PORT = 297, // "port"
542 TOKEN_PERSIST = 298, // "persist"
543 TOKEN_LFC_INTERVAL = 299, // "lfc-interval"
544 TOKEN_READONLY = 300, // "readonly"
545 TOKEN_CONNECT_TIMEOUT = 301, // "connect-timeout"
546 TOKEN_CONTACT_POINTS = 302, // "contact-points"
547 TOKEN_KEYSPACE = 303, // "keyspace"
548 TOKEN_CONSISTENCY = 304, // "consistency"
549 TOKEN_SERIAL_CONSISTENCY = 305, // "serial-consistency"
550 TOKEN_MAX_RECONNECT_TRIES = 306, // "max-reconnect-tries"
551 TOKEN_RECONNECT_WAIT_TIME = 307, // "reconnect-wait-time"
552 TOKEN_ON_FAIL = 308, // "on-fail"
553 TOKEN_STOP_RETRY_EXIT = 309, // "stop-retry-exit"
554 TOKEN_SERVE_RETRY_EXIT = 310, // "serve-retry-exit"
555 TOKEN_SERVE_RETRY_CONTINUE = 311, // "serve-retry-continue"
556 TOKEN_REQUEST_TIMEOUT = 312, // "request-timeout"
557 TOKEN_TCP_KEEPALIVE = 313, // "tcp-keepalive"
558 TOKEN_TCP_NODELAY = 314, // "tcp-nodelay"
559 TOKEN_MAX_ROW_ERRORS = 315, // "max-row-errors"
560 TOKEN_VALID_LIFETIME = 316, // "valid-lifetime"
561 TOKEN_MIN_VALID_LIFETIME = 317, // "min-valid-lifetime"
562 TOKEN_MAX_VALID_LIFETIME = 318, // "max-valid-lifetime"
563 TOKEN_RENEW_TIMER = 319, // "renew-timer"
564 TOKEN_REBIND_TIMER = 320, // "rebind-timer"
565 TOKEN_CALCULATE_TEE_TIMES = 321, // "calculate-tee-times"
566 TOKEN_T1_PERCENT = 322, // "t1-percent"
567 TOKEN_T2_PERCENT = 323, // "t2-percent"
568 TOKEN_CACHE_THRESHOLD = 324, // "cache-threshold"
569 TOKEN_CACHE_MAX_AGE = 325, // "cache-max-age"
570 TOKEN_DECLINE_PROBATION_PERIOD = 326, // "decline-probation-period"
571 TOKEN_SERVER_TAG = 327, // "server-tag"
572 TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT = 328, // "statistic-default-sample-count"
573 TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE = 329, // "statistic-default-sample-age"
574 TOKEN_DDNS_SEND_UPDATES = 330, // "ddns-send-updates"
575 TOKEN_DDNS_OVERRIDE_NO_UPDATE = 331, // "ddns-override-no-update"
576 TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE = 332, // "ddns-override-client-update"
577 TOKEN_DDNS_REPLACE_CLIENT_NAME = 333, // "ddns-replace-client-name"
578 TOKEN_DDNS_GENERATED_PREFIX = 334, // "ddns-generated-prefix"
579 TOKEN_DDNS_QUALIFYING_SUFFIX = 335, // "ddns-qualifying-suffix"
580 TOKEN_DDNS_UPDATE_ON_RENEW = 336, // "ddns-update-on-renew"
581 TOKEN_DDNS_USE_CONFLICT_RESOLUTION = 337, // "ddns-use-conflict-resolution"
582 TOKEN_STORE_EXTENDED_INFO = 338, // "store-extended-info"
583 TOKEN_SUBNET4 = 339, // "subnet4"
584 TOKEN_SUBNET_4O6_INTERFACE = 340, // "4o6-interface"
585 TOKEN_SUBNET_4O6_INTERFACE_ID = 341, // "4o6-interface-id"
586 TOKEN_SUBNET_4O6_SUBNET = 342, // "4o6-subnet"
587 TOKEN_OPTION_DEF = 343, // "option-def"
588 TOKEN_OPTION_DATA = 344, // "option-data"
589 TOKEN_NAME = 345, // "name"
590 TOKEN_DATA = 346, // "data"
591 TOKEN_CODE = 347, // "code"
592 TOKEN_SPACE = 348, // "space"
593 TOKEN_CSV_FORMAT = 349, // "csv-format"
594 TOKEN_ALWAYS_SEND = 350, // "always-send"
595 TOKEN_RECORD_TYPES = 351, // "record-types"
596 TOKEN_ENCAPSULATE = 352, // "encapsulate"
597 TOKEN_ARRAY = 353, // "array"
598 TOKEN_PARKED_PACKET_LIMIT = 354, // "parked-packet-limit"
599 TOKEN_SHARED_NETWORKS = 355, // "shared-networks"
600 TOKEN_POOLS = 356, // "pools"
601 TOKEN_POOL = 357, // "pool"
602 TOKEN_USER_CONTEXT = 358, // "user-context"
603 TOKEN_COMMENT = 359, // "comment"
604 TOKEN_SUBNET = 360, // "subnet"
605 TOKEN_INTERFACE = 361, // "interface"
606 TOKEN_ID = 362, // "id"
607 TOKEN_RESERVATION_MODE = 363, // "reservation-mode"
608 TOKEN_DISABLED = 364, // "disabled"
609 TOKEN_OUT_OF_POOL = 365, // "out-of-pool"
610 TOKEN_GLOBAL = 366, // "global"
611 TOKEN_ALL = 367, // "all"
612 TOKEN_RESERVATIONS_GLOBAL = 368, // "reservations-global"
613 TOKEN_RESERVATIONS_IN_SUBNET = 369, // "reservations-in-subnet"
614 TOKEN_RESERVATIONS_OUT_OF_POOL = 370, // "reservations-out-of-pool"
615 TOKEN_HOST_RESERVATION_IDENTIFIERS = 371, // "host-reservation-identifiers"
616 TOKEN_CLIENT_CLASSES = 372, // "client-classes"
617 TOKEN_REQUIRE_CLIENT_CLASSES = 373, // "require-client-classes"
618 TOKEN_TEST = 374, // "test"
619 TOKEN_ONLY_IF_REQUIRED = 375, // "only-if-required"
620 TOKEN_CLIENT_CLASS = 376, // "client-class"
621 TOKEN_RESERVATIONS = 377, // "reservations"
622 TOKEN_DUID = 378, // "duid"
623 TOKEN_HW_ADDRESS = 379, // "hw-address"
624 TOKEN_CIRCUIT_ID = 380, // "circuit-id"
625 TOKEN_CLIENT_ID = 381, // "client-id"
626 TOKEN_HOSTNAME = 382, // "hostname"
627 TOKEN_FLEX_ID = 383, // "flex-id"
628 TOKEN_RELAY = 384, // "relay"
629 TOKEN_IP_ADDRESS = 385, // "ip-address"
630 TOKEN_IP_ADDRESSES = 386, // "ip-addresses"
631 TOKEN_HOOKS_LIBRARIES = 387, // "hooks-libraries"
632 TOKEN_LIBRARY = 388, // "library"
633 TOKEN_PARAMETERS = 389, // "parameters"
634 TOKEN_EXPIRED_LEASES_PROCESSING = 390, // "expired-leases-processing"
635 TOKEN_RECLAIM_TIMER_WAIT_TIME = 391, // "reclaim-timer-wait-time"
636 TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 392, // "flush-reclaimed-timer-wait-time"
637 TOKEN_HOLD_RECLAIMED_TIME = 393, // "hold-reclaimed-time"
638 TOKEN_MAX_RECLAIM_LEASES = 394, // "max-reclaim-leases"
639 TOKEN_MAX_RECLAIM_TIME = 395, // "max-reclaim-time"
640 TOKEN_UNWARNED_RECLAIM_CYCLES = 396, // "unwarned-reclaim-cycles"
641 TOKEN_DHCP4O6_PORT = 397, // "dhcp4o6-port"
642 TOKEN_DHCP_MULTI_THREADING = 398, // "multi-threading"
643 TOKEN_ENABLE_MULTI_THREADING = 399, // "enable-multi-threading"
644 TOKEN_THREAD_POOL_SIZE = 400, // "thread-pool-size"
645 TOKEN_PACKET_QUEUE_SIZE = 401, // "packet-queue-size"
646 TOKEN_CONTROL_SOCKET = 402, // "control-socket"
647 TOKEN_SOCKET_TYPE = 403, // "socket-type"
648 TOKEN_SOCKET_NAME = 404, // "socket-name"
649 TOKEN_DHCP_QUEUE_CONTROL = 405, // "dhcp-queue-control"
650 TOKEN_ENABLE_QUEUE = 406, // "enable-queue"
651 TOKEN_QUEUE_TYPE = 407, // "queue-type"
652 TOKEN_CAPACITY = 408, // "capacity"
653 TOKEN_DHCP_DDNS = 409, // "dhcp-ddns"
654 TOKEN_ENABLE_UPDATES = 410, // "enable-updates"
655 TOKEN_QUALIFYING_SUFFIX = 411, // "qualifying-suffix"
656 TOKEN_SERVER_IP = 412, // "server-ip"
657 TOKEN_SERVER_PORT = 413, // "server-port"
658 TOKEN_SENDER_IP = 414, // "sender-ip"
659 TOKEN_SENDER_PORT = 415, // "sender-port"
660 TOKEN_MAX_QUEUE_SIZE = 416, // "max-queue-size"
661 TOKEN_NCR_PROTOCOL = 417, // "ncr-protocol"
662 TOKEN_NCR_FORMAT = 418, // "ncr-format"
663 TOKEN_OVERRIDE_NO_UPDATE = 419, // "override-no-update"
664 TOKEN_OVERRIDE_CLIENT_UPDATE = 420, // "override-client-update"
665 TOKEN_REPLACE_CLIENT_NAME = 421, // "replace-client-name"
666 TOKEN_GENERATED_PREFIX = 422, // "generated-prefix"
667 TOKEN_TCP = 423, // "tcp"
668 TOKEN_JSON = 424, // "JSON"
669 TOKEN_WHEN_PRESENT = 425, // "when-present"
670 TOKEN_NEVER = 426, // "never"
671 TOKEN_ALWAYS = 427, // "always"
672 TOKEN_WHEN_NOT_PRESENT = 428, // "when-not-present"
673 TOKEN_HOSTNAME_CHAR_SET = 429, // "hostname-char-set"
674 TOKEN_HOSTNAME_CHAR_REPLACEMENT = 430, // "hostname-char-replacement"
675 TOKEN_IP_RESERVATIONS_UNIQUE = 431, // "ip-reservations-unique"
676 TOKEN_LOGGERS = 432, // "loggers"
677 TOKEN_OUTPUT_OPTIONS = 433, // "output_options"
678 TOKEN_OUTPUT = 434, // "output"
679 TOKEN_DEBUGLEVEL = 435, // "debuglevel"
680 TOKEN_SEVERITY = 436, // "severity"
681 TOKEN_FLUSH = 437, // "flush"
682 TOKEN_MAXSIZE = 438, // "maxsize"
683 TOKEN_MAXVER = 439, // "maxver"
684 TOKEN_PATTERN = 440, // "pattern"
685 TOKEN_COMPATIBILITY = 441, // "compatibility"
686 TOKEN_LENIENT_OPTION_PARSING = 442, // "lenient-option-parsing"
687 TOKEN_TOPLEVEL_JSON = 443, // TOPLEVEL_JSON
688 TOKEN_TOPLEVEL_DHCP4 = 444, // TOPLEVEL_DHCP4
689 TOKEN_SUB_DHCP4 = 445, // SUB_DHCP4
690 TOKEN_SUB_INTERFACES4 = 446, // SUB_INTERFACES4
691 TOKEN_SUB_SUBNET4 = 447, // SUB_SUBNET4
692 TOKEN_SUB_POOL4 = 448, // SUB_POOL4
693 TOKEN_SUB_RESERVATION = 449, // SUB_RESERVATION
694 TOKEN_SUB_OPTION_DEFS = 450, // SUB_OPTION_DEFS
695 TOKEN_SUB_OPTION_DEF = 451, // SUB_OPTION_DEF
696 TOKEN_SUB_OPTION_DATA = 452, // SUB_OPTION_DATA
697 TOKEN_SUB_HOOKS_LIBRARY = 453, // SUB_HOOKS_LIBRARY
698 TOKEN_SUB_DHCP_DDNS = 454, // SUB_DHCP_DDNS
699 TOKEN_SUB_CONFIG_CONTROL = 455, // SUB_CONFIG_CONTROL
700 TOKEN_STRING = 456, // "constant string"
701 TOKEN_INTEGER = 457, // "integer"
702 TOKEN_FLOAT = 458, // "floating point"
703 TOKEN_BOOLEAN = 459 // "boolean"
704 };
707 };
708
711
714
717 {
719 {
720 YYNTOKENS = 205,
721 S_YYEMPTY = -2,
722 S_YYEOF = 0, // "end of file"
723 S_YYerror = 1, // error
724 S_YYUNDEF = 2, // "invalid token"
725 S_COMMA = 3, // ","
726 S_COLON = 4, // ":"
727 S_LSQUARE_BRACKET = 5, // "["
728 S_RSQUARE_BRACKET = 6, // "]"
729 S_LCURLY_BRACKET = 7, // "{"
730 S_RCURLY_BRACKET = 8, // "}"
731 S_NULL_TYPE = 9, // "null"
732 S_DHCP4 = 10, // "Dhcp4"
733 S_CONFIG_CONTROL = 11, // "config-control"
734 S_CONFIG_DATABASES = 12, // "config-databases"
735 S_CONFIG_FETCH_WAIT_TIME = 13, // "config-fetch-wait-time"
736 S_INTERFACES_CONFIG = 14, // "interfaces-config"
737 S_INTERFACES = 15, // "interfaces"
738 S_DHCP_SOCKET_TYPE = 16, // "dhcp-socket-type"
739 S_RAW = 17, // "raw"
740 S_UDP = 18, // "udp"
741 S_OUTBOUND_INTERFACE = 19, // "outbound-interface"
742 S_SAME_AS_INBOUND = 20, // "same-as-inbound"
743 S_USE_ROUTING = 21, // "use-routing"
744 S_RE_DETECT = 22, // "re-detect"
745 S_SANITY_CHECKS = 23, // "sanity-checks"
746 S_LEASE_CHECKS = 24, // "lease-checks"
747 S_ECHO_CLIENT_ID = 25, // "echo-client-id"
748 S_MATCH_CLIENT_ID = 26, // "match-client-id"
749 S_AUTHORITATIVE = 27, // "authoritative"
750 S_NEXT_SERVER = 28, // "next-server"
751 S_SERVER_HOSTNAME = 29, // "server-hostname"
752 S_BOOT_FILE_NAME = 30, // "boot-file-name"
753 S_LEASE_DATABASE = 31, // "lease-database"
754 S_HOSTS_DATABASE = 32, // "hosts-database"
755 S_HOSTS_DATABASES = 33, // "hosts-databases"
756 S_TYPE = 34, // "type"
757 S_MEMFILE = 35, // "memfile"
758 S_MYSQL = 36, // "mysql"
759 S_POSTGRESQL = 37, // "postgresql"
760 S_CQL = 38, // "cql"
761 S_USER = 39, // "user"
762 S_PASSWORD = 40, // "password"
763 S_HOST = 41, // "host"
764 S_PORT = 42, // "port"
765 S_PERSIST = 43, // "persist"
766 S_LFC_INTERVAL = 44, // "lfc-interval"
767 S_READONLY = 45, // "readonly"
768 S_CONNECT_TIMEOUT = 46, // "connect-timeout"
769 S_CONTACT_POINTS = 47, // "contact-points"
770 S_KEYSPACE = 48, // "keyspace"
771 S_CONSISTENCY = 49, // "consistency"
772 S_SERIAL_CONSISTENCY = 50, // "serial-consistency"
773 S_MAX_RECONNECT_TRIES = 51, // "max-reconnect-tries"
774 S_RECONNECT_WAIT_TIME = 52, // "reconnect-wait-time"
775 S_ON_FAIL = 53, // "on-fail"
776 S_STOP_RETRY_EXIT = 54, // "stop-retry-exit"
777 S_SERVE_RETRY_EXIT = 55, // "serve-retry-exit"
778 S_SERVE_RETRY_CONTINUE = 56, // "serve-retry-continue"
779 S_REQUEST_TIMEOUT = 57, // "request-timeout"
780 S_TCP_KEEPALIVE = 58, // "tcp-keepalive"
781 S_TCP_NODELAY = 59, // "tcp-nodelay"
782 S_MAX_ROW_ERRORS = 60, // "max-row-errors"
783 S_VALID_LIFETIME = 61, // "valid-lifetime"
784 S_MIN_VALID_LIFETIME = 62, // "min-valid-lifetime"
785 S_MAX_VALID_LIFETIME = 63, // "max-valid-lifetime"
786 S_RENEW_TIMER = 64, // "renew-timer"
787 S_REBIND_TIMER = 65, // "rebind-timer"
788 S_CALCULATE_TEE_TIMES = 66, // "calculate-tee-times"
789 S_T1_PERCENT = 67, // "t1-percent"
790 S_T2_PERCENT = 68, // "t2-percent"
791 S_CACHE_THRESHOLD = 69, // "cache-threshold"
792 S_CACHE_MAX_AGE = 70, // "cache-max-age"
793 S_DECLINE_PROBATION_PERIOD = 71, // "decline-probation-period"
794 S_SERVER_TAG = 72, // "server-tag"
795 S_STATISTIC_DEFAULT_SAMPLE_COUNT = 73, // "statistic-default-sample-count"
796 S_STATISTIC_DEFAULT_SAMPLE_AGE = 74, // "statistic-default-sample-age"
797 S_DDNS_SEND_UPDATES = 75, // "ddns-send-updates"
798 S_DDNS_OVERRIDE_NO_UPDATE = 76, // "ddns-override-no-update"
799 S_DDNS_OVERRIDE_CLIENT_UPDATE = 77, // "ddns-override-client-update"
800 S_DDNS_REPLACE_CLIENT_NAME = 78, // "ddns-replace-client-name"
801 S_DDNS_GENERATED_PREFIX = 79, // "ddns-generated-prefix"
802 S_DDNS_QUALIFYING_SUFFIX = 80, // "ddns-qualifying-suffix"
803 S_DDNS_UPDATE_ON_RENEW = 81, // "ddns-update-on-renew"
804 S_DDNS_USE_CONFLICT_RESOLUTION = 82, // "ddns-use-conflict-resolution"
805 S_STORE_EXTENDED_INFO = 83, // "store-extended-info"
806 S_SUBNET4 = 84, // "subnet4"
807 S_SUBNET_4O6_INTERFACE = 85, // "4o6-interface"
808 S_SUBNET_4O6_INTERFACE_ID = 86, // "4o6-interface-id"
809 S_SUBNET_4O6_SUBNET = 87, // "4o6-subnet"
810 S_OPTION_DEF = 88, // "option-def"
811 S_OPTION_DATA = 89, // "option-data"
812 S_NAME = 90, // "name"
813 S_DATA = 91, // "data"
814 S_CODE = 92, // "code"
815 S_SPACE = 93, // "space"
816 S_CSV_FORMAT = 94, // "csv-format"
817 S_ALWAYS_SEND = 95, // "always-send"
818 S_RECORD_TYPES = 96, // "record-types"
819 S_ENCAPSULATE = 97, // "encapsulate"
820 S_ARRAY = 98, // "array"
821 S_PARKED_PACKET_LIMIT = 99, // "parked-packet-limit"
822 S_SHARED_NETWORKS = 100, // "shared-networks"
823 S_POOLS = 101, // "pools"
824 S_POOL = 102, // "pool"
825 S_USER_CONTEXT = 103, // "user-context"
826 S_COMMENT = 104, // "comment"
827 S_SUBNET = 105, // "subnet"
828 S_INTERFACE = 106, // "interface"
829 S_ID = 107, // "id"
830 S_RESERVATION_MODE = 108, // "reservation-mode"
831 S_DISABLED = 109, // "disabled"
832 S_OUT_OF_POOL = 110, // "out-of-pool"
833 S_GLOBAL = 111, // "global"
834 S_ALL = 112, // "all"
835 S_RESERVATIONS_GLOBAL = 113, // "reservations-global"
836 S_RESERVATIONS_IN_SUBNET = 114, // "reservations-in-subnet"
837 S_RESERVATIONS_OUT_OF_POOL = 115, // "reservations-out-of-pool"
838 S_HOST_RESERVATION_IDENTIFIERS = 116, // "host-reservation-identifiers"
839 S_CLIENT_CLASSES = 117, // "client-classes"
840 S_REQUIRE_CLIENT_CLASSES = 118, // "require-client-classes"
841 S_TEST = 119, // "test"
842 S_ONLY_IF_REQUIRED = 120, // "only-if-required"
843 S_CLIENT_CLASS = 121, // "client-class"
844 S_RESERVATIONS = 122, // "reservations"
845 S_DUID = 123, // "duid"
846 S_HW_ADDRESS = 124, // "hw-address"
847 S_CIRCUIT_ID = 125, // "circuit-id"
848 S_CLIENT_ID = 126, // "client-id"
849 S_HOSTNAME = 127, // "hostname"
850 S_FLEX_ID = 128, // "flex-id"
851 S_RELAY = 129, // "relay"
852 S_IP_ADDRESS = 130, // "ip-address"
853 S_IP_ADDRESSES = 131, // "ip-addresses"
854 S_HOOKS_LIBRARIES = 132, // "hooks-libraries"
855 S_LIBRARY = 133, // "library"
856 S_PARAMETERS = 134, // "parameters"
857 S_EXPIRED_LEASES_PROCESSING = 135, // "expired-leases-processing"
858 S_RECLAIM_TIMER_WAIT_TIME = 136, // "reclaim-timer-wait-time"
859 S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 137, // "flush-reclaimed-timer-wait-time"
860 S_HOLD_RECLAIMED_TIME = 138, // "hold-reclaimed-time"
861 S_MAX_RECLAIM_LEASES = 139, // "max-reclaim-leases"
862 S_MAX_RECLAIM_TIME = 140, // "max-reclaim-time"
863 S_UNWARNED_RECLAIM_CYCLES = 141, // "unwarned-reclaim-cycles"
864 S_DHCP4O6_PORT = 142, // "dhcp4o6-port"
865 S_DHCP_MULTI_THREADING = 143, // "multi-threading"
866 S_ENABLE_MULTI_THREADING = 144, // "enable-multi-threading"
867 S_THREAD_POOL_SIZE = 145, // "thread-pool-size"
868 S_PACKET_QUEUE_SIZE = 146, // "packet-queue-size"
869 S_CONTROL_SOCKET = 147, // "control-socket"
870 S_SOCKET_TYPE = 148, // "socket-type"
871 S_SOCKET_NAME = 149, // "socket-name"
872 S_DHCP_QUEUE_CONTROL = 150, // "dhcp-queue-control"
873 S_ENABLE_QUEUE = 151, // "enable-queue"
874 S_QUEUE_TYPE = 152, // "queue-type"
875 S_CAPACITY = 153, // "capacity"
876 S_DHCP_DDNS = 154, // "dhcp-ddns"
877 S_ENABLE_UPDATES = 155, // "enable-updates"
878 S_QUALIFYING_SUFFIX = 156, // "qualifying-suffix"
879 S_SERVER_IP = 157, // "server-ip"
880 S_SERVER_PORT = 158, // "server-port"
881 S_SENDER_IP = 159, // "sender-ip"
882 S_SENDER_PORT = 160, // "sender-port"
883 S_MAX_QUEUE_SIZE = 161, // "max-queue-size"
884 S_NCR_PROTOCOL = 162, // "ncr-protocol"
885 S_NCR_FORMAT = 163, // "ncr-format"
886 S_OVERRIDE_NO_UPDATE = 164, // "override-no-update"
887 S_OVERRIDE_CLIENT_UPDATE = 165, // "override-client-update"
888 S_REPLACE_CLIENT_NAME = 166, // "replace-client-name"
889 S_GENERATED_PREFIX = 167, // "generated-prefix"
890 S_TCP = 168, // "tcp"
891 S_JSON = 169, // "JSON"
892 S_WHEN_PRESENT = 170, // "when-present"
893 S_NEVER = 171, // "never"
894 S_ALWAYS = 172, // "always"
895 S_WHEN_NOT_PRESENT = 173, // "when-not-present"
896 S_HOSTNAME_CHAR_SET = 174, // "hostname-char-set"
897 S_HOSTNAME_CHAR_REPLACEMENT = 175, // "hostname-char-replacement"
898 S_IP_RESERVATIONS_UNIQUE = 176, // "ip-reservations-unique"
899 S_LOGGERS = 177, // "loggers"
900 S_OUTPUT_OPTIONS = 178, // "output_options"
901 S_OUTPUT = 179, // "output"
902 S_DEBUGLEVEL = 180, // "debuglevel"
903 S_SEVERITY = 181, // "severity"
904 S_FLUSH = 182, // "flush"
905 S_MAXSIZE = 183, // "maxsize"
906 S_MAXVER = 184, // "maxver"
907 S_PATTERN = 185, // "pattern"
908 S_COMPATIBILITY = 186, // "compatibility"
909 S_LENIENT_OPTION_PARSING = 187, // "lenient-option-parsing"
910 S_TOPLEVEL_JSON = 188, // TOPLEVEL_JSON
911 S_TOPLEVEL_DHCP4 = 189, // TOPLEVEL_DHCP4
912 S_SUB_DHCP4 = 190, // SUB_DHCP4
913 S_SUB_INTERFACES4 = 191, // SUB_INTERFACES4
914 S_SUB_SUBNET4 = 192, // SUB_SUBNET4
915 S_SUB_POOL4 = 193, // SUB_POOL4
916 S_SUB_RESERVATION = 194, // SUB_RESERVATION
917 S_SUB_OPTION_DEFS = 195, // SUB_OPTION_DEFS
918 S_SUB_OPTION_DEF = 196, // SUB_OPTION_DEF
919 S_SUB_OPTION_DATA = 197, // SUB_OPTION_DATA
920 S_SUB_HOOKS_LIBRARY = 198, // SUB_HOOKS_LIBRARY
921 S_SUB_DHCP_DDNS = 199, // SUB_DHCP_DDNS
922 S_SUB_CONFIG_CONTROL = 200, // SUB_CONFIG_CONTROL
923 S_STRING = 201, // "constant string"
924 S_INTEGER = 202, // "integer"
925 S_FLOAT = 203, // "floating point"
926 S_BOOLEAN = 204, // "boolean"
927 S_YYACCEPT = 205, // $accept
928 S_start = 206, // start
929 S_207_1 = 207, // $@1
930 S_208_2 = 208, // $@2
931 S_209_3 = 209, // $@3
932 S_210_4 = 210, // $@4
933 S_211_5 = 211, // $@5
934 S_212_6 = 212, // $@6
935 S_213_7 = 213, // $@7
936 S_214_8 = 214, // $@8
937 S_215_9 = 215, // $@9
938 S_216_10 = 216, // $@10
939 S_217_11 = 217, // $@11
940 S_218_12 = 218, // $@12
941 S_219_13 = 219, // $@13
942 S_value = 220, // value
943 S_sub_json = 221, // sub_json
944 S_map2 = 222, // map2
945 S_223_14 = 223, // $@14
946 S_map_value = 224, // map_value
947 S_map_content = 225, // map_content
948 S_not_empty_map = 226, // not_empty_map
949 S_list_generic = 227, // list_generic
950 S_228_15 = 228, // $@15
951 S_list_content = 229, // list_content
952 S_not_empty_list = 230, // not_empty_list
953 S_list_strings = 231, // list_strings
954 S_232_16 = 232, // $@16
955 S_list_strings_content = 233, // list_strings_content
956 S_not_empty_list_strings = 234, // not_empty_list_strings
957 S_unknown_map_entry = 235, // unknown_map_entry
958 S_syntax_map = 236, // syntax_map
959 S_237_17 = 237, // $@17
960 S_global_object = 238, // global_object
961 S_239_18 = 239, // $@18
962 S_sub_dhcp4 = 240, // sub_dhcp4
963 S_241_19 = 241, // $@19
964 S_global_params = 242, // global_params
965 S_global_param = 243, // global_param
966 S_valid_lifetime = 244, // valid_lifetime
967 S_min_valid_lifetime = 245, // min_valid_lifetime
968 S_max_valid_lifetime = 246, // max_valid_lifetime
969 S_renew_timer = 247, // renew_timer
970 S_rebind_timer = 248, // rebind_timer
971 S_calculate_tee_times = 249, // calculate_tee_times
972 S_t1_percent = 250, // t1_percent
973 S_t2_percent = 251, // t2_percent
974 S_cache_threshold = 252, // cache_threshold
975 S_cache_max_age = 253, // cache_max_age
976 S_decline_probation_period = 254, // decline_probation_period
977 S_server_tag = 255, // server_tag
978 S_256_20 = 256, // $@20
979 S_parked_packet_limit = 257, // parked_packet_limit
980 S_echo_client_id = 258, // echo_client_id
981 S_match_client_id = 259, // match_client_id
982 S_authoritative = 260, // authoritative
983 S_ddns_send_updates = 261, // ddns_send_updates
984 S_ddns_override_no_update = 262, // ddns_override_no_update
985 S_ddns_override_client_update = 263, // ddns_override_client_update
986 S_ddns_replace_client_name = 264, // ddns_replace_client_name
987 S_265_21 = 265, // $@21
988 S_ddns_replace_client_name_value = 266, // ddns_replace_client_name_value
989 S_ddns_generated_prefix = 267, // ddns_generated_prefix
990 S_268_22 = 268, // $@22
991 S_ddns_qualifying_suffix = 269, // ddns_qualifying_suffix
992 S_270_23 = 270, // $@23
993 S_ddns_update_on_renew = 271, // ddns_update_on_renew
994 S_ddns_use_conflict_resolution = 272, // ddns_use_conflict_resolution
995 S_hostname_char_set = 273, // hostname_char_set
996 S_274_24 = 274, // $@24
997 S_hostname_char_replacement = 275, // hostname_char_replacement
998 S_276_25 = 276, // $@25
999 S_store_extended_info = 277, // store_extended_info
1000 S_statistic_default_sample_count = 278, // statistic_default_sample_count
1001 S_statistic_default_sample_age = 279, // statistic_default_sample_age
1002 S_ip_reservations_unique = 280, // ip_reservations_unique
1003 S_interfaces_config = 281, // interfaces_config
1004 S_282_26 = 282, // $@26
1005 S_interfaces_config_params = 283, // interfaces_config_params
1006 S_interfaces_config_param = 284, // interfaces_config_param
1007 S_sub_interfaces4 = 285, // sub_interfaces4
1008 S_286_27 = 286, // $@27
1009 S_interfaces_list = 287, // interfaces_list
1010 S_288_28 = 288, // $@28
1011 S_dhcp_socket_type = 289, // dhcp_socket_type
1012 S_290_29 = 290, // $@29
1013 S_socket_type = 291, // socket_type
1014 S_outbound_interface = 292, // outbound_interface
1015 S_293_30 = 293, // $@30
1016 S_outbound_interface_value = 294, // outbound_interface_value
1017 S_re_detect = 295, // re_detect
1018 S_lease_database = 296, // lease_database
1019 S_297_31 = 297, // $@31
1020 S_sanity_checks = 298, // sanity_checks
1021 S_299_32 = 299, // $@32
1022 S_sanity_checks_params = 300, // sanity_checks_params
1023 S_sanity_checks_param = 301, // sanity_checks_param
1024 S_lease_checks = 302, // lease_checks
1025 S_303_33 = 303, // $@33
1026 S_hosts_database = 304, // hosts_database
1027 S_305_34 = 305, // $@34
1028 S_hosts_databases = 306, // hosts_databases
1029 S_307_35 = 307, // $@35
1030 S_database_list = 308, // database_list
1031 S_not_empty_database_list = 309, // not_empty_database_list
1032 S_database = 310, // database
1033 S_311_36 = 311, // $@36
1034 S_database_map_params = 312, // database_map_params
1035 S_database_map_param = 313, // database_map_param
1036 S_database_type = 314, // database_type
1037 S_315_37 = 315, // $@37
1038 S_db_type = 316, // db_type
1039 S_user = 317, // user
1040 S_318_38 = 318, // $@38
1041 S_password = 319, // password
1042 S_320_39 = 320, // $@39
1043 S_host = 321, // host
1044 S_322_40 = 322, // $@40
1045 S_port = 323, // port
1046 S_name = 324, // name
1047 S_325_41 = 325, // $@41
1048 S_persist = 326, // persist
1049 S_lfc_interval = 327, // lfc_interval
1050 S_readonly = 328, // readonly
1051 S_connect_timeout = 329, // connect_timeout
1052 S_request_timeout = 330, // request_timeout
1053 S_tcp_keepalive = 331, // tcp_keepalive
1054 S_tcp_nodelay = 332, // tcp_nodelay
1055 S_contact_points = 333, // contact_points
1056 S_334_42 = 334, // $@42
1057 S_keyspace = 335, // keyspace
1058 S_336_43 = 336, // $@43
1059 S_consistency = 337, // consistency
1060 S_338_44 = 338, // $@44
1061 S_serial_consistency = 339, // serial_consistency
1062 S_340_45 = 340, // $@45
1063 S_max_reconnect_tries = 341, // max_reconnect_tries
1064 S_reconnect_wait_time = 342, // reconnect_wait_time
1065 S_on_fail = 343, // on_fail
1066 S_344_46 = 344, // $@46
1067 S_on_fail_mode = 345, // on_fail_mode
1068 S_max_row_errors = 346, // max_row_errors
1069 S_host_reservation_identifiers = 347, // host_reservation_identifiers
1070 S_348_47 = 348, // $@47
1071 S_host_reservation_identifiers_list = 349, // host_reservation_identifiers_list
1072 S_host_reservation_identifier = 350, // host_reservation_identifier
1073 S_duid_id = 351, // duid_id
1074 S_hw_address_id = 352, // hw_address_id
1075 S_circuit_id = 353, // circuit_id
1076 S_client_id = 354, // client_id
1077 S_flex_id = 355, // flex_id
1078 S_dhcp_multi_threading = 356, // dhcp_multi_threading
1079 S_357_48 = 357, // $@48
1080 S_multi_threading_params = 358, // multi_threading_params
1081 S_multi_threading_param = 359, // multi_threading_param
1082 S_enable_multi_threading = 360, // enable_multi_threading
1083 S_thread_pool_size = 361, // thread_pool_size
1084 S_packet_queue_size = 362, // packet_queue_size
1085 S_hooks_libraries = 363, // hooks_libraries
1086 S_364_49 = 364, // $@49
1087 S_hooks_libraries_list = 365, // hooks_libraries_list
1088 S_not_empty_hooks_libraries_list = 366, // not_empty_hooks_libraries_list
1089 S_hooks_library = 367, // hooks_library
1090 S_368_50 = 368, // $@50
1091 S_sub_hooks_library = 369, // sub_hooks_library
1092 S_370_51 = 370, // $@51
1093 S_hooks_params = 371, // hooks_params
1094 S_hooks_param = 372, // hooks_param
1095 S_library = 373, // library
1096 S_374_52 = 374, // $@52
1097 S_parameters = 375, // parameters
1098 S_376_53 = 376, // $@53
1099 S_expired_leases_processing = 377, // expired_leases_processing
1100 S_378_54 = 378, // $@54
1101 S_expired_leases_params = 379, // expired_leases_params
1102 S_expired_leases_param = 380, // expired_leases_param
1103 S_reclaim_timer_wait_time = 381, // reclaim_timer_wait_time
1104 S_flush_reclaimed_timer_wait_time = 382, // flush_reclaimed_timer_wait_time
1105 S_hold_reclaimed_time = 383, // hold_reclaimed_time
1106 S_max_reclaim_leases = 384, // max_reclaim_leases
1107 S_max_reclaim_time = 385, // max_reclaim_time
1108 S_unwarned_reclaim_cycles = 386, // unwarned_reclaim_cycles
1109 S_subnet4_list = 387, // subnet4_list
1110 S_388_55 = 388, // $@55
1111 S_subnet4_list_content = 389, // subnet4_list_content
1112 S_not_empty_subnet4_list = 390, // not_empty_subnet4_list
1113 S_subnet4 = 391, // subnet4
1114 S_392_56 = 392, // $@56
1115 S_sub_subnet4 = 393, // sub_subnet4
1116 S_394_57 = 394, // $@57
1117 S_subnet4_params = 395, // subnet4_params
1118 S_subnet4_param = 396, // subnet4_param
1119 S_subnet = 397, // subnet
1120 S_398_58 = 398, // $@58
1121 S_subnet_4o6_interface = 399, // subnet_4o6_interface
1122 S_400_59 = 400, // $@59
1123 S_subnet_4o6_interface_id = 401, // subnet_4o6_interface_id
1124 S_402_60 = 402, // $@60
1125 S_subnet_4o6_subnet = 403, // subnet_4o6_subnet
1126 S_404_61 = 404, // $@61
1127 S_interface = 405, // interface
1128 S_406_62 = 406, // $@62
1129 S_client_class = 407, // client_class
1130 S_408_63 = 408, // $@63
1131 S_require_client_classes = 409, // require_client_classes
1132 S_410_64 = 410, // $@64
1133 S_reservations_global = 411, // reservations_global
1134 S_reservations_in_subnet = 412, // reservations_in_subnet
1135 S_reservations_out_of_pool = 413, // reservations_out_of_pool
1136 S_reservation_mode = 414, // reservation_mode
1137 S_415_65 = 415, // $@65
1138 S_hr_mode = 416, // hr_mode
1139 S_id = 417, // id
1140 S_shared_networks = 418, // shared_networks
1141 S_419_66 = 419, // $@66
1142 S_shared_networks_content = 420, // shared_networks_content
1143 S_shared_networks_list = 421, // shared_networks_list
1144 S_shared_network = 422, // shared_network
1145 S_423_67 = 423, // $@67
1146 S_shared_network_params = 424, // shared_network_params
1147 S_shared_network_param = 425, // shared_network_param
1148 S_option_def_list = 426, // option_def_list
1149 S_427_68 = 427, // $@68
1150 S_sub_option_def_list = 428, // sub_option_def_list
1151 S_429_69 = 429, // $@69
1152 S_option_def_list_content = 430, // option_def_list_content
1153 S_not_empty_option_def_list = 431, // not_empty_option_def_list
1154 S_option_def_entry = 432, // option_def_entry
1155 S_433_70 = 433, // $@70
1156 S_sub_option_def = 434, // sub_option_def
1157 S_435_71 = 435, // $@71
1158 S_option_def_params = 436, // option_def_params
1159 S_not_empty_option_def_params = 437, // not_empty_option_def_params
1160 S_option_def_param = 438, // option_def_param
1161 S_option_def_name = 439, // option_def_name
1162 S_code = 440, // code
1163 S_option_def_code = 441, // option_def_code
1164 S_option_def_type = 442, // option_def_type
1165 S_443_72 = 443, // $@72
1166 S_option_def_record_types = 444, // option_def_record_types
1167 S_445_73 = 445, // $@73
1168 S_space = 446, // space
1169 S_447_74 = 447, // $@74
1170 S_option_def_space = 448, // option_def_space
1171 S_option_def_encapsulate = 449, // option_def_encapsulate
1172 S_450_75 = 450, // $@75
1173 S_option_def_array = 451, // option_def_array
1174 S_option_data_list = 452, // option_data_list
1175 S_453_76 = 453, // $@76
1176 S_option_data_list_content = 454, // option_data_list_content
1177 S_not_empty_option_data_list = 455, // not_empty_option_data_list
1178 S_option_data_entry = 456, // option_data_entry
1179 S_457_77 = 457, // $@77
1180 S_sub_option_data = 458, // sub_option_data
1181 S_459_78 = 459, // $@78
1182 S_option_data_params = 460, // option_data_params
1183 S_not_empty_option_data_params = 461, // not_empty_option_data_params
1184 S_option_data_param = 462, // option_data_param
1185 S_option_data_name = 463, // option_data_name
1186 S_option_data_data = 464, // option_data_data
1187 S_465_79 = 465, // $@79
1188 S_option_data_code = 466, // option_data_code
1189 S_option_data_space = 467, // option_data_space
1190 S_option_data_csv_format = 468, // option_data_csv_format
1191 S_option_data_always_send = 469, // option_data_always_send
1192 S_pools_list = 470, // pools_list
1193 S_471_80 = 471, // $@80
1194 S_pools_list_content = 472, // pools_list_content
1195 S_not_empty_pools_list = 473, // not_empty_pools_list
1196 S_pool_list_entry = 474, // pool_list_entry
1197 S_475_81 = 475, // $@81
1198 S_sub_pool4 = 476, // sub_pool4
1199 S_477_82 = 477, // $@82
1200 S_pool_params = 478, // pool_params
1201 S_pool_param = 479, // pool_param
1202 S_pool_entry = 480, // pool_entry
1203 S_481_83 = 481, // $@83
1204 S_user_context = 482, // user_context
1205 S_483_84 = 483, // $@84
1206 S_comment = 484, // comment
1207 S_485_85 = 485, // $@85
1208 S_reservations = 486, // reservations
1209 S_487_86 = 487, // $@86
1210 S_reservations_list = 488, // reservations_list
1211 S_not_empty_reservations_list = 489, // not_empty_reservations_list
1212 S_reservation = 490, // reservation
1213 S_491_87 = 491, // $@87
1214 S_sub_reservation = 492, // sub_reservation
1215 S_493_88 = 493, // $@88
1216 S_reservation_params = 494, // reservation_params
1217 S_not_empty_reservation_params = 495, // not_empty_reservation_params
1218 S_reservation_param = 496, // reservation_param
1219 S_next_server = 497, // next_server
1220 S_498_89 = 498, // $@89
1221 S_server_hostname = 499, // server_hostname
1222 S_500_90 = 500, // $@90
1223 S_boot_file_name = 501, // boot_file_name
1224 S_502_91 = 502, // $@91
1225 S_ip_address = 503, // ip_address
1226 S_504_92 = 504, // $@92
1227 S_ip_addresses = 505, // ip_addresses
1228 S_506_93 = 506, // $@93
1229 S_duid = 507, // duid
1230 S_508_94 = 508, // $@94
1231 S_hw_address = 509, // hw_address
1232 S_510_95 = 510, // $@95
1233 S_client_id_value = 511, // client_id_value
1234 S_512_96 = 512, // $@96
1235 S_circuit_id_value = 513, // circuit_id_value
1236 S_514_97 = 514, // $@97
1237 S_flex_id_value = 515, // flex_id_value
1238 S_516_98 = 516, // $@98
1239 S_hostname = 517, // hostname
1240 S_518_99 = 518, // $@99
1241 S_reservation_client_classes = 519, // reservation_client_classes
1242 S_520_100 = 520, // $@100
1243 S_relay = 521, // relay
1244 S_522_101 = 522, // $@101
1245 S_relay_map = 523, // relay_map
1246 S_client_classes = 524, // client_classes
1247 S_525_102 = 525, // $@102
1248 S_client_classes_list = 526, // client_classes_list
1249 S_client_class_entry = 527, // client_class_entry
1250 S_528_103 = 528, // $@103
1251 S_client_class_params = 529, // client_class_params
1252 S_not_empty_client_class_params = 530, // not_empty_client_class_params
1253 S_client_class_param = 531, // client_class_param
1254 S_client_class_name = 532, // client_class_name
1255 S_client_class_test = 533, // client_class_test
1256 S_534_104 = 534, // $@104
1257 S_only_if_required = 535, // only_if_required
1258 S_dhcp4o6_port = 536, // dhcp4o6_port
1259 S_control_socket = 537, // control_socket
1260 S_538_105 = 538, // $@105
1261 S_control_socket_params = 539, // control_socket_params
1262 S_control_socket_param = 540, // control_socket_param
1263 S_control_socket_type = 541, // control_socket_type
1264 S_542_106 = 542, // $@106
1265 S_control_socket_name = 543, // control_socket_name
1266 S_544_107 = 544, // $@107
1267 S_dhcp_queue_control = 545, // dhcp_queue_control
1268 S_546_108 = 546, // $@108
1269 S_queue_control_params = 547, // queue_control_params
1270 S_queue_control_param = 548, // queue_control_param
1271 S_enable_queue = 549, // enable_queue
1272 S_queue_type = 550, // queue_type
1273 S_551_109 = 551, // $@109
1274 S_capacity = 552, // capacity
1275 S_arbitrary_map_entry = 553, // arbitrary_map_entry
1276 S_554_110 = 554, // $@110
1277 S_dhcp_ddns = 555, // dhcp_ddns
1278 S_556_111 = 556, // $@111
1279 S_sub_dhcp_ddns = 557, // sub_dhcp_ddns
1280 S_558_112 = 558, // $@112
1281 S_dhcp_ddns_params = 559, // dhcp_ddns_params
1282 S_dhcp_ddns_param = 560, // dhcp_ddns_param
1283 S_enable_updates = 561, // enable_updates
1284 S_server_ip = 562, // server_ip
1285 S_563_113 = 563, // $@113
1286 S_server_port = 564, // server_port
1287 S_sender_ip = 565, // sender_ip
1288 S_566_114 = 566, // $@114
1289 S_sender_port = 567, // sender_port
1290 S_max_queue_size = 568, // max_queue_size
1291 S_ncr_protocol = 569, // ncr_protocol
1292 S_570_115 = 570, // $@115
1293 S_ncr_protocol_value = 571, // ncr_protocol_value
1294 S_ncr_format = 572, // ncr_format
1295 S_573_116 = 573, // $@116
1296 S_dep_qualifying_suffix = 574, // dep_qualifying_suffix
1297 S_575_117 = 575, // $@117
1298 S_dep_override_no_update = 576, // dep_override_no_update
1299 S_dep_override_client_update = 577, // dep_override_client_update
1300 S_dep_replace_client_name = 578, // dep_replace_client_name
1301 S_579_118 = 579, // $@118
1302 S_dep_generated_prefix = 580, // dep_generated_prefix
1303 S_581_119 = 581, // $@119
1304 S_dep_hostname_char_set = 582, // dep_hostname_char_set
1305 S_583_120 = 583, // $@120
1306 S_dep_hostname_char_replacement = 584, // dep_hostname_char_replacement
1307 S_585_121 = 585, // $@121
1308 S_config_control = 586, // config_control
1309 S_587_122 = 587, // $@122
1310 S_sub_config_control = 588, // sub_config_control
1311 S_589_123 = 589, // $@123
1312 S_config_control_params = 590, // config_control_params
1313 S_config_control_param = 591, // config_control_param
1314 S_config_databases = 592, // config_databases
1315 S_593_124 = 593, // $@124
1316 S_config_fetch_wait_time = 594, // config_fetch_wait_time
1317 S_loggers = 595, // loggers
1318 S_596_125 = 596, // $@125
1319 S_loggers_entries = 597, // loggers_entries
1320 S_logger_entry = 598, // logger_entry
1321 S_599_126 = 599, // $@126
1322 S_logger_params = 600, // logger_params
1323 S_logger_param = 601, // logger_param
1324 S_debuglevel = 602, // debuglevel
1325 S_severity = 603, // severity
1326 S_604_127 = 604, // $@127
1327 S_output_options_list = 605, // output_options_list
1328 S_606_128 = 606, // $@128
1329 S_output_options_list_content = 607, // output_options_list_content
1330 S_output_entry = 608, // output_entry
1331 S_609_129 = 609, // $@129
1332 S_output_params_list = 610, // output_params_list
1333 S_output_params = 611, // output_params
1334 S_output = 612, // output
1335 S_613_130 = 613, // $@130
1336 S_flush = 614, // flush
1337 S_maxsize = 615, // maxsize
1338 S_maxver = 616, // maxver
1339 S_pattern = 617, // pattern
1340 S_618_131 = 618, // $@131
1341 S_compatibility = 619, // compatibility
1342 S_620_132 = 620, // $@132
1343 S_compatibility_params = 621, // compatibility_params
1344 S_compatibility_param = 622, // compatibility_param
1345 S_lenient_option_parsing = 623 // lenient_option_parsing
1347 };
1348
1351
1354
1361 template <typename Base>
1362 struct basic_symbol : Base
1363 {
1365 typedef Base super_type;
1366
1369 : value ()
1370 , location ()
1371 {}
1372
1373#if 201103L <= YY_CPLUSPLUS
1375 basic_symbol (basic_symbol&& that)
1376 : Base (std::move (that))
1377 , value ()
1378 , location (std::move (that.location))
1379 {
1380 switch (this->kind ())
1381 {
1382 case symbol_kind::S_value: // value
1383 case symbol_kind::S_map_value: // map_value
1384 case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value
1385 case symbol_kind::S_socket_type: // socket_type
1386 case symbol_kind::S_outbound_interface_value: // outbound_interface_value
1387 case symbol_kind::S_db_type: // db_type
1388 case symbol_kind::S_on_fail_mode: // on_fail_mode
1389 case symbol_kind::S_hr_mode: // hr_mode
1390 case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value
1391 value.move< ElementPtr > (std::move (that.value));
1392 break;
1393
1394 case symbol_kind::S_BOOLEAN: // "boolean"
1395 value.move< bool > (std::move (that.value));
1396 break;
1397
1398 case symbol_kind::S_FLOAT: // "floating point"
1399 value.move< double > (std::move (that.value));
1400 break;
1401
1402 case symbol_kind::S_INTEGER: // "integer"
1403 value.move< int64_t > (std::move (that.value));
1404 break;
1405
1406 case symbol_kind::S_STRING: // "constant string"
1407 value.move< std::string > (std::move (that.value));
1408 break;
1409
1410 default:
1411 break;
1412 }
1413
1414 }
1415#endif
1416
1418 basic_symbol (const basic_symbol& that);
1419
1421#if 201103L <= YY_CPLUSPLUS
1422 basic_symbol (typename Base::kind_type t, location_type&& l)
1423 : Base (t)
1424 , location (std::move (l))
1425 {}
1426#else
1427 basic_symbol (typename Base::kind_type t, const location_type& l)
1428 : Base (t)
1429 , location (l)
1430 {}
1431#endif
1432
1433#if 201103L <= YY_CPLUSPLUS
1434 basic_symbol (typename Base::kind_type t, ElementPtr&& v, location_type&& l)
1435 : Base (t)
1436 , value (std::move (v))
1437 , location (std::move (l))
1438 {}
1439#else
1440 basic_symbol (typename Base::kind_type t, const ElementPtr& v, const location_type& l)
1441 : Base (t)
1442 , value (v)
1443 , location (l)
1444 {}
1445#endif
1446
1447#if 201103L <= YY_CPLUSPLUS
1448 basic_symbol (typename Base::kind_type t, bool&& v, location_type&& l)
1449 : Base (t)
1450 , value (std::move (v))
1451 , location (std::move (l))
1452 {}
1453#else
1454 basic_symbol (typename Base::kind_type t, const bool& v, const location_type& l)
1455 : Base (t)
1456 , value (v)
1457 , location (l)
1458 {}
1459#endif
1460
1461#if 201103L <= YY_CPLUSPLUS
1462 basic_symbol (typename Base::kind_type t, double&& v, location_type&& l)
1463 : Base (t)
1464 , value (std::move (v))
1465 , location (std::move (l))
1466 {}
1467#else
1468 basic_symbol (typename Base::kind_type t, const double& v, const location_type& l)
1469 : Base (t)
1470 , value (v)
1471 , location (l)
1472 {}
1473#endif
1474
1475#if 201103L <= YY_CPLUSPLUS
1476 basic_symbol (typename Base::kind_type t, int64_t&& v, location_type&& l)
1477 : Base (t)
1478 , value (std::move (v))
1479 , location (std::move (l))
1480 {}
1481#else
1482 basic_symbol (typename Base::kind_type t, const int64_t& v, const location_type& l)
1483 : Base (t)
1484 , value (v)
1485 , location (l)
1486 {}
1487#endif
1488
1489#if 201103L <= YY_CPLUSPLUS
1490 basic_symbol (typename Base::kind_type t, std::string&& v, location_type&& l)
1491 : Base (t)
1492 , value (std::move (v))
1493 , location (std::move (l))
1494 {}
1495#else
1496 basic_symbol (typename Base::kind_type t, const std::string& v, const location_type& l)
1497 : Base (t)
1498 , value (v)
1499 , location (l)
1500 {}
1501#endif
1502
1505 {
1506 clear ();
1507 }
1508
1509
1510
1513 {
1514 // User destructor.
1515 symbol_kind_type yykind = this->kind ();
1516 basic_symbol<Base>& yysym = *this;
1517 (void) yysym;
1518 switch (yykind)
1519 {
1520 default:
1521 break;
1522 }
1523
1524 // Value type destructor.
1525switch (yykind)
1526 {
1527 case symbol_kind::S_value: // value
1528 case symbol_kind::S_map_value: // map_value
1529 case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value
1530 case symbol_kind::S_socket_type: // socket_type
1531 case symbol_kind::S_outbound_interface_value: // outbound_interface_value
1532 case symbol_kind::S_db_type: // db_type
1533 case symbol_kind::S_on_fail_mode: // on_fail_mode
1534 case symbol_kind::S_hr_mode: // hr_mode
1535 case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value
1536 value.template destroy< ElementPtr > ();
1537 break;
1538
1539 case symbol_kind::S_BOOLEAN: // "boolean"
1540 value.template destroy< bool > ();
1541 break;
1542
1543 case symbol_kind::S_FLOAT: // "floating point"
1544 value.template destroy< double > ();
1545 break;
1546
1547 case symbol_kind::S_INTEGER: // "integer"
1548 value.template destroy< int64_t > ();
1549 break;
1550
1551 case symbol_kind::S_STRING: // "constant string"
1552 value.template destroy< std::string > ();
1553 break;
1554
1555 default:
1556 break;
1557 }
1558
1559 Base::clear ();
1560 }
1561
1563 std::string name () const YY_NOEXCEPT
1564 {
1565 return Dhcp4Parser::symbol_name (this->kind ());
1566 }
1567
1569 symbol_kind_type type_get () const YY_NOEXCEPT;
1570
1572 bool empty () const YY_NOEXCEPT;
1573
1575 void move (basic_symbol& s);
1576
1579
1582
1583 private:
1584#if YY_CPLUSPLUS < 201103L
1586 basic_symbol& operator= (const basic_symbol& that);
1587#endif
1588 };
1589
1591 struct by_kind
1592 {
1595
1598
1599#if 201103L <= YY_CPLUSPLUS
1601 by_kind (by_kind&& that) YY_NOEXCEPT;
1602#endif
1603
1605 by_kind (const by_kind& that) YY_NOEXCEPT;
1606
1609
1610
1611
1613 void clear () YY_NOEXCEPT;
1614
1616 void move (by_kind& that);
1617
1620 symbol_kind_type kind () const YY_NOEXCEPT;
1621
1623 symbol_kind_type type_get () const YY_NOEXCEPT;
1624
1628 };
1629
1632
1635 {
1638
1641
1643#if 201103L <= YY_CPLUSPLUS
1644 symbol_type (int tok, location_type l)
1645 : super_type (token_kind_type (tok), std::move (l))
1646#else
1647 symbol_type (int tok, const location_type& l)
1648 : super_type (token_kind_type (tok), l)
1649#endif
1650 {
1651#if !defined _MSC_VER || defined __clang__
1654#endif
1655 }
1656#if 201103L <= YY_CPLUSPLUS
1657 symbol_type (int tok, bool v, location_type l)
1658 : super_type (token_kind_type (tok), std::move (v), std::move (l))
1659#else
1660 symbol_type (int tok, const bool& v, const location_type& l)
1661 : super_type (token_kind_type (tok), v, l)
1662#endif
1663 {
1664#if !defined _MSC_VER || defined __clang__
1666#endif
1667 }
1668#if 201103L <= YY_CPLUSPLUS
1669 symbol_type (int tok, double v, location_type l)
1670 : super_type (token_kind_type (tok), std::move (v), std::move (l))
1671#else
1672 symbol_type (int tok, const double& v, const location_type& l)
1673 : super_type (token_kind_type (tok), v, l)
1674#endif
1675 {
1676#if !defined _MSC_VER || defined __clang__
1678#endif
1679 }
1680#if 201103L <= YY_CPLUSPLUS
1681 symbol_type (int tok, int64_t v, location_type l)
1682 : super_type (token_kind_type (tok), std::move (v), std::move (l))
1683#else
1684 symbol_type (int tok, const int64_t& v, const location_type& l)
1685 : super_type (token_kind_type (tok), v, l)
1686#endif
1687 {
1688#if !defined _MSC_VER || defined __clang__
1690#endif
1691 }
1692#if 201103L <= YY_CPLUSPLUS
1693 symbol_type (int tok, std::string v, location_type l)
1694 : super_type (token_kind_type (tok), std::move (v), std::move (l))
1695#else
1696 symbol_type (int tok, const std::string& v, const location_type& l)
1697 : super_type (token_kind_type (tok), v, l)
1698#endif
1699 {
1700#if !defined _MSC_VER || defined __clang__
1702#endif
1703 }
1704 };
1705
1708 virtual ~Dhcp4Parser ();
1709
1710#if 201103L <= YY_CPLUSPLUS
1712 Dhcp4Parser (const Dhcp4Parser&) = delete;
1714 Dhcp4Parser& operator= (const Dhcp4Parser&) = delete;
1715#endif
1716
1719 int operator() ();
1720
1723 virtual int parse ();
1724
1725#if PARSER4_DEBUG
1727 std::ostream& debug_stream () const YY_ATTRIBUTE_PURE;
1729 void set_debug_stream (std::ostream &);
1730
1732 typedef int debug_level_type;
1737#endif
1738
1742 virtual void error (const location_type& loc, const std::string& msg);
1743
1745 void error (const syntax_error& err);
1746
1749 static std::string symbol_name (symbol_kind_type yysymbol);
1750
1751 // Implementation of make_symbol for each token kind.
1752#if 201103L <= YY_CPLUSPLUS
1753 static
1756 {
1757 return symbol_type (token::TOKEN_END, std::move (l));
1758 }
1759#else
1760 static
1761 symbol_type
1763 {
1764 return symbol_type (token::TOKEN_END, l);
1765 }
1766#endif
1767#if 201103L <= YY_CPLUSPLUS
1768 static
1769 symbol_type
1771 {
1772 return symbol_type (token::TOKEN_PARSER4_error, std::move (l));
1773 }
1774#else
1775 static
1776 symbol_type
1778 {
1780 }
1781#endif
1782#if 201103L <= YY_CPLUSPLUS
1783 static
1784 symbol_type
1786 {
1787 return symbol_type (token::TOKEN_PARSER4_UNDEF, std::move (l));
1788 }
1789#else
1790 static
1791 symbol_type
1793 {
1795 }
1796#endif
1797#if 201103L <= YY_CPLUSPLUS
1798 static
1799 symbol_type
1801 {
1802 return symbol_type (token::TOKEN_COMMA, std::move (l));
1803 }
1804#else
1805 static
1806 symbol_type
1808 {
1809 return symbol_type (token::TOKEN_COMMA, l);
1810 }
1811#endif
1812#if 201103L <= YY_CPLUSPLUS
1813 static
1814 symbol_type
1816 {
1817 return symbol_type (token::TOKEN_COLON, std::move (l));
1818 }
1819#else
1820 static
1821 symbol_type
1823 {
1824 return symbol_type (token::TOKEN_COLON, l);
1825 }
1826#endif
1827#if 201103L <= YY_CPLUSPLUS
1828 static
1829 symbol_type
1831 {
1832 return symbol_type (token::TOKEN_LSQUARE_BRACKET, std::move (l));
1833 }
1834#else
1835 static
1836 symbol_type
1838 {
1840 }
1841#endif
1842#if 201103L <= YY_CPLUSPLUS
1843 static
1844 symbol_type
1846 {
1847 return symbol_type (token::TOKEN_RSQUARE_BRACKET, std::move (l));
1848 }
1849#else
1850 static
1851 symbol_type
1853 {
1855 }
1856#endif
1857#if 201103L <= YY_CPLUSPLUS
1858 static
1859 symbol_type
1861 {
1862 return symbol_type (token::TOKEN_LCURLY_BRACKET, std::move (l));
1863 }
1864#else
1865 static
1866 symbol_type
1868 {
1870 }
1871#endif
1872#if 201103L <= YY_CPLUSPLUS
1873 static
1874 symbol_type
1876 {
1877 return symbol_type (token::TOKEN_RCURLY_BRACKET, std::move (l));
1878 }
1879#else
1880 static
1881 symbol_type
1883 {
1885 }
1886#endif
1887#if 201103L <= YY_CPLUSPLUS
1888 static
1889 symbol_type
1891 {
1892 return symbol_type (token::TOKEN_NULL_TYPE, std::move (l));
1893 }
1894#else
1895 static
1896 symbol_type
1898 {
1900 }
1901#endif
1902#if 201103L <= YY_CPLUSPLUS
1903 static
1904 symbol_type
1906 {
1907 return symbol_type (token::TOKEN_DHCP4, std::move (l));
1908 }
1909#else
1910 static
1911 symbol_type
1913 {
1914 return symbol_type (token::TOKEN_DHCP4, l);
1915 }
1916#endif
1917#if 201103L <= YY_CPLUSPLUS
1918 static
1919 symbol_type
1921 {
1922 return symbol_type (token::TOKEN_CONFIG_CONTROL, std::move (l));
1923 }
1924#else
1925 static
1926 symbol_type
1928 {
1930 }
1931#endif
1932#if 201103L <= YY_CPLUSPLUS
1933 static
1934 symbol_type
1936 {
1937 return symbol_type (token::TOKEN_CONFIG_DATABASES, std::move (l));
1938 }
1939#else
1940 static
1941 symbol_type
1943 {
1945 }
1946#endif
1947#if 201103L <= YY_CPLUSPLUS
1948 static
1949 symbol_type
1951 {
1952 return symbol_type (token::TOKEN_CONFIG_FETCH_WAIT_TIME, std::move (l));
1953 }
1954#else
1955 static
1956 symbol_type
1958 {
1960 }
1961#endif
1962#if 201103L <= YY_CPLUSPLUS
1963 static
1964 symbol_type
1966 {
1967 return symbol_type (token::TOKEN_INTERFACES_CONFIG, std::move (l));
1968 }
1969#else
1970 static
1971 symbol_type
1973 {
1975 }
1976#endif
1977#if 201103L <= YY_CPLUSPLUS
1978 static
1979 symbol_type
1981 {
1982 return symbol_type (token::TOKEN_INTERFACES, std::move (l));
1983 }
1984#else
1985 static
1986 symbol_type
1988 {
1990 }
1991#endif
1992#if 201103L <= YY_CPLUSPLUS
1993 static
1994 symbol_type
1996 {
1997 return symbol_type (token::TOKEN_DHCP_SOCKET_TYPE, std::move (l));
1998 }
1999#else
2000 static
2001 symbol_type
2003 {
2005 }
2006#endif
2007#if 201103L <= YY_CPLUSPLUS
2008 static
2009 symbol_type
2011 {
2012 return symbol_type (token::TOKEN_RAW, std::move (l));
2013 }
2014#else
2015 static
2016 symbol_type
2018 {
2019 return symbol_type (token::TOKEN_RAW, l);
2020 }
2021#endif
2022#if 201103L <= YY_CPLUSPLUS
2023 static
2024 symbol_type
2026 {
2027 return symbol_type (token::TOKEN_UDP, std::move (l));
2028 }
2029#else
2030 static
2031 symbol_type
2033 {
2034 return symbol_type (token::TOKEN_UDP, l);
2035 }
2036#endif
2037#if 201103L <= YY_CPLUSPLUS
2038 static
2039 symbol_type
2041 {
2042 return symbol_type (token::TOKEN_OUTBOUND_INTERFACE, std::move (l));
2043 }
2044#else
2045 static
2046 symbol_type
2048 {
2050 }
2051#endif
2052#if 201103L <= YY_CPLUSPLUS
2053 static
2054 symbol_type
2056 {
2057 return symbol_type (token::TOKEN_SAME_AS_INBOUND, std::move (l));
2058 }
2059#else
2060 static
2061 symbol_type
2063 {
2065 }
2066#endif
2067#if 201103L <= YY_CPLUSPLUS
2068 static
2069 symbol_type
2071 {
2072 return symbol_type (token::TOKEN_USE_ROUTING, std::move (l));
2073 }
2074#else
2075 static
2076 symbol_type
2078 {
2080 }
2081#endif
2082#if 201103L <= YY_CPLUSPLUS
2083 static
2084 symbol_type
2086 {
2087 return symbol_type (token::TOKEN_RE_DETECT, std::move (l));
2088 }
2089#else
2090 static
2091 symbol_type
2093 {
2095 }
2096#endif
2097#if 201103L <= YY_CPLUSPLUS
2098 static
2099 symbol_type
2101 {
2102 return symbol_type (token::TOKEN_SANITY_CHECKS, std::move (l));
2103 }
2104#else
2105 static
2106 symbol_type
2108 {
2110 }
2111#endif
2112#if 201103L <= YY_CPLUSPLUS
2113 static
2114 symbol_type
2116 {
2117 return symbol_type (token::TOKEN_LEASE_CHECKS, std::move (l));
2118 }
2119#else
2120 static
2121 symbol_type
2123 {
2125 }
2126#endif
2127#if 201103L <= YY_CPLUSPLUS
2128 static
2129 symbol_type
2131 {
2132 return symbol_type (token::TOKEN_ECHO_CLIENT_ID, std::move (l));
2133 }
2134#else
2135 static
2136 symbol_type
2138 {
2140 }
2141#endif
2142#if 201103L <= YY_CPLUSPLUS
2143 static
2144 symbol_type
2146 {
2147 return symbol_type (token::TOKEN_MATCH_CLIENT_ID, std::move (l));
2148 }
2149#else
2150 static
2151 symbol_type
2153 {
2155 }
2156#endif
2157#if 201103L <= YY_CPLUSPLUS
2158 static
2159 symbol_type
2161 {
2162 return symbol_type (token::TOKEN_AUTHORITATIVE, std::move (l));
2163 }
2164#else
2165 static
2166 symbol_type
2168 {
2170 }
2171#endif
2172#if 201103L <= YY_CPLUSPLUS
2173 static
2174 symbol_type
2176 {
2177 return symbol_type (token::TOKEN_NEXT_SERVER, std::move (l));
2178 }
2179#else
2180 static
2181 symbol_type
2183 {
2185 }
2186#endif
2187#if 201103L <= YY_CPLUSPLUS
2188 static
2189 symbol_type
2191 {
2192 return symbol_type (token::TOKEN_SERVER_HOSTNAME, std::move (l));
2193 }
2194#else
2195 static
2196 symbol_type
2198 {
2200 }
2201#endif
2202#if 201103L <= YY_CPLUSPLUS
2203 static
2204 symbol_type
2206 {
2207 return symbol_type (token::TOKEN_BOOT_FILE_NAME, std::move (l));
2208 }
2209#else
2210 static
2211 symbol_type
2213 {
2215 }
2216#endif
2217#if 201103L <= YY_CPLUSPLUS
2218 static
2219 symbol_type
2221 {
2222 return symbol_type (token::TOKEN_LEASE_DATABASE, std::move (l));
2223 }
2224#else
2225 static
2226 symbol_type
2228 {
2230 }
2231#endif
2232#if 201103L <= YY_CPLUSPLUS
2233 static
2234 symbol_type
2236 {
2237 return symbol_type (token::TOKEN_HOSTS_DATABASE, std::move (l));
2238 }
2239#else
2240 static
2241 symbol_type
2243 {
2245 }
2246#endif
2247#if 201103L <= YY_CPLUSPLUS
2248 static
2249 symbol_type
2251 {
2252 return symbol_type (token::TOKEN_HOSTS_DATABASES, std::move (l));
2253 }
2254#else
2255 static
2256 symbol_type
2258 {
2260 }
2261#endif
2262#if 201103L <= YY_CPLUSPLUS
2263 static
2264 symbol_type
2266 {
2267 return symbol_type (token::TOKEN_TYPE, std::move (l));
2268 }
2269#else
2270 static
2271 symbol_type
2273 {
2274 return symbol_type (token::TOKEN_TYPE, l);
2275 }
2276#endif
2277#if 201103L <= YY_CPLUSPLUS
2278 static
2279 symbol_type
2281 {
2282 return symbol_type (token::TOKEN_MEMFILE, std::move (l));
2283 }
2284#else
2285 static
2286 symbol_type
2288 {
2290 }
2291#endif
2292#if 201103L <= YY_CPLUSPLUS
2293 static
2294 symbol_type
2296 {
2297 return symbol_type (token::TOKEN_MYSQL, std::move (l));
2298 }
2299#else
2300 static
2301 symbol_type
2303 {
2304 return symbol_type (token::TOKEN_MYSQL, l);
2305 }
2306#endif
2307#if 201103L <= YY_CPLUSPLUS
2308 static
2309 symbol_type
2311 {
2312 return symbol_type (token::TOKEN_POSTGRESQL, std::move (l));
2313 }
2314#else
2315 static
2316 symbol_type
2318 {
2320 }
2321#endif
2322#if 201103L <= YY_CPLUSPLUS
2323 static
2324 symbol_type
2326 {
2327 return symbol_type (token::TOKEN_CQL, std::move (l));
2328 }
2329#else
2330 static
2331 symbol_type
2333 {
2334 return symbol_type (token::TOKEN_CQL, l);
2335 }
2336#endif
2337#if 201103L <= YY_CPLUSPLUS
2338 static
2339 symbol_type
2341 {
2342 return symbol_type (token::TOKEN_USER, std::move (l));
2343 }
2344#else
2345 static
2346 symbol_type
2348 {
2349 return symbol_type (token::TOKEN_USER, l);
2350 }
2351#endif
2352#if 201103L <= YY_CPLUSPLUS
2353 static
2354 symbol_type
2356 {
2357 return symbol_type (token::TOKEN_PASSWORD, std::move (l));
2358 }
2359#else
2360 static
2361 symbol_type
2363 {
2365 }
2366#endif
2367#if 201103L <= YY_CPLUSPLUS
2368 static
2369 symbol_type
2371 {
2372 return symbol_type (token::TOKEN_HOST, std::move (l));
2373 }
2374#else
2375 static
2376 symbol_type
2378 {
2379 return symbol_type (token::TOKEN_HOST, l);
2380 }
2381#endif
2382#if 201103L <= YY_CPLUSPLUS
2383 static
2384 symbol_type
2386 {
2387 return symbol_type (token::TOKEN_PORT, std::move (l));
2388 }
2389#else
2390 static
2391 symbol_type
2393 {
2394 return symbol_type (token::TOKEN_PORT, l);
2395 }
2396#endif
2397#if 201103L <= YY_CPLUSPLUS
2398 static
2399 symbol_type
2401 {
2402 return symbol_type (token::TOKEN_PERSIST, std::move (l));
2403 }
2404#else
2405 static
2406 symbol_type
2408 {
2410 }
2411#endif
2412#if 201103L <= YY_CPLUSPLUS
2413 static
2414 symbol_type
2416 {
2417 return symbol_type (token::TOKEN_LFC_INTERVAL, std::move (l));
2418 }
2419#else
2420 static
2421 symbol_type
2423 {
2425 }
2426#endif
2427#if 201103L <= YY_CPLUSPLUS
2428 static
2429 symbol_type
2431 {
2432 return symbol_type (token::TOKEN_READONLY, std::move (l));
2433 }
2434#else
2435 static
2436 symbol_type
2438 {
2440 }
2441#endif
2442#if 201103L <= YY_CPLUSPLUS
2443 static
2444 symbol_type
2446 {
2447 return symbol_type (token::TOKEN_CONNECT_TIMEOUT, std::move (l));
2448 }
2449#else
2450 static
2451 symbol_type
2453 {
2455 }
2456#endif
2457#if 201103L <= YY_CPLUSPLUS
2458 static
2459 symbol_type
2461 {
2462 return symbol_type (token::TOKEN_CONTACT_POINTS, std::move (l));
2463 }
2464#else
2465 static
2466 symbol_type
2468 {
2470 }
2471#endif
2472#if 201103L <= YY_CPLUSPLUS
2473 static
2474 symbol_type
2476 {
2477 return symbol_type (token::TOKEN_KEYSPACE, std::move (l));
2478 }
2479#else
2480 static
2481 symbol_type
2483 {
2485 }
2486#endif
2487#if 201103L <= YY_CPLUSPLUS
2488 static
2489 symbol_type
2491 {
2492 return symbol_type (token::TOKEN_CONSISTENCY, std::move (l));
2493 }
2494#else
2495 static
2496 symbol_type
2498 {
2500 }
2501#endif
2502#if 201103L <= YY_CPLUSPLUS
2503 static
2504 symbol_type
2506 {
2507 return symbol_type (token::TOKEN_SERIAL_CONSISTENCY, std::move (l));
2508 }
2509#else
2510 static
2511 symbol_type
2513 {
2515 }
2516#endif
2517#if 201103L <= YY_CPLUSPLUS
2518 static
2519 symbol_type
2521 {
2522 return symbol_type (token::TOKEN_MAX_RECONNECT_TRIES, std::move (l));
2523 }
2524#else
2525 static
2526 symbol_type
2528 {
2530 }
2531#endif
2532#if 201103L <= YY_CPLUSPLUS
2533 static
2534 symbol_type
2536 {
2537 return symbol_type (token::TOKEN_RECONNECT_WAIT_TIME, std::move (l));
2538 }
2539#else
2540 static
2541 symbol_type
2543 {
2545 }
2546#endif
2547#if 201103L <= YY_CPLUSPLUS
2548 static
2549 symbol_type
2551 {
2552 return symbol_type (token::TOKEN_ON_FAIL, std::move (l));
2553 }
2554#else
2555 static
2556 symbol_type
2558 {
2560 }
2561#endif
2562#if 201103L <= YY_CPLUSPLUS
2563 static
2564 symbol_type
2566 {
2567 return symbol_type (token::TOKEN_STOP_RETRY_EXIT, std::move (l));
2568 }
2569#else
2570 static
2571 symbol_type
2573 {
2575 }
2576#endif
2577#if 201103L <= YY_CPLUSPLUS
2578 static
2579 symbol_type
2581 {
2582 return symbol_type (token::TOKEN_SERVE_RETRY_EXIT, std::move (l));
2583 }
2584#else
2585 static
2586 symbol_type
2588 {
2590 }
2591#endif
2592#if 201103L <= YY_CPLUSPLUS
2593 static
2594 symbol_type
2596 {
2597 return symbol_type (token::TOKEN_SERVE_RETRY_CONTINUE, std::move (l));
2598 }
2599#else
2600 static
2601 symbol_type
2603 {
2605 }
2606#endif
2607#if 201103L <= YY_CPLUSPLUS
2608 static
2609 symbol_type
2611 {
2612 return symbol_type (token::TOKEN_REQUEST_TIMEOUT, std::move (l));
2613 }
2614#else
2615 static
2616 symbol_type
2618 {
2620 }
2621#endif
2622#if 201103L <= YY_CPLUSPLUS
2623 static
2624 symbol_type
2626 {
2627 return symbol_type (token::TOKEN_TCP_KEEPALIVE, std::move (l));
2628 }
2629#else
2630 static
2631 symbol_type
2633 {
2635 }
2636#endif
2637#if 201103L <= YY_CPLUSPLUS
2638 static
2639 symbol_type
2641 {
2642 return symbol_type (token::TOKEN_TCP_NODELAY, std::move (l));
2643 }
2644#else
2645 static
2646 symbol_type
2648 {
2650 }
2651#endif
2652#if 201103L <= YY_CPLUSPLUS
2653 static
2654 symbol_type
2656 {
2657 return symbol_type (token::TOKEN_MAX_ROW_ERRORS, std::move (l));
2658 }
2659#else
2660 static
2661 symbol_type
2663 {
2665 }
2666#endif
2667#if 201103L <= YY_CPLUSPLUS
2668 static
2669 symbol_type
2671 {
2672 return symbol_type (token::TOKEN_VALID_LIFETIME, std::move (l));
2673 }
2674#else
2675 static
2676 symbol_type
2678 {
2680 }
2681#endif
2682#if 201103L <= YY_CPLUSPLUS
2683 static
2684 symbol_type
2686 {
2687 return symbol_type (token::TOKEN_MIN_VALID_LIFETIME, std::move (l));
2688 }
2689#else
2690 static
2691 symbol_type
2693 {
2695 }
2696#endif
2697#if 201103L <= YY_CPLUSPLUS
2698 static
2699 symbol_type
2701 {
2702 return symbol_type (token::TOKEN_MAX_VALID_LIFETIME, std::move (l));
2703 }
2704#else
2705 static
2706 symbol_type
2708 {
2710 }
2711#endif
2712#if 201103L <= YY_CPLUSPLUS
2713 static
2714 symbol_type
2716 {
2717 return symbol_type (token::TOKEN_RENEW_TIMER, std::move (l));
2718 }
2719#else
2720 static
2721 symbol_type
2723 {
2725 }
2726#endif
2727#if 201103L <= YY_CPLUSPLUS
2728 static
2729 symbol_type
2731 {
2732 return symbol_type (token::TOKEN_REBIND_TIMER, std::move (l));
2733 }
2734#else
2735 static
2736 symbol_type
2738 {
2740 }
2741#endif
2742#if 201103L <= YY_CPLUSPLUS
2743 static
2744 symbol_type
2746 {
2747 return symbol_type (token::TOKEN_CALCULATE_TEE_TIMES, std::move (l));
2748 }
2749#else
2750 static
2751 symbol_type
2753 {
2755 }
2756#endif
2757#if 201103L <= YY_CPLUSPLUS
2758 static
2759 symbol_type
2761 {
2762 return symbol_type (token::TOKEN_T1_PERCENT, std::move (l));
2763 }
2764#else
2765 static
2766 symbol_type
2768 {
2770 }
2771#endif
2772#if 201103L <= YY_CPLUSPLUS
2773 static
2774 symbol_type
2776 {
2777 return symbol_type (token::TOKEN_T2_PERCENT, std::move (l));
2778 }
2779#else
2780 static
2781 symbol_type
2783 {
2785 }
2786#endif
2787#if 201103L <= YY_CPLUSPLUS
2788 static
2789 symbol_type
2791 {
2792 return symbol_type (token::TOKEN_CACHE_THRESHOLD, std::move (l));
2793 }
2794#else
2795 static
2796 symbol_type
2798 {
2800 }
2801#endif
2802#if 201103L <= YY_CPLUSPLUS
2803 static
2804 symbol_type
2806 {
2807 return symbol_type (token::TOKEN_CACHE_MAX_AGE, std::move (l));
2808 }
2809#else
2810 static
2811 symbol_type
2813 {
2815 }
2816#endif
2817#if 201103L <= YY_CPLUSPLUS
2818 static
2819 symbol_type
2821 {
2822 return symbol_type (token::TOKEN_DECLINE_PROBATION_PERIOD, std::move (l));
2823 }
2824#else
2825 static
2826 symbol_type
2828 {
2830 }
2831#endif
2832#if 201103L <= YY_CPLUSPLUS
2833 static
2834 symbol_type
2836 {
2837 return symbol_type (token::TOKEN_SERVER_TAG, std::move (l));
2838 }
2839#else
2840 static
2841 symbol_type
2843 {
2845 }
2846#endif
2847#if 201103L <= YY_CPLUSPLUS
2848 static
2849 symbol_type
2851 {
2852 return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT, std::move (l));
2853 }
2854#else
2855 static
2856 symbol_type
2858 {
2860 }
2861#endif
2862#if 201103L <= YY_CPLUSPLUS
2863 static
2864 symbol_type
2866 {
2867 return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE, std::move (l));
2868 }
2869#else
2870 static
2871 symbol_type
2873 {
2875 }
2876#endif
2877#if 201103L <= YY_CPLUSPLUS
2878 static
2879 symbol_type
2881 {
2882 return symbol_type (token::TOKEN_DDNS_SEND_UPDATES, std::move (l));
2883 }
2884#else
2885 static
2886 symbol_type
2888 {
2890 }
2891#endif
2892#if 201103L <= YY_CPLUSPLUS
2893 static
2894 symbol_type
2896 {
2897 return symbol_type (token::TOKEN_DDNS_OVERRIDE_NO_UPDATE, std::move (l));
2898 }
2899#else
2900 static
2901 symbol_type
2903 {
2905 }
2906#endif
2907#if 201103L <= YY_CPLUSPLUS
2908 static
2909 symbol_type
2911 {
2912 return symbol_type (token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE, std::move (l));
2913 }
2914#else
2915 static
2916 symbol_type
2918 {
2920 }
2921#endif
2922#if 201103L <= YY_CPLUSPLUS
2923 static
2924 symbol_type
2926 {
2927 return symbol_type (token::TOKEN_DDNS_REPLACE_CLIENT_NAME, std::move (l));
2928 }
2929#else
2930 static
2931 symbol_type
2933 {
2935 }
2936#endif
2937#if 201103L <= YY_CPLUSPLUS
2938 static
2939 symbol_type
2941 {
2942 return symbol_type (token::TOKEN_DDNS_GENERATED_PREFIX, std::move (l));
2943 }
2944#else
2945 static
2946 symbol_type
2948 {
2950 }
2951#endif
2952#if 201103L <= YY_CPLUSPLUS
2953 static
2954 symbol_type
2956 {
2957 return symbol_type (token::TOKEN_DDNS_QUALIFYING_SUFFIX, std::move (l));
2958 }
2959#else
2960 static
2961 symbol_type
2963 {
2965 }
2966#endif
2967#if 201103L <= YY_CPLUSPLUS
2968 static
2969 symbol_type
2971 {
2972 return symbol_type (token::TOKEN_DDNS_UPDATE_ON_RENEW, std::move (l));
2973 }
2974#else
2975 static
2976 symbol_type
2978 {
2980 }
2981#endif
2982#if 201103L <= YY_CPLUSPLUS
2983 static
2984 symbol_type
2986 {
2987 return symbol_type (token::TOKEN_DDNS_USE_CONFLICT_RESOLUTION, std::move (l));
2988 }
2989#else
2990 static
2991 symbol_type
2993 {
2995 }
2996#endif
2997#if 201103L <= YY_CPLUSPLUS
2998 static
2999 symbol_type
3001 {
3002 return symbol_type (token::TOKEN_STORE_EXTENDED_INFO, std::move (l));
3003 }
3004#else
3005 static
3006 symbol_type
3008 {
3010 }
3011#endif
3012#if 201103L <= YY_CPLUSPLUS
3013 static
3014 symbol_type
3016 {
3017 return symbol_type (token::TOKEN_SUBNET4, std::move (l));
3018 }
3019#else
3020 static
3021 symbol_type
3023 {
3025 }
3026#endif
3027#if 201103L <= YY_CPLUSPLUS
3028 static
3029 symbol_type
3031 {
3032 return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE, std::move (l));
3033 }
3034#else
3035 static
3036 symbol_type
3038 {
3040 }
3041#endif
3042#if 201103L <= YY_CPLUSPLUS
3043 static
3044 symbol_type
3046 {
3047 return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE_ID, std::move (l));
3048 }
3049#else
3050 static
3051 symbol_type
3053 {
3055 }
3056#endif
3057#if 201103L <= YY_CPLUSPLUS
3058 static
3059 symbol_type
3061 {
3062 return symbol_type (token::TOKEN_SUBNET_4O6_SUBNET, std::move (l));
3063 }
3064#else
3065 static
3066 symbol_type
3068 {
3070 }
3071#endif
3072#if 201103L <= YY_CPLUSPLUS
3073 static
3074 symbol_type
3076 {
3077 return symbol_type (token::TOKEN_OPTION_DEF, std::move (l));
3078 }
3079#else
3080 static
3081 symbol_type
3083 {
3085 }
3086#endif
3087#if 201103L <= YY_CPLUSPLUS
3088 static
3089 symbol_type
3091 {
3092 return symbol_type (token::TOKEN_OPTION_DATA, std::move (l));
3093 }
3094#else
3095 static
3096 symbol_type
3098 {
3100 }
3101#endif
3102#if 201103L <= YY_CPLUSPLUS
3103 static
3104 symbol_type
3106 {
3107 return symbol_type (token::TOKEN_NAME, std::move (l));
3108 }
3109#else
3110 static
3111 symbol_type
3113 {
3114 return symbol_type (token::TOKEN_NAME, l);
3115 }
3116#endif
3117#if 201103L <= YY_CPLUSPLUS
3118 static
3119 symbol_type
3121 {
3122 return symbol_type (token::TOKEN_DATA, std::move (l));
3123 }
3124#else
3125 static
3126 symbol_type
3128 {
3129 return symbol_type (token::TOKEN_DATA, l);
3130 }
3131#endif
3132#if 201103L <= YY_CPLUSPLUS
3133 static
3134 symbol_type
3136 {
3137 return symbol_type (token::TOKEN_CODE, std::move (l));
3138 }
3139#else
3140 static
3141 symbol_type
3143 {
3144 return symbol_type (token::TOKEN_CODE, l);
3145 }
3146#endif
3147#if 201103L <= YY_CPLUSPLUS
3148 static
3149 symbol_type
3151 {
3152 return symbol_type (token::TOKEN_SPACE, std::move (l));
3153 }
3154#else
3155 static
3156 symbol_type
3158 {
3159 return symbol_type (token::TOKEN_SPACE, l);
3160 }
3161#endif
3162#if 201103L <= YY_CPLUSPLUS
3163 static
3164 symbol_type
3166 {
3167 return symbol_type (token::TOKEN_CSV_FORMAT, std::move (l));
3168 }
3169#else
3170 static
3171 symbol_type
3173 {
3175 }
3176#endif
3177#if 201103L <= YY_CPLUSPLUS
3178 static
3179 symbol_type
3181 {
3182 return symbol_type (token::TOKEN_ALWAYS_SEND, std::move (l));
3183 }
3184#else
3185 static
3186 symbol_type
3188 {
3190 }
3191#endif
3192#if 201103L <= YY_CPLUSPLUS
3193 static
3194 symbol_type
3196 {
3197 return symbol_type (token::TOKEN_RECORD_TYPES, std::move (l));
3198 }
3199#else
3200 static
3201 symbol_type
3203 {
3205 }
3206#endif
3207#if 201103L <= YY_CPLUSPLUS
3208 static
3209 symbol_type
3211 {
3212 return symbol_type (token::TOKEN_ENCAPSULATE, std::move (l));
3213 }
3214#else
3215 static
3216 symbol_type
3218 {
3220 }
3221#endif
3222#if 201103L <= YY_CPLUSPLUS
3223 static
3224 symbol_type
3226 {
3227 return symbol_type (token::TOKEN_ARRAY, std::move (l));
3228 }
3229#else
3230 static
3231 symbol_type
3233 {
3234 return symbol_type (token::TOKEN_ARRAY, l);
3235 }
3236#endif
3237#if 201103L <= YY_CPLUSPLUS
3238 static
3239 symbol_type
3241 {
3242 return symbol_type (token::TOKEN_PARKED_PACKET_LIMIT, std::move (l));
3243 }
3244#else
3245 static
3246 symbol_type
3248 {
3250 }
3251#endif
3252#if 201103L <= YY_CPLUSPLUS
3253 static
3254 symbol_type
3256 {
3257 return symbol_type (token::TOKEN_SHARED_NETWORKS, std::move (l));
3258 }
3259#else
3260 static
3261 symbol_type
3263 {
3265 }
3266#endif
3267#if 201103L <= YY_CPLUSPLUS
3268 static
3269 symbol_type
3271 {
3272 return symbol_type (token::TOKEN_POOLS, std::move (l));
3273 }
3274#else
3275 static
3276 symbol_type
3278 {
3279 return symbol_type (token::TOKEN_POOLS, l);
3280 }
3281#endif
3282#if 201103L <= YY_CPLUSPLUS
3283 static
3284 symbol_type
3286 {
3287 return symbol_type (token::TOKEN_POOL, std::move (l));
3288 }
3289#else
3290 static
3291 symbol_type
3293 {
3294 return symbol_type (token::TOKEN_POOL, l);
3295 }
3296#endif
3297#if 201103L <= YY_CPLUSPLUS
3298 static
3299 symbol_type
3301 {
3302 return symbol_type (token::TOKEN_USER_CONTEXT, std::move (l));
3303 }
3304#else
3305 static
3306 symbol_type
3308 {
3310 }
3311#endif
3312#if 201103L <= YY_CPLUSPLUS
3313 static
3314 symbol_type
3316 {
3317 return symbol_type (token::TOKEN_COMMENT, std::move (l));
3318 }
3319#else
3320 static
3321 symbol_type
3323 {
3325 }
3326#endif
3327#if 201103L <= YY_CPLUSPLUS
3328 static
3329 symbol_type
3331 {
3332 return symbol_type (token::TOKEN_SUBNET, std::move (l));
3333 }
3334#else
3335 static
3336 symbol_type
3338 {
3339 return symbol_type (token::TOKEN_SUBNET, l);
3340 }
3341#endif
3342#if 201103L <= YY_CPLUSPLUS
3343 static
3344 symbol_type
3346 {
3347 return symbol_type (token::TOKEN_INTERFACE, std::move (l));
3348 }
3349#else
3350 static
3351 symbol_type
3353 {
3355 }
3356#endif
3357#if 201103L <= YY_CPLUSPLUS
3358 static
3359 symbol_type
3361 {
3362 return symbol_type (token::TOKEN_ID, std::move (l));
3363 }
3364#else
3365 static
3366 symbol_type
3368 {
3369 return symbol_type (token::TOKEN_ID, l);
3370 }
3371#endif
3372#if 201103L <= YY_CPLUSPLUS
3373 static
3374 symbol_type
3376 {
3377 return symbol_type (token::TOKEN_RESERVATION_MODE, std::move (l));
3378 }
3379#else
3380 static
3381 symbol_type
3383 {
3385 }
3386#endif
3387#if 201103L <= YY_CPLUSPLUS
3388 static
3389 symbol_type
3391 {
3392 return symbol_type (token::TOKEN_DISABLED, std::move (l));
3393 }
3394#else
3395 static
3396 symbol_type
3398 {
3400 }
3401#endif
3402#if 201103L <= YY_CPLUSPLUS
3403 static
3404 symbol_type
3406 {
3407 return symbol_type (token::TOKEN_OUT_OF_POOL, std::move (l));
3408 }
3409#else
3410 static
3411 symbol_type
3413 {
3415 }
3416#endif
3417#if 201103L <= YY_CPLUSPLUS
3418 static
3419 symbol_type
3421 {
3422 return symbol_type (token::TOKEN_GLOBAL, std::move (l));
3423 }
3424#else
3425 static
3426 symbol_type
3428 {
3429 return symbol_type (token::TOKEN_GLOBAL, l);
3430 }
3431#endif
3432#if 201103L <= YY_CPLUSPLUS
3433 static
3434 symbol_type
3436 {
3437 return symbol_type (token::TOKEN_ALL, std::move (l));
3438 }
3439#else
3440 static
3441 symbol_type
3443 {
3444 return symbol_type (token::TOKEN_ALL, l);
3445 }
3446#endif
3447#if 201103L <= YY_CPLUSPLUS
3448 static
3449 symbol_type
3451 {
3452 return symbol_type (token::TOKEN_RESERVATIONS_GLOBAL, std::move (l));
3453 }
3454#else
3455 static
3456 symbol_type
3458 {
3460 }
3461#endif
3462#if 201103L <= YY_CPLUSPLUS
3463 static
3464 symbol_type
3466 {
3467 return symbol_type (token::TOKEN_RESERVATIONS_IN_SUBNET, std::move (l));
3468 }
3469#else
3470 static
3471 symbol_type
3473 {
3475 }
3476#endif
3477#if 201103L <= YY_CPLUSPLUS
3478 static
3479 symbol_type
3481 {
3482 return symbol_type (token::TOKEN_RESERVATIONS_OUT_OF_POOL, std::move (l));
3483 }
3484#else
3485 static
3486 symbol_type
3488 {
3490 }
3491#endif
3492#if 201103L <= YY_CPLUSPLUS
3493 static
3494 symbol_type
3496 {
3497 return symbol_type (token::TOKEN_HOST_RESERVATION_IDENTIFIERS, std::move (l));
3498 }
3499#else
3500 static
3501 symbol_type
3503 {
3505 }
3506#endif
3507#if 201103L <= YY_CPLUSPLUS
3508 static
3509 symbol_type
3511 {
3512 return symbol_type (token::TOKEN_CLIENT_CLASSES, std::move (l));
3513 }
3514#else
3515 static
3516 symbol_type
3518 {
3520 }
3521#endif
3522#if 201103L <= YY_CPLUSPLUS
3523 static
3524 symbol_type
3526 {
3527 return symbol_type (token::TOKEN_REQUIRE_CLIENT_CLASSES, std::move (l));
3528 }
3529#else
3530 static
3531 symbol_type
3533 {
3535 }
3536#endif
3537#if 201103L <= YY_CPLUSPLUS
3538 static
3539 symbol_type
3541 {
3542 return symbol_type (token::TOKEN_TEST, std::move (l));
3543 }
3544#else
3545 static
3546 symbol_type
3548 {
3549 return symbol_type (token::TOKEN_TEST, l);
3550 }
3551#endif
3552#if 201103L <= YY_CPLUSPLUS
3553 static
3554 symbol_type
3556 {
3557 return symbol_type (token::TOKEN_ONLY_IF_REQUIRED, std::move (l));
3558 }
3559#else
3560 static
3561 symbol_type
3563 {
3565 }
3566#endif
3567#if 201103L <= YY_CPLUSPLUS
3568 static
3569 symbol_type
3571 {
3572 return symbol_type (token::TOKEN_CLIENT_CLASS, std::move (l));
3573 }
3574#else
3575 static
3576 symbol_type
3578 {
3580 }
3581#endif
3582#if 201103L <= YY_CPLUSPLUS
3583 static
3584 symbol_type
3586 {
3587 return symbol_type (token::TOKEN_RESERVATIONS, std::move (l));
3588 }
3589#else
3590 static
3591 symbol_type
3593 {
3595 }
3596#endif
3597#if 201103L <= YY_CPLUSPLUS
3598 static
3599 symbol_type
3601 {
3602 return symbol_type (token::TOKEN_DUID, std::move (l));
3603 }
3604#else
3605 static
3606 symbol_type
3608 {
3609 return symbol_type (token::TOKEN_DUID, l);
3610 }
3611#endif
3612#if 201103L <= YY_CPLUSPLUS
3613 static
3614 symbol_type
3616 {
3617 return symbol_type (token::TOKEN_HW_ADDRESS, std::move (l));
3618 }
3619#else
3620 static
3621 symbol_type
3623 {
3625 }
3626#endif
3627#if 201103L <= YY_CPLUSPLUS
3628 static
3629 symbol_type
3631 {
3632 return symbol_type (token::TOKEN_CIRCUIT_ID, std::move (l));
3633 }
3634#else
3635 static
3636 symbol_type
3638 {
3640 }
3641#endif
3642#if 201103L <= YY_CPLUSPLUS
3643 static
3644 symbol_type
3646 {
3647 return symbol_type (token::TOKEN_CLIENT_ID, std::move (l));
3648 }
3649#else
3650 static
3651 symbol_type
3653 {
3655 }
3656#endif
3657#if 201103L <= YY_CPLUSPLUS
3658 static
3659 symbol_type
3661 {
3662 return symbol_type (token::TOKEN_HOSTNAME, std::move (l));
3663 }
3664#else
3665 static
3666 symbol_type
3668 {
3670 }
3671#endif
3672#if 201103L <= YY_CPLUSPLUS
3673 static
3674 symbol_type
3676 {
3677 return symbol_type (token::TOKEN_FLEX_ID, std::move (l));
3678 }
3679#else
3680 static
3681 symbol_type
3683 {
3685 }
3686#endif
3687#if 201103L <= YY_CPLUSPLUS
3688 static
3689 symbol_type
3691 {
3692 return symbol_type (token::TOKEN_RELAY, std::move (l));
3693 }
3694#else
3695 static
3696 symbol_type
3698 {
3699 return symbol_type (token::TOKEN_RELAY, l);
3700 }
3701#endif
3702#if 201103L <= YY_CPLUSPLUS
3703 static
3704 symbol_type
3706 {
3707 return symbol_type (token::TOKEN_IP_ADDRESS, std::move (l));
3708 }
3709#else
3710 static
3711 symbol_type
3713 {
3715 }
3716#endif
3717#if 201103L <= YY_CPLUSPLUS
3718 static
3719 symbol_type
3721 {
3722 return symbol_type (token::TOKEN_IP_ADDRESSES, std::move (l));
3723 }
3724#else
3725 static
3726 symbol_type
3728 {
3730 }
3731#endif
3732#if 201103L <= YY_CPLUSPLUS
3733 static
3734 symbol_type
3736 {
3737 return symbol_type (token::TOKEN_HOOKS_LIBRARIES, std::move (l));
3738 }
3739#else
3740 static
3741 symbol_type
3743 {
3745 }
3746#endif
3747#if 201103L <= YY_CPLUSPLUS
3748 static
3749 symbol_type
3751 {
3752 return symbol_type (token::TOKEN_LIBRARY, std::move (l));
3753 }
3754#else
3755 static
3756 symbol_type
3758 {
3760 }
3761#endif
3762#if 201103L <= YY_CPLUSPLUS
3763 static
3764 symbol_type
3766 {
3767 return symbol_type (token::TOKEN_PARAMETERS, std::move (l));
3768 }
3769#else
3770 static
3771 symbol_type
3773 {
3775 }
3776#endif
3777#if 201103L <= YY_CPLUSPLUS
3778 static
3779 symbol_type
3781 {
3782 return symbol_type (token::TOKEN_EXPIRED_LEASES_PROCESSING, std::move (l));
3783 }
3784#else
3785 static
3786 symbol_type
3788 {
3790 }
3791#endif
3792#if 201103L <= YY_CPLUSPLUS
3793 static
3794 symbol_type
3796 {
3797 return symbol_type (token::TOKEN_RECLAIM_TIMER_WAIT_TIME, std::move (l));
3798 }
3799#else
3800 static
3801 symbol_type
3803 {
3805 }
3806#endif
3807#if 201103L <= YY_CPLUSPLUS
3808 static
3809 symbol_type
3811 {
3812 return symbol_type (token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME, std::move (l));
3813 }
3814#else
3815 static
3816 symbol_type
3818 {
3820 }
3821#endif
3822#if 201103L <= YY_CPLUSPLUS
3823 static
3824 symbol_type
3826 {
3827 return symbol_type (token::TOKEN_HOLD_RECLAIMED_TIME, std::move (l));
3828 }
3829#else
3830 static
3831 symbol_type
3833 {
3835 }
3836#endif
3837#if 201103L <= YY_CPLUSPLUS
3838 static
3839 symbol_type
3841 {
3842 return symbol_type (token::TOKEN_MAX_RECLAIM_LEASES, std::move (l));
3843 }
3844#else
3845 static
3846 symbol_type
3848 {
3850 }
3851#endif
3852#if 201103L <= YY_CPLUSPLUS
3853 static
3854 symbol_type
3856 {
3857 return symbol_type (token::TOKEN_MAX_RECLAIM_TIME, std::move (l));
3858 }
3859#else
3860 static
3861 symbol_type
3863 {
3865 }
3866#endif
3867#if 201103L <= YY_CPLUSPLUS
3868 static
3869 symbol_type
3871 {
3872 return symbol_type (token::TOKEN_UNWARNED_RECLAIM_CYCLES, std::move (l));
3873 }
3874#else
3875 static
3876 symbol_type
3878 {
3880 }
3881#endif
3882#if 201103L <= YY_CPLUSPLUS
3883 static
3884 symbol_type
3886 {
3887 return symbol_type (token::TOKEN_DHCP4O6_PORT, std::move (l));
3888 }
3889#else
3890 static
3891 symbol_type
3893 {
3895 }
3896#endif
3897#if 201103L <= YY_CPLUSPLUS
3898 static
3899 symbol_type
3901 {
3902 return symbol_type (token::TOKEN_DHCP_MULTI_THREADING, std::move (l));
3903 }
3904#else
3905 static
3906 symbol_type
3908 {
3910 }
3911#endif
3912#if 201103L <= YY_CPLUSPLUS
3913 static
3914 symbol_type
3916 {
3917 return symbol_type (token::TOKEN_ENABLE_MULTI_THREADING, std::move (l));
3918 }
3919#else
3920 static
3921 symbol_type
3923 {
3925 }
3926#endif
3927#if 201103L <= YY_CPLUSPLUS
3928 static
3929 symbol_type
3931 {
3932 return symbol_type (token::TOKEN_THREAD_POOL_SIZE, std::move (l));
3933 }
3934#else
3935 static
3936 symbol_type
3938 {
3940 }
3941#endif
3942#if 201103L <= YY_CPLUSPLUS
3943 static
3944 symbol_type
3946 {
3947 return symbol_type (token::TOKEN_PACKET_QUEUE_SIZE, std::move (l));
3948 }
3949#else
3950 static
3951 symbol_type
3953 {
3955 }
3956#endif
3957#if 201103L <= YY_CPLUSPLUS
3958 static
3959 symbol_type
3961 {
3962 return symbol_type (token::TOKEN_CONTROL_SOCKET, std::move (l));
3963 }
3964#else
3965 static
3966 symbol_type
3968 {
3970 }
3971#endif
3972#if 201103L <= YY_CPLUSPLUS
3973 static
3974 symbol_type
3976 {
3977 return symbol_type (token::TOKEN_SOCKET_TYPE, std::move (l));
3978 }
3979#else
3980 static
3981 symbol_type
3983 {
3985 }
3986#endif
3987#if 201103L <= YY_CPLUSPLUS
3988 static
3989 symbol_type
3991 {
3992 return symbol_type (token::TOKEN_SOCKET_NAME, std::move (l));
3993 }
3994#else
3995 static
3996 symbol_type
3998 {
4000 }
4001#endif
4002#if 201103L <= YY_CPLUSPLUS
4003 static
4004 symbol_type
4006 {
4007 return symbol_type (token::TOKEN_DHCP_QUEUE_CONTROL, std::move (l));
4008 }
4009#else
4010 static
4011 symbol_type
4013 {
4015 }
4016#endif
4017#if 201103L <= YY_CPLUSPLUS
4018 static
4019 symbol_type
4021 {
4022 return symbol_type (token::TOKEN_ENABLE_QUEUE, std::move (l));
4023 }
4024#else
4025 static
4026 symbol_type
4028 {
4030 }
4031#endif
4032#if 201103L <= YY_CPLUSPLUS
4033 static
4034 symbol_type
4036 {
4037 return symbol_type (token::TOKEN_QUEUE_TYPE, std::move (l));
4038 }
4039#else
4040 static
4041 symbol_type
4043 {
4045 }
4046#endif
4047#if 201103L <= YY_CPLUSPLUS
4048 static
4049 symbol_type
4051 {
4052 return symbol_type (token::TOKEN_CAPACITY, std::move (l));
4053 }
4054#else
4055 static
4056 symbol_type
4058 {
4060 }
4061#endif
4062#if 201103L <= YY_CPLUSPLUS
4063 static
4064 symbol_type
4066 {
4067 return symbol_type (token::TOKEN_DHCP_DDNS, std::move (l));
4068 }
4069#else
4070 static
4071 symbol_type
4073 {
4075 }
4076#endif
4077#if 201103L <= YY_CPLUSPLUS
4078 static
4079 symbol_type
4081 {
4082 return symbol_type (token::TOKEN_ENABLE_UPDATES, std::move (l));
4083 }
4084#else
4085 static
4086 symbol_type
4088 {
4090 }
4091#endif
4092#if 201103L <= YY_CPLUSPLUS
4093 static
4094 symbol_type
4096 {
4097 return symbol_type (token::TOKEN_QUALIFYING_SUFFIX, std::move (l));
4098 }
4099#else
4100 static
4101 symbol_type
4103 {
4105 }
4106#endif
4107#if 201103L <= YY_CPLUSPLUS
4108 static
4109 symbol_type
4111 {
4112 return symbol_type (token::TOKEN_SERVER_IP, std::move (l));
4113 }
4114#else
4115 static
4116 symbol_type
4118 {
4120 }
4121#endif
4122#if 201103L <= YY_CPLUSPLUS
4123 static
4124 symbol_type
4126 {
4127 return symbol_type (token::TOKEN_SERVER_PORT, std::move (l));
4128 }
4129#else
4130 static
4131 symbol_type
4133 {
4135 }
4136#endif
4137#if 201103L <= YY_CPLUSPLUS
4138 static
4139 symbol_type
4141 {
4142 return symbol_type (token::TOKEN_SENDER_IP, std::move (l));
4143 }
4144#else
4145 static
4146 symbol_type
4148 {
4150 }
4151#endif
4152#if 201103L <= YY_CPLUSPLUS
4153 static
4154 symbol_type
4156 {
4157 return symbol_type (token::TOKEN_SENDER_PORT, std::move (l));
4158 }
4159#else
4160 static
4161 symbol_type
4163 {
4165 }
4166#endif
4167#if 201103L <= YY_CPLUSPLUS
4168 static
4169 symbol_type
4171 {
4172 return symbol_type (token::TOKEN_MAX_QUEUE_SIZE, std::move (l));
4173 }
4174#else
4175 static
4176 symbol_type
4178 {
4180 }
4181#endif
4182#if 201103L <= YY_CPLUSPLUS
4183 static
4184 symbol_type
4186 {
4187 return symbol_type (token::TOKEN_NCR_PROTOCOL, std::move (l));
4188 }
4189#else
4190 static
4191 symbol_type
4193 {
4195 }
4196#endif
4197#if 201103L <= YY_CPLUSPLUS
4198 static
4199 symbol_type
4201 {
4202 return symbol_type (token::TOKEN_NCR_FORMAT, std::move (l));
4203 }
4204#else
4205 static
4206 symbol_type
4208 {
4210 }
4211#endif
4212#if 201103L <= YY_CPLUSPLUS
4213 static
4214 symbol_type
4216 {
4217 return symbol_type (token::TOKEN_OVERRIDE_NO_UPDATE, std::move (l));
4218 }
4219#else
4220 static
4221 symbol_type
4223 {
4225 }
4226#endif
4227#if 201103L <= YY_CPLUSPLUS
4228 static
4229 symbol_type
4231 {
4232 return symbol_type (token::TOKEN_OVERRIDE_CLIENT_UPDATE, std::move (l));
4233 }
4234#else
4235 static
4236 symbol_type
4238 {
4240 }
4241#endif
4242#if 201103L <= YY_CPLUSPLUS
4243 static
4244 symbol_type
4246 {
4247 return symbol_type (token::TOKEN_REPLACE_CLIENT_NAME, std::move (l));
4248 }
4249#else
4250 static
4251 symbol_type
4253 {
4255 }
4256#endif
4257#if 201103L <= YY_CPLUSPLUS
4258 static
4259 symbol_type
4261 {
4262 return symbol_type (token::TOKEN_GENERATED_PREFIX, std::move (l));
4263 }
4264#else
4265 static
4266 symbol_type
4268 {
4270 }
4271#endif
4272#if 201103L <= YY_CPLUSPLUS
4273 static
4274 symbol_type
4276 {
4277 return symbol_type (token::TOKEN_TCP, std::move (l));
4278 }
4279#else
4280 static
4281 symbol_type
4283 {
4284 return symbol_type (token::TOKEN_TCP, l);
4285 }
4286#endif
4287#if 201103L <= YY_CPLUSPLUS
4288 static
4289 symbol_type
4291 {
4292 return symbol_type (token::TOKEN_JSON, std::move (l));
4293 }
4294#else
4295 static
4296 symbol_type
4298 {
4299 return symbol_type (token::TOKEN_JSON, l);
4300 }
4301#endif
4302#if 201103L <= YY_CPLUSPLUS
4303 static
4304 symbol_type
4306 {
4307 return symbol_type (token::TOKEN_WHEN_PRESENT, std::move (l));
4308 }
4309#else
4310 static
4311 symbol_type
4313 {
4315 }
4316#endif
4317#if 201103L <= YY_CPLUSPLUS
4318 static
4319 symbol_type
4321 {
4322 return symbol_type (token::TOKEN_NEVER, std::move (l));
4323 }
4324#else
4325 static
4326 symbol_type
4328 {
4329 return symbol_type (token::TOKEN_NEVER, l);
4330 }
4331#endif
4332#if 201103L <= YY_CPLUSPLUS
4333 static
4334 symbol_type
4336 {
4337 return symbol_type (token::TOKEN_ALWAYS, std::move (l));
4338 }
4339#else
4340 static
4341 symbol_type
4343 {
4344 return symbol_type (token::TOKEN_ALWAYS, l);
4345 }
4346#endif
4347#if 201103L <= YY_CPLUSPLUS
4348 static
4349 symbol_type
4351 {
4352 return symbol_type (token::TOKEN_WHEN_NOT_PRESENT, std::move (l));
4353 }
4354#else
4355 static
4356 symbol_type
4358 {
4360 }
4361#endif
4362#if 201103L <= YY_CPLUSPLUS
4363 static
4364 symbol_type
4366 {
4367 return symbol_type (token::TOKEN_HOSTNAME_CHAR_SET, std::move (l));
4368 }
4369#else
4370 static
4371 symbol_type
4373 {
4375 }
4376#endif
4377#if 201103L <= YY_CPLUSPLUS
4378 static
4379 symbol_type
4381 {
4382 return symbol_type (token::TOKEN_HOSTNAME_CHAR_REPLACEMENT, std::move (l));
4383 }
4384#else
4385 static
4386 symbol_type
4388 {
4390 }
4391#endif
4392#if 201103L <= YY_CPLUSPLUS
4393 static
4394 symbol_type
4396 {
4397 return symbol_type (token::TOKEN_IP_RESERVATIONS_UNIQUE, std::move (l));
4398 }
4399#else
4400 static
4401 symbol_type
4403 {
4405 }
4406#endif
4407#if 201103L <= YY_CPLUSPLUS
4408 static
4409 symbol_type
4411 {
4412 return symbol_type (token::TOKEN_LOGGERS, std::move (l));
4413 }
4414#else
4415 static
4416 symbol_type
4418 {
4420 }
4421#endif
4422#if 201103L <= YY_CPLUSPLUS
4423 static
4424 symbol_type
4426 {
4427 return symbol_type (token::TOKEN_OUTPUT_OPTIONS, std::move (l));
4428 }
4429#else
4430 static
4431 symbol_type
4433 {
4435 }
4436#endif
4437#if 201103L <= YY_CPLUSPLUS
4438 static
4439 symbol_type
4441 {
4442 return symbol_type (token::TOKEN_OUTPUT, std::move (l));
4443 }
4444#else
4445 static
4446 symbol_type
4448 {
4449 return symbol_type (token::TOKEN_OUTPUT, l);
4450 }
4451#endif
4452#if 201103L <= YY_CPLUSPLUS
4453 static
4454 symbol_type
4456 {
4457 return symbol_type (token::TOKEN_DEBUGLEVEL, std::move (l));
4458 }
4459#else
4460 static
4461 symbol_type
4463 {
4465 }
4466#endif
4467#if 201103L <= YY_CPLUSPLUS
4468 static
4469 symbol_type
4471 {
4472 return symbol_type (token::TOKEN_SEVERITY, std::move (l));
4473 }
4474#else
4475 static
4476 symbol_type
4478 {
4480 }
4481#endif
4482#if 201103L <= YY_CPLUSPLUS
4483 static
4484 symbol_type
4486 {
4487 return symbol_type (token::TOKEN_FLUSH, std::move (l));
4488 }
4489#else
4490 static
4491 symbol_type
4493 {
4494 return symbol_type (token::TOKEN_FLUSH, l);
4495 }
4496#endif
4497#if 201103L <= YY_CPLUSPLUS
4498 static
4499 symbol_type
4501 {
4502 return symbol_type (token::TOKEN_MAXSIZE, std::move (l));
4503 }
4504#else
4505 static
4506 symbol_type
4508 {
4510 }
4511#endif
4512#if 201103L <= YY_CPLUSPLUS
4513 static
4514 symbol_type
4516 {
4517 return symbol_type (token::TOKEN_MAXVER, std::move (l));
4518 }
4519#else
4520 static
4521 symbol_type
4523 {
4524 return symbol_type (token::TOKEN_MAXVER, l);
4525 }
4526#endif
4527#if 201103L <= YY_CPLUSPLUS
4528 static
4529 symbol_type
4531 {
4532 return symbol_type (token::TOKEN_PATTERN, std::move (l));
4533 }
4534#else
4535 static
4536 symbol_type
4538 {
4540 }
4541#endif
4542#if 201103L <= YY_CPLUSPLUS
4543 static
4544 symbol_type
4546 {
4547 return symbol_type (token::TOKEN_COMPATIBILITY, std::move (l));
4548 }
4549#else
4550 static
4551 symbol_type
4553 {
4555 }
4556#endif
4557#if 201103L <= YY_CPLUSPLUS
4558 static
4559 symbol_type
4561 {
4562 return symbol_type (token::TOKEN_LENIENT_OPTION_PARSING, std::move (l));
4563 }
4564#else
4565 static
4566 symbol_type
4568 {
4570 }
4571#endif
4572#if 201103L <= YY_CPLUSPLUS
4573 static
4574 symbol_type
4576 {
4577 return symbol_type (token::TOKEN_TOPLEVEL_JSON, std::move (l));
4578 }
4579#else
4580 static
4581 symbol_type
4583 {
4585 }
4586#endif
4587#if 201103L <= YY_CPLUSPLUS
4588 static
4589 symbol_type
4591 {
4592 return symbol_type (token::TOKEN_TOPLEVEL_DHCP4, std::move (l));
4593 }
4594#else
4595 static
4596 symbol_type
4598 {
4600 }
4601#endif
4602#if 201103L <= YY_CPLUSPLUS
4603 static
4604 symbol_type
4606 {
4607 return symbol_type (token::TOKEN_SUB_DHCP4, std::move (l));
4608 }
4609#else
4610 static
4611 symbol_type
4613 {
4615 }
4616#endif
4617#if 201103L <= YY_CPLUSPLUS
4618 static
4619 symbol_type
4621 {
4622 return symbol_type (token::TOKEN_SUB_INTERFACES4, std::move (l));
4623 }
4624#else
4625 static
4626 symbol_type
4628 {
4630 }
4631#endif
4632#if 201103L <= YY_CPLUSPLUS
4633 static
4634 symbol_type
4636 {
4637 return symbol_type (token::TOKEN_SUB_SUBNET4, std::move (l));
4638 }
4639#else
4640 static
4641 symbol_type
4643 {
4645 }
4646#endif
4647#if 201103L <= YY_CPLUSPLUS
4648 static
4649 symbol_type
4651 {
4652 return symbol_type (token::TOKEN_SUB_POOL4, std::move (l));
4653 }
4654#else
4655 static
4656 symbol_type
4658 {
4660 }
4661#endif
4662#if 201103L <= YY_CPLUSPLUS
4663 static
4664 symbol_type
4666 {
4667 return symbol_type (token::TOKEN_SUB_RESERVATION, std::move (l));
4668 }
4669#else
4670 static
4671 symbol_type
4673 {
4675 }
4676#endif
4677#if 201103L <= YY_CPLUSPLUS
4678 static
4679 symbol_type
4681 {
4682 return symbol_type (token::TOKEN_SUB_OPTION_DEFS, std::move (l));
4683 }
4684#else
4685 static
4686 symbol_type
4688 {
4690 }
4691#endif
4692#if 201103L <= YY_CPLUSPLUS
4693 static
4694 symbol_type
4696 {
4697 return symbol_type (token::TOKEN_SUB_OPTION_DEF, std::move (l));
4698 }
4699#else
4700 static
4701 symbol_type
4703 {
4705 }
4706#endif
4707#if 201103L <= YY_CPLUSPLUS
4708 static
4709 symbol_type
4711 {
4712 return symbol_type (token::TOKEN_SUB_OPTION_DATA, std::move (l));
4713 }
4714#else
4715 static
4716 symbol_type
4718 {
4720 }
4721#endif
4722#if 201103L <= YY_CPLUSPLUS
4723 static
4724 symbol_type
4726 {
4727 return symbol_type (token::TOKEN_SUB_HOOKS_LIBRARY, std::move (l));
4728 }
4729#else
4730 static
4731 symbol_type
4733 {
4735 }
4736#endif
4737#if 201103L <= YY_CPLUSPLUS
4738 static
4739 symbol_type
4741 {
4742 return symbol_type (token::TOKEN_SUB_DHCP_DDNS, std::move (l));
4743 }
4744#else
4745 static
4746 symbol_type
4748 {
4750 }
4751#endif
4752#if 201103L <= YY_CPLUSPLUS
4753 static
4754 symbol_type
4756 {
4757 return symbol_type (token::TOKEN_SUB_CONFIG_CONTROL, std::move (l));
4758 }
4759#else
4760 static
4761 symbol_type
4763 {
4765 }
4766#endif
4767#if 201103L <= YY_CPLUSPLUS
4768 static
4769 symbol_type
4770 make_STRING (std::string v, location_type l)
4771 {
4772 return symbol_type (token::TOKEN_STRING, std::move (v), std::move (l));
4773 }
4774#else
4775 static
4776 symbol_type
4777 make_STRING (const std::string& v, const location_type& l)
4778 {
4779 return symbol_type (token::TOKEN_STRING, v, l);
4780 }
4781#endif
4782#if 201103L <= YY_CPLUSPLUS
4783 static
4784 symbol_type
4785 make_INTEGER (int64_t v, location_type l)
4786 {
4787 return symbol_type (token::TOKEN_INTEGER, std::move (v), std::move (l));
4788 }
4789#else
4790 static
4791 symbol_type
4792 make_INTEGER (const int64_t& v, const location_type& l)
4793 {
4794 return symbol_type (token::TOKEN_INTEGER, v, l);
4795 }
4796#endif
4797#if 201103L <= YY_CPLUSPLUS
4798 static
4799 symbol_type
4800 make_FLOAT (double v, location_type l)
4801 {
4802 return symbol_type (token::TOKEN_FLOAT, std::move (v), std::move (l));
4803 }
4804#else
4805 static
4806 symbol_type
4807 make_FLOAT (const double& v, const location_type& l)
4808 {
4809 return symbol_type (token::TOKEN_FLOAT, v, l);
4810 }
4811#endif
4812#if 201103L <= YY_CPLUSPLUS
4813 static
4814 symbol_type
4815 make_BOOLEAN (bool v, location_type l)
4816 {
4817 return symbol_type (token::TOKEN_BOOLEAN, std::move (v), std::move (l));
4818 }
4819#else
4820 static
4821 symbol_type
4822 make_BOOLEAN (const bool& v, const location_type& l)
4823 {
4824 return symbol_type (token::TOKEN_BOOLEAN, v, l);
4825 }
4826#endif
4827
4828
4830 {
4831 public:
4832 context (const Dhcp4Parser& yyparser, const symbol_type& yyla);
4833 const symbol_type& lookahead () const YY_NOEXCEPT { return yyla_; }
4834 symbol_kind_type token () const YY_NOEXCEPT { return yyla_.kind (); }
4835 const location_type& location () const YY_NOEXCEPT { return yyla_.location; }
4836
4840 int expected_tokens (symbol_kind_type yyarg[], int yyargn) const;
4841
4842 private:
4843 const Dhcp4Parser& yyparser_;
4844 const symbol_type& yyla_;
4845 };
4846
4847 private:
4848#if YY_CPLUSPLUS < 201103L
4850 Dhcp4Parser (const Dhcp4Parser&);
4852 Dhcp4Parser& operator= (const Dhcp4Parser&);
4853#endif
4854
4855
4857 typedef short state_type;
4858
4860 int yy_syntax_error_arguments_ (const context& yyctx,
4861 symbol_kind_type yyarg[], int yyargn) const;
4862
4865 virtual std::string yysyntax_error_ (const context& yyctx) const;
4869 static state_type yy_lr_goto_state_ (state_type yystate, int yysym);
4870
4873 static bool yy_pact_value_is_default_ (int yyvalue) YY_NOEXCEPT;
4874
4877 static bool yy_table_value_is_error_ (int yyvalue) YY_NOEXCEPT;
4878
4879 static const short yypact_ninf_;
4880 static const signed char yytable_ninf_;
4881
4885 static symbol_kind_type yytranslate_ (int t) YY_NOEXCEPT;
4886
4888 static std::string yytnamerr_ (const char *yystr);
4889
4891 static const char* const yytname_[];
4892
4893
4894 // Tables.
4895 // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
4896 // STATE-NUM.
4897 static const short yypact_[];
4898
4899 // YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
4900 // Performed when YYTABLE does not specify something else to do. Zero
4901 // means the default is an error.
4902 static const short yydefact_[];
4903
4904 // YYPGOTO[NTERM-NUM].
4905 static const short yypgoto_[];
4906
4907 // YYDEFGOTO[NTERM-NUM].
4908 static const short yydefgoto_[];
4909
4910 // YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
4911 // positive, shift that token. If negative, reduce the rule whose
4912 // number is the opposite. If YYTABLE_NINF, syntax error.
4913 static const short yytable_[];
4914
4915 static const short yycheck_[];
4916
4917 // YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
4918 // state STATE-NUM.
4919 static const short yystos_[];
4920
4921 // YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.
4922 static const short yyr1_[];
4923
4924 // YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.
4925 static const signed char yyr2_[];
4926
4927
4928#if PARSER4_DEBUG
4929 // YYRLINE[YYN] -- Source line where rule number YYN was defined.
4930 static const short yyrline_[];
4932 virtual void yy_reduce_print_ (int r) const;
4934 virtual void yy_stack_print_ () const;
4935
4937 int yydebug_;
4939 std::ostream* yycdebug_;
4940
4944 template <typename Base>
4945 void yy_print_ (std::ostream& yyo, const basic_symbol<Base>& yysym) const;
4946#endif
4947
4952 template <typename Base>
4953 void yy_destroy_ (const char* yymsg, basic_symbol<Base>& yysym) const;
4954
4955 private:
4957 struct by_state
4958 {
4960 by_state () YY_NOEXCEPT;
4961
4963 typedef state_type kind_type;
4964
4966 by_state (kind_type s) YY_NOEXCEPT;
4967
4969 by_state (const by_state& that) YY_NOEXCEPT;
4970
4972 void clear () YY_NOEXCEPT;
4973
4975 void move (by_state& that);
4976
4979 symbol_kind_type kind () const YY_NOEXCEPT;
4980
4983 enum { empty_state = 0 };
4984
4987 state_type state;
4988 };
4989
4991 struct stack_symbol_type : basic_symbol<by_state>
4992 {
4994 typedef basic_symbol<by_state> super_type;
4996 stack_symbol_type ();
4998 stack_symbol_type (YY_RVREF (stack_symbol_type) that);
5000 stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) sym);
5001#if YY_CPLUSPLUS < 201103L
5004 stack_symbol_type& operator= (stack_symbol_type& that);
5005
5008 stack_symbol_type& operator= (const stack_symbol_type& that);
5009#endif
5010 };
5011
5013 template <typename T, typename S = std::vector<T> >
5014 class stack
5015 {
5016 public:
5017 // Hide our reversed order.
5018 typedef typename S::iterator iterator;
5019 typedef typename S::const_iterator const_iterator;
5020 typedef typename S::size_type size_type;
5021 typedef typename std::ptrdiff_t index_type;
5022
5023 stack (size_type n = 200) YY_NOEXCEPT
5024 : seq_ (n)
5025 {}
5026
5027#if 201103L <= YY_CPLUSPLUS
5029 stack (const stack&) = delete;
5031 stack& operator= (const stack&) = delete;
5032#endif
5033
5037 const T&
5038 operator[] (index_type i) const
5039 {
5040 return seq_[size_type (size () - 1 - i)];
5041 }
5042
5046 T&
5047 operator[] (index_type i)
5048 {
5049 return seq_[size_type (size () - 1 - i)];
5050 }
5051
5055 void
5056 push (YY_MOVE_REF (T) t)
5057 {
5058 seq_.push_back (T ());
5059 operator[] (0).move (t);
5060 }
5061
5063 void
5064 pop (std::ptrdiff_t n = 1) YY_NOEXCEPT
5065 {
5066 for (; 0 < n; --n)
5067 seq_.pop_back ();
5068 }
5069
5071 void
5072 clear () YY_NOEXCEPT
5073 {
5074 seq_.clear ();
5075 }
5076
5078 index_type
5079 size () const YY_NOEXCEPT
5080 {
5081 return index_type (seq_.size ());
5082 }
5083
5085 const_iterator
5086 begin () const YY_NOEXCEPT
5087 {
5088 return seq_.begin ();
5089 }
5090
5092 const_iterator
5093 end () const YY_NOEXCEPT
5094 {
5095 return seq_.end ();
5096 }
5097
5099 class slice
5100 {
5101 public:
5102 slice (const stack& stack, index_type range) YY_NOEXCEPT
5103 : stack_ (stack)
5104 , range_ (range)
5105 {}
5106
5107 const T&
5108 operator[] (index_type i) const
5109 {
5110 return stack_[range_ - i];
5111 }
5112
5113 private:
5114 const stack& stack_;
5115 index_type range_;
5116 };
5117
5118 private:
5119#if YY_CPLUSPLUS < 201103L
5121 stack (const stack&);
5123 stack& operator= (const stack&);
5124#endif
5126 S seq_;
5127 };
5128
5129
5131 typedef stack<stack_symbol_type> stack_type;
5132
5134 stack_type yystack_;
5135
5141 void yypush_ (const char* m, YY_MOVE_REF (stack_symbol_type) sym);
5142
5149 void yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym);
5150
5152 void yypop_ (int n = 1) YY_NOEXCEPT;
5153
5155 enum
5156 {
5157 yylast_ = 1429,
5158 yynnts_ = 419,
5159 yyfinal_ = 28
5160 };
5161
5162
5163 // User arguments.
5165
5166 };
5167
5168 inline
5170 Dhcp4Parser::yytranslate_ (int t) YY_NOEXCEPT
5171 {
5172 // YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to
5173 // TOKEN-NUM as returned by yylex.
5174 static
5175 const unsigned char
5176 translate_table[] =
5177 {
5178 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5179 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5180 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5181 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5182 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5183 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5184 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5185 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5186 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5187 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5188 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5189 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5190 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5191 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5192 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5193 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5194 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5195 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5196 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5197 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5198 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5199 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5200 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5201 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5202 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5203 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
5204 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
5205 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
5206 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
5207 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
5208 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
5209 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
5210 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
5211 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
5212 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
5213 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
5214 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
5215 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
5216 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
5217 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
5218 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
5219 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
5220 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
5221 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
5222 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
5223 195, 196, 197, 198, 199, 200, 201, 202, 203, 204
5224 };
5225 // Last valid token kind.
5226 const int code_max = 459;
5227
5228 if (t <= 0)
5229 return symbol_kind::S_YYEOF;
5230 else if (t <= code_max)
5231 return static_cast <symbol_kind_type> (translate_table[t]);
5232 else
5234 }
5235
5236 // basic_symbol.
5237 template <typename Base>
5239 : Base (that)
5240 , value ()
5241 , location (that.location)
5242 {
5243 switch (this->kind ())
5244 {
5245 case symbol_kind::S_value: // value
5246 case symbol_kind::S_map_value: // map_value
5247 case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value
5248 case symbol_kind::S_socket_type: // socket_type
5249 case symbol_kind::S_outbound_interface_value: // outbound_interface_value
5250 case symbol_kind::S_db_type: // db_type
5251 case symbol_kind::S_on_fail_mode: // on_fail_mode
5252 case symbol_kind::S_hr_mode: // hr_mode
5253 case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value
5254 value.copy< ElementPtr > (YY_MOVE (that.value));
5255 break;
5256
5257 case symbol_kind::S_BOOLEAN: // "boolean"
5258 value.copy< bool > (YY_MOVE (that.value));
5259 break;
5260
5261 case symbol_kind::S_FLOAT: // "floating point"
5262 value.copy< double > (YY_MOVE (that.value));
5263 break;
5264
5265 case symbol_kind::S_INTEGER: // "integer"
5266 value.copy< int64_t > (YY_MOVE (that.value));
5267 break;
5268
5269 case symbol_kind::S_STRING: // "constant string"
5270 value.copy< std::string > (YY_MOVE (that.value));
5271 break;
5272
5273 default:
5274 break;
5275 }
5276
5277 }
5278
5279
5280
5281
5282 template <typename Base>
5285 {
5286 return this->kind ();
5287 }
5288
5289
5290 template <typename Base>
5291 bool
5293 {
5294 return this->kind () == symbol_kind::S_YYEMPTY;
5295 }
5296
5297 template <typename Base>
5298 void
5300 {
5301 super_type::move (s);
5302 switch (this->kind ())
5303 {
5304 case symbol_kind::S_value: // value
5305 case symbol_kind::S_map_value: // map_value
5306 case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value
5307 case symbol_kind::S_socket_type: // socket_type
5308 case symbol_kind::S_outbound_interface_value: // outbound_interface_value
5309 case symbol_kind::S_db_type: // db_type
5310 case symbol_kind::S_on_fail_mode: // on_fail_mode
5311 case symbol_kind::S_hr_mode: // hr_mode
5312 case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value
5313 value.move< ElementPtr > (YY_MOVE (s.value));
5314 break;
5315
5316 case symbol_kind::S_BOOLEAN: // "boolean"
5317 value.move< bool > (YY_MOVE (s.value));
5318 break;
5319
5320 case symbol_kind::S_FLOAT: // "floating point"
5321 value.move< double > (YY_MOVE (s.value));
5322 break;
5323
5324 case symbol_kind::S_INTEGER: // "integer"
5325 value.move< int64_t > (YY_MOVE (s.value));
5326 break;
5327
5328 case symbol_kind::S_STRING: // "constant string"
5329 value.move< std::string > (YY_MOVE (s.value));
5330 break;
5331
5332 default:
5333 break;
5334 }
5335
5336 location = YY_MOVE (s.location);
5337 }
5338
5339 // by_kind.
5340 inline
5342 : kind_ (symbol_kind::S_YYEMPTY)
5343 {}
5344
5345#if 201103L <= YY_CPLUSPLUS
5346 inline
5348 : kind_ (that.kind_)
5349 {
5350 that.clear ();
5351 }
5352#endif
5353
5354 inline
5356 : kind_ (that.kind_)
5357 {}
5358
5359 inline
5361 : kind_ (yytranslate_ (t))
5362 {}
5363
5364
5365
5366 inline
5367 void
5369 {
5370 kind_ = symbol_kind::S_YYEMPTY;
5371 }
5372
5373 inline
5374 void
5376 {
5377 kind_ = that.kind_;
5378 that.clear ();
5379 }
5380
5381 inline
5384 {
5385 return kind_;
5386 }
5387
5388
5389 inline
5392 {
5393 return this->kind ();
5394 }
5395
5396
5397#line 14 "dhcp4_parser.yy"
5398} } // isc::dhcp
5399#line 5400 "dhcp4_parser.h"
5400
5401
5402
5403
5404#endif // !YY_PARSER4_DHCP4_PARSER_H_INCLUDED
symbol_kind_type token() const YY_NOEXCEPT
const symbol_type & lookahead() const YY_NOEXCEPT
const location_type & location() const YY_NOEXCEPT
Present a slice of the top of a stack.
slice(const stack &stack, index_type range) YY_NOEXCEPT
A buffer to store and retrieve objects.
Definition: dhcp4_parser.h:230
const T & as() const YY_NOEXCEPT
Const accessor to a built T (for printer).
Definition: dhcp4_parser.h:330
void swap(self_type &that) YY_NOEXCEPT
Swap the content with that, of same type.
Definition: dhcp4_parser.h:348
void move(self_type &that)
Move the content of that to this.
Definition: dhcp4_parser.h:360
T & emplace(const T &t)
Instantiate a T in here from t.
Definition: dhcp4_parser.h:289
void destroy()
Destroy the stored T.
Definition: dhcp4_parser.h:393
value_type() YY_NOEXCEPT
Empty construction.
Definition: dhcp4_parser.h:236
void copy(const self_type &that)
Copy the content of that to this.
Definition: dhcp4_parser.h:385
T & emplace()
Instantiate an empty T in here.
Definition: dhcp4_parser.h:278
value_type(YY_RVREF(T) t)
Construct and fill.
Definition: dhcp4_parser.h:243
T & build(const T &t)
Instantiate a T in here from t.
Definition: dhcp4_parser.h:311
T & as() YY_NOEXCEPT
Accessor to a built T.
Definition: dhcp4_parser.h:319
value_type self_type
Type of *this.
Definition: dhcp4_parser.h:233
char yyraw_[size]
A buffer large enough to store any of the semantic values.
Definition: dhcp4_parser.h:461
T & build()
Instantiate an empty T in here.
Definition: dhcp4_parser.h:302
long double yyalign_me_
Strongest alignment constraints.
Definition: dhcp4_parser.h:459
~value_type() YY_NOEXCEPT
Destruction, allowed only if empty.
Definition: dhcp4_parser.h:258
A Bison parser.
Definition: dhcp4_parser.h:216
static symbol_type make_SAME_AS_INBOUND(const location_type &l)
static symbol_type make_SOCKET_NAME(const location_type &l)
static symbol_type make_KEYSPACE(const location_type &l)
static symbol_type make_PERSIST(const location_type &l)
static symbol_type make_FLUSH_RECLAIMED_TIMER_WAIT_TIME(const location_type &l)
static symbol_type make_SUBNET_4O6_INTERFACE_ID(const location_type &l)
static symbol_type make_SUB_INTERFACES4(const location_type &l)
static symbol_type make_END(const location_type &l)
static symbol_type make_STATISTIC_DEFAULT_SAMPLE_COUNT(const location_type &l)
static symbol_type make_IP_RESERVATIONS_UNIQUE(const location_type &l)
static symbol_type make_CONTROL_SOCKET(const location_type &l)
static symbol_type make_THREAD_POOL_SIZE(const location_type &l)
static symbol_type make_GENERATED_PREFIX(const location_type &l)
static symbol_type make_SUB_OPTION_DATA(const location_type &l)
static symbol_type make_NAME(const location_type &l)
static symbol_type make_MATCH_CLIENT_ID(const location_type &l)
static symbol_type make_SERIAL_CONSISTENCY(const location_type &l)
static symbol_type make_MAX_RECLAIM_LEASES(const location_type &l)
static symbol_type make_STORE_EXTENDED_INFO(const location_type &l)
static symbol_type make_OVERRIDE_CLIENT_UPDATE(const location_type &l)
static symbol_type make_LFC_INTERVAL(const location_type &l)
static symbol_type make_HOLD_RECLAIMED_TIME(const location_type &l)
static symbol_type make_MEMFILE(const location_type &l)
static symbol_type make_CONNECT_TIMEOUT(const location_type &l)
static symbol_type make_OPTION_DEF(const location_type &l)
static symbol_type make_NULL_TYPE(const location_type &l)
static symbol_type make_OUTPUT_OPTIONS(const location_type &l)
static symbol_type make_ALL(const location_type &l)
static symbol_type make_SENDER_PORT(const location_type &l)
static symbol_type make_CACHE_MAX_AGE(const location_type &l)
static symbol_type make_NCR_PROTOCOL(const location_type &l)
static symbol_type make_CALCULATE_TEE_TIMES(const location_type &l)
static symbol_type make_RE_DETECT(const location_type &l)
static symbol_type make_RELAY(const location_type &l)
static symbol_type make_MAX_VALID_LIFETIME(const location_type &l)
static symbol_type make_SERVER_HOSTNAME(const location_type &l)
static symbol_type make_CQL(const location_type &l)
virtual void error(const location_type &loc, const std::string &msg)
Report a syntax error.
static symbol_type make_TEST(const location_type &l)
static symbol_type make_RECONNECT_WAIT_TIME(const location_type &l)
static symbol_type make_DHCP_MULTI_THREADING(const location_type &l)
static symbol_type make_ARRAY(const location_type &l)
static symbol_type make_SOCKET_TYPE(const location_type &l)
static symbol_type make_SPACE(const location_type &l)
static symbol_type make_HW_ADDRESS(const location_type &l)
static symbol_type make_USE_ROUTING(const location_type &l)
static symbol_type make_MAX_RECLAIM_TIME(const location_type &l)
static symbol_type make_HOSTNAME_CHAR_REPLACEMENT(const location_type &l)
static symbol_type make_VALID_LIFETIME(const location_type &l)
static symbol_type make_MAXVER(const location_type &l)
static symbol_type make_BOOLEAN(const bool &v, const location_type &l)
virtual int parse()
Parse.
static symbol_type make_INTERFACE(const location_type &l)
static symbol_type make_REBIND_TIMER(const location_type &l)
static symbol_type make_BOOT_FILE_NAME(const location_type &l)
static symbol_type make_SEVERITY(const location_type &l)
static symbol_type make_RESERVATIONS_IN_SUBNET(const location_type &l)
static symbol_type make_IP_ADDRESSES(const location_type &l)
static symbol_type make_DDNS_UPDATE_ON_RENEW(const location_type &l)
static symbol_type make_CONTACT_POINTS(const location_type &l)
static symbol_type make_INTERFACES_CONFIG(const location_type &l)
static symbol_type make_UDP(const location_type &l)
static symbol_type make_TCP(const location_type &l)
static symbol_type make_SUBNET4(const location_type &l)
static symbol_type make_COLON(const location_type &l)
static symbol_type make_SERVE_RETRY_CONTINUE(const location_type &l)
static symbol_type make_HOSTS_DATABASES(const location_type &l)
token_kind_type token_type
Backward compatibility alias (Bison 3.6).
Definition: dhcp4_parser.h:713
static symbol_type make_SUB_DHCP_DDNS(const location_type &l)
static symbol_type make_DDNS_SEND_UPDATES(const location_type &l)
static symbol_type make_CONSISTENCY(const location_type &l)
static symbol_type make_OVERRIDE_NO_UPDATE(const location_type &l)
static symbol_type make_LENIENT_OPTION_PARSING(const location_type &l)
static symbol_type make_MIN_VALID_LIFETIME(const location_type &l)
static symbol_type make_DDNS_QUALIFYING_SUFFIX(const location_type &l)
static symbol_type make_DECLINE_PROBATION_PERIOD(const location_type &l)
static symbol_type make_IP_ADDRESS(const location_type &l)
static symbol_type make_SUB_HOOKS_LIBRARY(const location_type &l)
static symbol_type make_ENABLE_QUEUE(const location_type &l)
static symbol_type make_SUBNET(const location_type &l)
static symbol_type make_FLOAT(const double &v, const location_type &l)
static symbol_type make_HOSTNAME(const location_type &l)
static symbol_type make_DDNS_REPLACE_CLIENT_NAME(const location_type &l)
static symbol_type make_SUB_RESERVATION(const location_type &l)
static symbol_type make_SUB_OPTION_DEFS(const location_type &l)
static symbol_type make_OPTION_DATA(const location_type &l)
static symbol_type make_POSTGRESQL(const location_type &l)
static symbol_type make_LOGGERS(const location_type &l)
std::ostream & debug_stream() const YY_ATTRIBUTE_PURE
The current debugging stream.
static symbol_type make_MYSQL(const location_type &l)
static symbol_type make_UNWARNED_RECLAIM_CYCLES(const location_type &l)
void set_debug_stream(std::ostream &)
Set the current debugging stream.
static symbol_type make_LEASE_CHECKS(const location_type &l)
static symbol_type make_USER(const location_type &l)
static symbol_type make_GLOBAL(const location_type &l)
token::token_kind_type token_kind_type
Token kind, as returned by yylex.
Definition: dhcp4_parser.h:710
static symbol_type make_SERVER_IP(const location_type &l)
static symbol_type make_OUT_OF_POOL(const location_type &l)
static symbol_type make_HOSTS_DATABASE(const location_type &l)
static symbol_type make_QUEUE_TYPE(const location_type &l)
static symbol_type make_T1_PERCENT(const location_type &l)
static symbol_type make_RECLAIM_TIMER_WAIT_TIME(const location_type &l)
static symbol_type make_STOP_RETRY_EXIT(const location_type &l)
static symbol_type make_DDNS_OVERRIDE_NO_UPDATE(const location_type &l)
static symbol_type make_ALWAYS_SEND(const location_type &l)
static symbol_type make_PARSER4_UNDEF(const location_type &l)
static symbol_type make_ECHO_CLIENT_ID(const location_type &l)
static symbol_type make_POOL(const location_type &l)
static symbol_type make_DATA(const location_type &l)
location location_type
Symbol locations.
Definition: dhcp4_parser.h:473
static symbol_type make_ENABLE_MULTI_THREADING(const location_type &l)
static symbol_type make_CSV_FORMAT(const location_type &l)
static symbol_type make_SERVER_PORT(const location_type &l)
static symbol_type make_SUB_SUBNET4(const location_type &l)
static symbol_type make_WHEN_NOT_PRESENT(const location_type &l)
static symbol_type make_LIBRARY(const location_type &l)
static symbol_type make_TCP_KEEPALIVE(const location_type &l)
static symbol_type make_ON_FAIL(const location_type &l)
static symbol_type make_JSON(const location_type &l)
static symbol_type make_LCURLY_BRACKET(const location_type &l)
static symbol_type make_RECORD_TYPES(const location_type &l)
static symbol_type make_INTEGER(const int64_t &v, const location_type &l)
static symbol_type make_DUID(const location_type &l)
static symbol_type make_PARAMETERS(const location_type &l)
static symbol_type make_SUBNET_4O6_INTERFACE(const location_type &l)
static symbol_type make_DHCP4(const location_type &l)
static symbol_type make_CAPACITY(const location_type &l)
static symbol_type make_STRING(const std::string &v, const location_type &l)
value_type semantic_type
Backward compatibility (Bison 3.8).
Definition: dhcp4_parser.h:470
static symbol_type make_SUB_OPTION_DEF(const location_type &l)
static symbol_type make_PARSER4_error(const location_type &l)
static symbol_type make_TYPE(const location_type &l)
static symbol_type make_ONLY_IF_REQUIRED(const location_type &l)
static symbol_type make_PASSWORD(const location_type &l)
static symbol_type make_CONFIG_DATABASES(const location_type &l)
static symbol_type make_AUTHORITATIVE(const location_type &l)
static symbol_type make_HOST_RESERVATION_IDENTIFIERS(const location_type &l)
static symbol_type make_RESERVATION_MODE(const location_type &l)
static symbol_type make_MAX_ROW_ERRORS(const location_type &l)
static symbol_type make_INTERFACES(const location_type &l)
static symbol_type make_T2_PERCENT(const location_type &l)
static symbol_type make_READONLY(const location_type &l)
static symbol_type make_DDNS_USE_CONFLICT_RESOLUTION(const location_type &l)
static symbol_type make_LSQUARE_BRACKET(const location_type &l)
static symbol_type make_ENABLE_UPDATES(const location_type &l)
static symbol_type make_SERVER_TAG(const location_type &l)
static symbol_type make_DEBUGLEVEL(const location_type &l)
symbol_kind::symbol_kind_type symbol_kind_type
(Internal) symbol kind.
static symbol_type make_DHCP_QUEUE_CONTROL(const location_type &l)
static symbol_type make_TCP_NODELAY(const location_type &l)
static symbol_type make_MAXSIZE(const location_type &l)
static symbol_type make_PORT(const location_type &l)
static symbol_type make_FLEX_ID(const location_type &l)
static symbol_type make_CLIENT_CLASS(const location_type &l)
static symbol_type make_NEXT_SERVER(const location_type &l)
static symbol_type make_SANITY_CHECKS(const location_type &l)
static symbol_type make_EXPIRED_LEASES_PROCESSING(const location_type &l)
static symbol_type make_RAW(const location_type &l)
static symbol_type make_OUTBOUND_INTERFACE(const location_type &l)
static const symbol_kind_type YYNTOKENS
The number of tokens.
static symbol_type make_REPLACE_CLIENT_NAME(const location_type &l)
static symbol_type make_RESERVATIONS_OUT_OF_POOL(const location_type &l)
static symbol_type make_ID(const location_type &l)
static symbol_type make_PATTERN(const location_type &l)
static symbol_type make_SUB_POOL4(const location_type &l)
static symbol_type make_NEVER(const location_type &l)
static symbol_type make_TOPLEVEL_JSON(const location_type &l)
static symbol_type make_RESERVATIONS_GLOBAL(const location_type &l)
static symbol_type make_RCURLY_BRACKET(const location_type &l)
static symbol_type make_COMMENT(const location_type &l)
static symbol_type make_RESERVATIONS(const location_type &l)
static symbol_type make_HOOKS_LIBRARIES(const location_type &l)
static symbol_type make_HOSTNAME_CHAR_SET(const location_type &l)
static symbol_type make_REQUEST_TIMEOUT(const location_type &l)
static symbol_type make_MAX_QUEUE_SIZE(const location_type &l)
debug_level_type debug_level() const YY_ATTRIBUTE_PURE
The current debugging level.
static symbol_type make_SERVE_RETRY_EXIT(const location_type &l)
static symbol_type make_COMPATIBILITY(const location_type &l)
static symbol_type make_POOLS(const location_type &l)
static symbol_type make_DHCP_DDNS(const location_type &l)
static symbol_type make_ALWAYS(const location_type &l)
static symbol_type make_CLIENT_ID(const location_type &l)
static symbol_type make_SUB_CONFIG_CONTROL(const location_type &l)
static symbol_type make_TOPLEVEL_DHCP4(const location_type &l)
static symbol_type make_MAX_RECONNECT_TRIES(const location_type &l)
static symbol_type make_FLUSH(const location_type &l)
static symbol_type make_HOST(const location_type &l)
static symbol_type make_WHEN_PRESENT(const location_type &l)
static symbol_type make_SENDER_IP(const location_type &l)
static symbol_type make_DHCP_SOCKET_TYPE(const location_type &l)
static symbol_type make_CONFIG_CONTROL(const location_type &l)
static symbol_type make_CONFIG_FETCH_WAIT_TIME(const location_type &l)
static symbol_type make_DHCP4O6_PORT(const location_type &l)
static symbol_type make_QUALIFYING_SUFFIX(const location_type &l)
static symbol_type make_CODE(const location_type &l)
static symbol_type make_SHARED_NETWORKS(const location_type &l)
static symbol_type make_DDNS_GENERATED_PREFIX(const location_type &l)
static symbol_type make_USER_CONTEXT(const location_type &l)
static symbol_type make_NCR_FORMAT(const location_type &l)
static symbol_type make_DISABLED(const location_type &l)
static std::string symbol_name(symbol_kind_type yysymbol)
The user-facing name of the symbol whose (internal) number is YYSYMBOL.
Dhcp4Parser(isc::dhcp::Parser4Context &ctx_yyarg)
Build a parser object.
static symbol_type make_REQUIRE_CLIENT_CLASSES(const location_type &l)
static symbol_type make_COMMA(const location_type &l)
static symbol_type make_SUB_DHCP4(const location_type &l)
static symbol_type make_SUBNET_4O6_SUBNET(const location_type &l)
static symbol_type make_OUTPUT(const location_type &l)
static symbol_type make_RSQUARE_BRACKET(const location_type &l)
static symbol_type make_RENEW_TIMER(const location_type &l)
static symbol_type make_DDNS_OVERRIDE_CLIENT_UPDATE(const location_type &l)
static symbol_type make_CLIENT_CLASSES(const location_type &l)
static symbol_type make_ENCAPSULATE(const location_type &l)
static symbol_type make_STATISTIC_DEFAULT_SAMPLE_AGE(const location_type &l)
static symbol_type make_CIRCUIT_ID(const location_type &l)
static symbol_type make_CACHE_THRESHOLD(const location_type &l)
int debug_level_type
Type for debugging levels.
static symbol_type make_PARKED_PACKET_LIMIT(const location_type &l)
void set_debug_level(debug_level_type l)
Set the current debugging level.
static symbol_type make_PACKET_QUEUE_SIZE(const location_type &l)
static symbol_type make_LEASE_DATABASE(const location_type &l)
Evaluation context, an interface to the expression evaluation.
Forward declaration of the ParserContext class.
#define YY_RVREF(Type)
Definition: dhcp4_parser.h:86
#define YY_MOVE_REF(Type)
Definition: dhcp4_parser.h:85
#define PARSER4__ASSERT
Definition: dhcp4_parser.h:109
#define YY_NOEXCEPT
Definition: dhcp4_parser.h:95
#define YY_ATTRIBUTE_PURE
Definition: dhcp4_parser.h:117
#define YY_MOVE
Definition: dhcp4_parser.h:83
#define YY_NOTHROW
Definition: dhcp4_parser.h:96
boost::shared_ptr< Element > ElementPtr
Definition: data.h:24
Defines the logger used by the top-level component of kea-lfc.
location_type location
The location.
basic_symbol(typename Base::kind_type t, const std::string &v, const location_type &l)
value_type value
The semantic value.
bool empty() const YY_NOEXCEPT
Whether empty.
basic_symbol(typename Base::kind_type t, const ElementPtr &v, const location_type &l)
basic_symbol(typename Base::kind_type t, const location_type &l)
Constructors for typed symbols.
void move(basic_symbol &s)
Destructive move, s is emptied into this.
basic_symbol(typename Base::kind_type t, const int64_t &v, const location_type &l)
basic_symbol() YY_NOEXCEPT
Default constructor.
symbol_kind_type type_get() const YY_NOEXCEPT
Backward compatibility (Bison 3.6).
basic_symbol(typename Base::kind_type t, const bool &v, const location_type &l)
basic_symbol(typename Base::kind_type t, const double &v, const location_type &l)
std::string name() const YY_NOEXCEPT
The user-facing name of this symbol.
void clear() YY_NOEXCEPT
Destroy contents, and record that is empty.
Type access provider for token (enum) based symbols.
void move(by_kind &that)
Steal the symbol kind from that.
symbol_kind_type kind() const YY_NOEXCEPT
The (internal) type number (corresponding to type).
symbol_kind_type kind_
The symbol kind.
void clear() YY_NOEXCEPT
Record that this symbol is empty.
token_kind_type kind_type
The symbol kind as needed by the constructor.
by_kind() YY_NOEXCEPT
Default constructor.
symbol_kind_type type_get() const YY_NOEXCEPT
Backward compatibility (Bison 3.6).
"External" symbols: returned by the scanner.
basic_symbol< by_kind > super_type
Superclass.
symbol_type() YY_NOEXCEPT
Empty symbol.
Syntax errors thrown from user actions.
Definition: dhcp4_parser.h:477
~syntax_error() YY_NOEXCEPT YY_NOTHROW
syntax_error(const syntax_error &s)
Definition: dhcp4_parser.h:483
syntax_error(const location_type &l, const std::string &m)
Definition: dhcp4_parser.h:478
token_kind_type yytokentype
Backward compatibility alias (Bison 3.6).
Definition: dhcp4_parser.h:706