Kea 1.9.11
dhcp4_parser.h
Go to the documentation of this file.
1// A Bison parser, made by GNU Bison 3.7.6.
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#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
137/* Suppress an incorrect diagnostic about yylval being uninitialized. */
138# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
139 _Pragma ("GCC diagnostic push") \
140 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
141 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
142# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
143 _Pragma ("GCC diagnostic pop")
144#else
145# define YY_INITIAL_VALUE(Value) Value
146#endif
147#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
148# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
149# define YY_IGNORE_MAYBE_UNINITIALIZED_END
150#endif
151#ifndef YY_INITIAL_VALUE
152# define YY_INITIAL_VALUE(Value) /* Nothing. */
153#endif
154
155#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
156# define YY_IGNORE_USELESS_CAST_BEGIN \
157 _Pragma ("GCC diagnostic push") \
158 _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
159# define YY_IGNORE_USELESS_CAST_END \
160 _Pragma ("GCC diagnostic pop")
161#endif
162#ifndef YY_IGNORE_USELESS_CAST_BEGIN
163# define YY_IGNORE_USELESS_CAST_BEGIN
164# define YY_IGNORE_USELESS_CAST_END
165#endif
166
167# ifndef YY_CAST
168# ifdef __cplusplus
169# define YY_CAST(Type, Val) static_cast<Type> (Val)
170# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
171# else
172# define YY_CAST(Type, Val) ((Type) (Val))
173# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
174# endif
175# endif
176# ifndef YY_NULLPTR
177# if defined __cplusplus
178# if 201103L <= __cplusplus
179# define YY_NULLPTR nullptr
180# else
181# define YY_NULLPTR 0
182# endif
183# else
184# define YY_NULLPTR ((void*)0)
185# endif
186# endif
187
188/* Debug traces. */
189#ifndef PARSER4_DEBUG
190# if defined YYDEBUG
191#if YYDEBUG
192# define PARSER4_DEBUG 1
193# else
194# define PARSER4_DEBUG 0
195# endif
196# else /* ! defined YYDEBUG */
197# define PARSER4_DEBUG 1
198# endif /* ! defined YYDEBUG */
199#endif /* ! defined PARSER4_DEBUG */
200
201#line 14 "dhcp4_parser.yy"
202namespace isc { namespace dhcp {
203#line 204 "dhcp4_parser.h"
204
205
206
207
210 {
211 public:
212#ifndef PARSER4_STYPE
219 {
220 public:
223
226 : yybuffer_ ()
227 , yytypeid_ (YY_NULLPTR)
228 {}
229
231 template <typename T>
233 : yytypeid_ (&typeid (T))
234 {
235 PARSER4__ASSERT (sizeof (T) <= size);
236 new (yyas_<T> ()) T (YY_MOVE (t));
237 }
238
239#if 201103L <= YY_CPLUSPLUS
241 semantic_type (const self_type&) = delete;
243 self_type& operator= (const self_type&) = delete;
244#endif
245
248 {
249 PARSER4__ASSERT (!yytypeid_);
250 }
251
252# if 201103L <= YY_CPLUSPLUS
254 template <typename T, typename... U>
255 T&
256 emplace (U&&... u)
257 {
258 PARSER4__ASSERT (!yytypeid_);
259 PARSER4__ASSERT (sizeof (T) <= size);
260 yytypeid_ = & typeid (T);
261 return *new (yyas_<T> ()) T (std::forward <U>(u)...);
262 }
263# else
265 template <typename T>
266 T&
268 {
269 PARSER4__ASSERT (!yytypeid_);
270 PARSER4__ASSERT (sizeof (T) <= size);
271 yytypeid_ = & typeid (T);
272 return *new (yyas_<T> ()) T ();
273 }
274
276 template <typename T>
277 T&
278 emplace (const T& t)
279 {
280 PARSER4__ASSERT (!yytypeid_);
281 PARSER4__ASSERT (sizeof (T) <= size);
282 yytypeid_ = & typeid (T);
283 return *new (yyas_<T> ()) T (t);
284 }
285# endif
286
289 template <typename T>
290 T&
292 {
293 return emplace<T> ();
294 }
295
298 template <typename T>
299 T&
300 build (const T& t)
301 {
302 return emplace<T> (t);
303 }
304
306 template <typename T>
307 T&
309 {
310 PARSER4__ASSERT (yytypeid_);
311 PARSER4__ASSERT (*yytypeid_ == typeid (T));
312 PARSER4__ASSERT (sizeof (T) <= size);
313 return *yyas_<T> ();
314 }
315
317 template <typename T>
318 const T&
320 {
321 PARSER4__ASSERT (yytypeid_);
322 PARSER4__ASSERT (*yytypeid_ == typeid (T));
323 PARSER4__ASSERT (sizeof (T) <= size);
324 return *yyas_<T> ();
325 }
326
335 template <typename T>
336 void
338 {
339 PARSER4__ASSERT (yytypeid_);
340 PARSER4__ASSERT (*yytypeid_ == *that.yytypeid_);
341 std::swap (as<T> (), that.as<T> ());
342 }
343
347 template <typename T>
348 void
350 {
351# if 201103L <= YY_CPLUSPLUS
352 emplace<T> (std::move (that.as<T> ()));
353# else
354 emplace<T> ();
355 swap<T> (that);
356# endif
357 that.destroy<T> ();
358 }
359
360# if 201103L <= YY_CPLUSPLUS
362 template <typename T>
363 void
364 move (self_type&& that)
365 {
366 emplace<T> (std::move (that.as<T> ()));
367 that.destroy<T> ();
368 }
369#endif
370
372 template <typename T>
373 void
374 copy (const self_type& that)
375 {
376 emplace<T> (that.as<T> ());
377 }
378
380 template <typename T>
381 void
383 {
384 as<T> ().~T ();
385 yytypeid_ = YY_NULLPTR;
386 }
387
388 private:
389#if YY_CPLUSPLUS < 201103L
391 semantic_type (const self_type&);
393 self_type& operator= (const self_type&);
394#endif
395
397 template <typename T>
398 T*
399 yyas_ () YY_NOEXCEPT
400 {
401 void *yyp = yybuffer_.yyraw;
402 return static_cast<T*> (yyp);
403 }
404
406 template <typename T>
407 const T*
408 yyas_ () const YY_NOEXCEPT
409 {
410 const void *yyp = yybuffer_.yyraw;
411 return static_cast<const T*> (yyp);
412 }
413
415 union union_type
416 {
417 // value
418 // map_value
419 // ddns_replace_client_name_value
420 // socket_type
421 // outbound_interface_value
422 // db_type
423 // on_fail_mode
424 // hr_mode
425 // ncr_protocol_value
426 char dummy1[sizeof (ElementPtr)];
427
428 // "boolean"
429 char dummy2[sizeof (bool)];
430
431 // "floating point"
432 char dummy3[sizeof (double)];
433
434 // "integer"
435 char dummy4[sizeof (int64_t)];
436
437 // "constant string"
438 char dummy5[sizeof (std::string)];
439 };
440
442 enum { size = sizeof (union_type) };
443
445 union
446 {
448 long double yyalign_me;
450 char yyraw[size];
451 } yybuffer_;
452
454 const std::type_info *yytypeid_;
455 };
456
457#else
458 typedef PARSER4_STYPE semantic_type;
459#endif
461 typedef location location_type;
462
464 struct syntax_error : std::runtime_error
465 {
466 syntax_error (const location_type& l, const std::string& m)
467 : std::runtime_error (m)
468 , location (l)
469 {}
470
472 : std::runtime_error (s.what ())
473 , location (s.location)
474 {}
475
477
479 };
480
482 struct token
483 {
485 {
486 TOKEN_PARSER4_EMPTY = -2,
487 TOKEN_END = 0, // "end of file"
488 TOKEN_PARSER4_error = 256, // error
489 TOKEN_PARSER4_UNDEF = 257, // "invalid token"
490 TOKEN_COMMA = 258, // ","
491 TOKEN_COLON = 259, // ":"
492 TOKEN_LSQUARE_BRACKET = 260, // "["
493 TOKEN_RSQUARE_BRACKET = 261, // "]"
494 TOKEN_LCURLY_BRACKET = 262, // "{"
495 TOKEN_RCURLY_BRACKET = 263, // "}"
496 TOKEN_NULL_TYPE = 264, // "null"
497 TOKEN_DHCP4 = 265, // "Dhcp4"
498 TOKEN_CONFIG_CONTROL = 266, // "config-control"
499 TOKEN_CONFIG_DATABASES = 267, // "config-databases"
500 TOKEN_CONFIG_FETCH_WAIT_TIME = 268, // "config-fetch-wait-time"
501 TOKEN_INTERFACES_CONFIG = 269, // "interfaces-config"
502 TOKEN_INTERFACES = 270, // "interfaces"
503 TOKEN_DHCP_SOCKET_TYPE = 271, // "dhcp-socket-type"
504 TOKEN_RAW = 272, // "raw"
505 TOKEN_UDP = 273, // "udp"
506 TOKEN_OUTBOUND_INTERFACE = 274, // "outbound-interface"
507 TOKEN_SAME_AS_INBOUND = 275, // "same-as-inbound"
508 TOKEN_USE_ROUTING = 276, // "use-routing"
509 TOKEN_RE_DETECT = 277, // "re-detect"
510 TOKEN_SANITY_CHECKS = 278, // "sanity-checks"
511 TOKEN_LEASE_CHECKS = 279, // "lease-checks"
512 TOKEN_ECHO_CLIENT_ID = 280, // "echo-client-id"
513 TOKEN_MATCH_CLIENT_ID = 281, // "match-client-id"
514 TOKEN_AUTHORITATIVE = 282, // "authoritative"
515 TOKEN_NEXT_SERVER = 283, // "next-server"
516 TOKEN_SERVER_HOSTNAME = 284, // "server-hostname"
517 TOKEN_BOOT_FILE_NAME = 285, // "boot-file-name"
518 TOKEN_LEASE_DATABASE = 286, // "lease-database"
519 TOKEN_HOSTS_DATABASE = 287, // "hosts-database"
520 TOKEN_HOSTS_DATABASES = 288, // "hosts-databases"
521 TOKEN_TYPE = 289, // "type"
522 TOKEN_MEMFILE = 290, // "memfile"
523 TOKEN_MYSQL = 291, // "mysql"
524 TOKEN_POSTGRESQL = 292, // "postgresql"
525 TOKEN_CQL = 293, // "cql"
526 TOKEN_USER = 294, // "user"
527 TOKEN_PASSWORD = 295, // "password"
528 TOKEN_HOST = 296, // "host"
529 TOKEN_PORT = 297, // "port"
530 TOKEN_PERSIST = 298, // "persist"
531 TOKEN_LFC_INTERVAL = 299, // "lfc-interval"
532 TOKEN_READONLY = 300, // "readonly"
533 TOKEN_CONNECT_TIMEOUT = 301, // "connect-timeout"
534 TOKEN_CONTACT_POINTS = 302, // "contact-points"
535 TOKEN_KEYSPACE = 303, // "keyspace"
536 TOKEN_CONSISTENCY = 304, // "consistency"
537 TOKEN_SERIAL_CONSISTENCY = 305, // "serial-consistency"
538 TOKEN_MAX_RECONNECT_TRIES = 306, // "max-reconnect-tries"
539 TOKEN_RECONNECT_WAIT_TIME = 307, // "reconnect-wait-time"
540 TOKEN_ON_FAIL = 308, // "on-fail"
541 TOKEN_STOP_RETRY_EXIT = 309, // "stop-retry-exit"
542 TOKEN_SERVE_RETRY_EXIT = 310, // "serve-retry-exit"
543 TOKEN_SERVE_RETRY_CONTINUE = 311, // "serve-retry-continue"
544 TOKEN_REQUEST_TIMEOUT = 312, // "request-timeout"
545 TOKEN_TCP_KEEPALIVE = 313, // "tcp-keepalive"
546 TOKEN_TCP_NODELAY = 314, // "tcp-nodelay"
547 TOKEN_MAX_ROW_ERRORS = 315, // "max-row-errors"
548 TOKEN_VALID_LIFETIME = 316, // "valid-lifetime"
549 TOKEN_MIN_VALID_LIFETIME = 317, // "min-valid-lifetime"
550 TOKEN_MAX_VALID_LIFETIME = 318, // "max-valid-lifetime"
551 TOKEN_RENEW_TIMER = 319, // "renew-timer"
552 TOKEN_REBIND_TIMER = 320, // "rebind-timer"
553 TOKEN_CALCULATE_TEE_TIMES = 321, // "calculate-tee-times"
554 TOKEN_T1_PERCENT = 322, // "t1-percent"
555 TOKEN_T2_PERCENT = 323, // "t2-percent"
556 TOKEN_CACHE_THRESHOLD = 324, // "cache-threshold"
557 TOKEN_CACHE_MAX_AGE = 325, // "cache-max-age"
558 TOKEN_DECLINE_PROBATION_PERIOD = 326, // "decline-probation-period"
559 TOKEN_SERVER_TAG = 327, // "server-tag"
560 TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT = 328, // "statistic-default-sample-count"
561 TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE = 329, // "statistic-default-sample-age"
562 TOKEN_DDNS_SEND_UPDATES = 330, // "ddns-send-updates"
563 TOKEN_DDNS_OVERRIDE_NO_UPDATE = 331, // "ddns-override-no-update"
564 TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE = 332, // "ddns-override-client-update"
565 TOKEN_DDNS_REPLACE_CLIENT_NAME = 333, // "ddns-replace-client-name"
566 TOKEN_DDNS_GENERATED_PREFIX = 334, // "ddns-generated-prefix"
567 TOKEN_DDNS_QUALIFYING_SUFFIX = 335, // "ddns-qualifying-suffix"
568 TOKEN_DDNS_UPDATE_ON_RENEW = 336, // "ddns-update-on-renew"
569 TOKEN_DDNS_USE_CONFLICT_RESOLUTION = 337, // "ddns-use-conflict-resolution"
570 TOKEN_STORE_EXTENDED_INFO = 338, // "store-extended-info"
571 TOKEN_SUBNET4 = 339, // "subnet4"
572 TOKEN_SUBNET_4O6_INTERFACE = 340, // "4o6-interface"
573 TOKEN_SUBNET_4O6_INTERFACE_ID = 341, // "4o6-interface-id"
574 TOKEN_SUBNET_4O6_SUBNET = 342, // "4o6-subnet"
575 TOKEN_OPTION_DEF = 343, // "option-def"
576 TOKEN_OPTION_DATA = 344, // "option-data"
577 TOKEN_NAME = 345, // "name"
578 TOKEN_DATA = 346, // "data"
579 TOKEN_CODE = 347, // "code"
580 TOKEN_SPACE = 348, // "space"
581 TOKEN_CSV_FORMAT = 349, // "csv-format"
582 TOKEN_ALWAYS_SEND = 350, // "always-send"
583 TOKEN_RECORD_TYPES = 351, // "record-types"
584 TOKEN_ENCAPSULATE = 352, // "encapsulate"
585 TOKEN_ARRAY = 353, // "array"
586 TOKEN_SHARED_NETWORKS = 354, // "shared-networks"
587 TOKEN_POOLS = 355, // "pools"
588 TOKEN_POOL = 356, // "pool"
589 TOKEN_USER_CONTEXT = 357, // "user-context"
590 TOKEN_COMMENT = 358, // "comment"
591 TOKEN_SUBNET = 359, // "subnet"
592 TOKEN_INTERFACE = 360, // "interface"
593 TOKEN_ID = 361, // "id"
594 TOKEN_RESERVATION_MODE = 362, // "reservation-mode"
595 TOKEN_DISABLED = 363, // "disabled"
596 TOKEN_OUT_OF_POOL = 364, // "out-of-pool"
597 TOKEN_GLOBAL = 365, // "global"
598 TOKEN_ALL = 366, // "all"
599 TOKEN_RESERVATIONS_GLOBAL = 367, // "reservations-global"
600 TOKEN_RESERVATIONS_IN_SUBNET = 368, // "reservations-in-subnet"
601 TOKEN_RESERVATIONS_OUT_OF_POOL = 369, // "reservations-out-of-pool"
602 TOKEN_HOST_RESERVATION_IDENTIFIERS = 370, // "host-reservation-identifiers"
603 TOKEN_CLIENT_CLASSES = 371, // "client-classes"
604 TOKEN_REQUIRE_CLIENT_CLASSES = 372, // "require-client-classes"
605 TOKEN_TEST = 373, // "test"
606 TOKEN_ONLY_IF_REQUIRED = 374, // "only-if-required"
607 TOKEN_CLIENT_CLASS = 375, // "client-class"
608 TOKEN_RESERVATIONS = 376, // "reservations"
609 TOKEN_DUID = 377, // "duid"
610 TOKEN_HW_ADDRESS = 378, // "hw-address"
611 TOKEN_CIRCUIT_ID = 379, // "circuit-id"
612 TOKEN_CLIENT_ID = 380, // "client-id"
613 TOKEN_HOSTNAME = 381, // "hostname"
614 TOKEN_FLEX_ID = 382, // "flex-id"
615 TOKEN_RELAY = 383, // "relay"
616 TOKEN_IP_ADDRESS = 384, // "ip-address"
617 TOKEN_IP_ADDRESSES = 385, // "ip-addresses"
618 TOKEN_HOOKS_LIBRARIES = 386, // "hooks-libraries"
619 TOKEN_LIBRARY = 387, // "library"
620 TOKEN_PARAMETERS = 388, // "parameters"
621 TOKEN_EXPIRED_LEASES_PROCESSING = 389, // "expired-leases-processing"
622 TOKEN_RECLAIM_TIMER_WAIT_TIME = 390, // "reclaim-timer-wait-time"
623 TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 391, // "flush-reclaimed-timer-wait-time"
624 TOKEN_HOLD_RECLAIMED_TIME = 392, // "hold-reclaimed-time"
625 TOKEN_MAX_RECLAIM_LEASES = 393, // "max-reclaim-leases"
626 TOKEN_MAX_RECLAIM_TIME = 394, // "max-reclaim-time"
627 TOKEN_UNWARNED_RECLAIM_CYCLES = 395, // "unwarned-reclaim-cycles"
628 TOKEN_DHCP4O6_PORT = 396, // "dhcp4o6-port"
629 TOKEN_DHCP_MULTI_THREADING = 397, // "multi-threading"
630 TOKEN_ENABLE_MULTI_THREADING = 398, // "enable-multi-threading"
631 TOKEN_THREAD_POOL_SIZE = 399, // "thread-pool-size"
632 TOKEN_PACKET_QUEUE_SIZE = 400, // "packet-queue-size"
633 TOKEN_CONTROL_SOCKET = 401, // "control-socket"
634 TOKEN_SOCKET_TYPE = 402, // "socket-type"
635 TOKEN_SOCKET_NAME = 403, // "socket-name"
636 TOKEN_DHCP_QUEUE_CONTROL = 404, // "dhcp-queue-control"
637 TOKEN_ENABLE_QUEUE = 405, // "enable-queue"
638 TOKEN_QUEUE_TYPE = 406, // "queue-type"
639 TOKEN_CAPACITY = 407, // "capacity"
640 TOKEN_DHCP_DDNS = 408, // "dhcp-ddns"
641 TOKEN_ENABLE_UPDATES = 409, // "enable-updates"
642 TOKEN_QUALIFYING_SUFFIX = 410, // "qualifying-suffix"
643 TOKEN_SERVER_IP = 411, // "server-ip"
644 TOKEN_SERVER_PORT = 412, // "server-port"
645 TOKEN_SENDER_IP = 413, // "sender-ip"
646 TOKEN_SENDER_PORT = 414, // "sender-port"
647 TOKEN_MAX_QUEUE_SIZE = 415, // "max-queue-size"
648 TOKEN_NCR_PROTOCOL = 416, // "ncr-protocol"
649 TOKEN_NCR_FORMAT = 417, // "ncr-format"
650 TOKEN_OVERRIDE_NO_UPDATE = 418, // "override-no-update"
651 TOKEN_OVERRIDE_CLIENT_UPDATE = 419, // "override-client-update"
652 TOKEN_REPLACE_CLIENT_NAME = 420, // "replace-client-name"
653 TOKEN_GENERATED_PREFIX = 421, // "generated-prefix"
654 TOKEN_TCP = 422, // "tcp"
655 TOKEN_JSON = 423, // "JSON"
656 TOKEN_WHEN_PRESENT = 424, // "when-present"
657 TOKEN_NEVER = 425, // "never"
658 TOKEN_ALWAYS = 426, // "always"
659 TOKEN_WHEN_NOT_PRESENT = 427, // "when-not-present"
660 TOKEN_HOSTNAME_CHAR_SET = 428, // "hostname-char-set"
661 TOKEN_HOSTNAME_CHAR_REPLACEMENT = 429, // "hostname-char-replacement"
662 TOKEN_IP_RESERVATIONS_UNIQUE = 430, // "ip-reservations-unique"
663 TOKEN_LOGGERS = 431, // "loggers"
664 TOKEN_OUTPUT_OPTIONS = 432, // "output_options"
665 TOKEN_OUTPUT = 433, // "output"
666 TOKEN_DEBUGLEVEL = 434, // "debuglevel"
667 TOKEN_SEVERITY = 435, // "severity"
668 TOKEN_FLUSH = 436, // "flush"
669 TOKEN_MAXSIZE = 437, // "maxsize"
670 TOKEN_MAXVER = 438, // "maxver"
671 TOKEN_PATTERN = 439, // "pattern"
672 TOKEN_COMPATIBILITY = 440, // "compatibility"
673 TOKEN_LENIENT_OPTION_PARSING = 441, // "lenient-option-parsing"
674 TOKEN_TOPLEVEL_JSON = 442, // TOPLEVEL_JSON
675 TOKEN_TOPLEVEL_DHCP4 = 443, // TOPLEVEL_DHCP4
676 TOKEN_SUB_DHCP4 = 444, // SUB_DHCP4
677 TOKEN_SUB_INTERFACES4 = 445, // SUB_INTERFACES4
678 TOKEN_SUB_SUBNET4 = 446, // SUB_SUBNET4
679 TOKEN_SUB_POOL4 = 447, // SUB_POOL4
680 TOKEN_SUB_RESERVATION = 448, // SUB_RESERVATION
681 TOKEN_SUB_OPTION_DEFS = 449, // SUB_OPTION_DEFS
682 TOKEN_SUB_OPTION_DEF = 450, // SUB_OPTION_DEF
683 TOKEN_SUB_OPTION_DATA = 451, // SUB_OPTION_DATA
684 TOKEN_SUB_HOOKS_LIBRARY = 452, // SUB_HOOKS_LIBRARY
685 TOKEN_SUB_DHCP_DDNS = 453, // SUB_DHCP_DDNS
686 TOKEN_SUB_CONFIG_CONTROL = 454, // SUB_CONFIG_CONTROL
687 TOKEN_STRING = 455, // "constant string"
688 TOKEN_INTEGER = 456, // "integer"
689 TOKEN_FLOAT = 457, // "floating point"
690 TOKEN_BOOLEAN = 458 // "boolean"
691 };
694 };
695
698
701
704 {
706 {
707 YYNTOKENS = 204,
708 S_YYEMPTY = -2,
709 S_YYEOF = 0, // "end of file"
710 S_YYerror = 1, // error
711 S_YYUNDEF = 2, // "invalid token"
712 S_COMMA = 3, // ","
713 S_COLON = 4, // ":"
714 S_LSQUARE_BRACKET = 5, // "["
715 S_RSQUARE_BRACKET = 6, // "]"
716 S_LCURLY_BRACKET = 7, // "{"
717 S_RCURLY_BRACKET = 8, // "}"
718 S_NULL_TYPE = 9, // "null"
719 S_DHCP4 = 10, // "Dhcp4"
720 S_CONFIG_CONTROL = 11, // "config-control"
721 S_CONFIG_DATABASES = 12, // "config-databases"
722 S_CONFIG_FETCH_WAIT_TIME = 13, // "config-fetch-wait-time"
723 S_INTERFACES_CONFIG = 14, // "interfaces-config"
724 S_INTERFACES = 15, // "interfaces"
725 S_DHCP_SOCKET_TYPE = 16, // "dhcp-socket-type"
726 S_RAW = 17, // "raw"
727 S_UDP = 18, // "udp"
728 S_OUTBOUND_INTERFACE = 19, // "outbound-interface"
729 S_SAME_AS_INBOUND = 20, // "same-as-inbound"
730 S_USE_ROUTING = 21, // "use-routing"
731 S_RE_DETECT = 22, // "re-detect"
732 S_SANITY_CHECKS = 23, // "sanity-checks"
733 S_LEASE_CHECKS = 24, // "lease-checks"
734 S_ECHO_CLIENT_ID = 25, // "echo-client-id"
735 S_MATCH_CLIENT_ID = 26, // "match-client-id"
736 S_AUTHORITATIVE = 27, // "authoritative"
737 S_NEXT_SERVER = 28, // "next-server"
738 S_SERVER_HOSTNAME = 29, // "server-hostname"
739 S_BOOT_FILE_NAME = 30, // "boot-file-name"
740 S_LEASE_DATABASE = 31, // "lease-database"
741 S_HOSTS_DATABASE = 32, // "hosts-database"
742 S_HOSTS_DATABASES = 33, // "hosts-databases"
743 S_TYPE = 34, // "type"
744 S_MEMFILE = 35, // "memfile"
745 S_MYSQL = 36, // "mysql"
746 S_POSTGRESQL = 37, // "postgresql"
747 S_CQL = 38, // "cql"
748 S_USER = 39, // "user"
749 S_PASSWORD = 40, // "password"
750 S_HOST = 41, // "host"
751 S_PORT = 42, // "port"
752 S_PERSIST = 43, // "persist"
753 S_LFC_INTERVAL = 44, // "lfc-interval"
754 S_READONLY = 45, // "readonly"
755 S_CONNECT_TIMEOUT = 46, // "connect-timeout"
756 S_CONTACT_POINTS = 47, // "contact-points"
757 S_KEYSPACE = 48, // "keyspace"
758 S_CONSISTENCY = 49, // "consistency"
759 S_SERIAL_CONSISTENCY = 50, // "serial-consistency"
760 S_MAX_RECONNECT_TRIES = 51, // "max-reconnect-tries"
761 S_RECONNECT_WAIT_TIME = 52, // "reconnect-wait-time"
762 S_ON_FAIL = 53, // "on-fail"
763 S_STOP_RETRY_EXIT = 54, // "stop-retry-exit"
764 S_SERVE_RETRY_EXIT = 55, // "serve-retry-exit"
765 S_SERVE_RETRY_CONTINUE = 56, // "serve-retry-continue"
766 S_REQUEST_TIMEOUT = 57, // "request-timeout"
767 S_TCP_KEEPALIVE = 58, // "tcp-keepalive"
768 S_TCP_NODELAY = 59, // "tcp-nodelay"
769 S_MAX_ROW_ERRORS = 60, // "max-row-errors"
770 S_VALID_LIFETIME = 61, // "valid-lifetime"
771 S_MIN_VALID_LIFETIME = 62, // "min-valid-lifetime"
772 S_MAX_VALID_LIFETIME = 63, // "max-valid-lifetime"
773 S_RENEW_TIMER = 64, // "renew-timer"
774 S_REBIND_TIMER = 65, // "rebind-timer"
775 S_CALCULATE_TEE_TIMES = 66, // "calculate-tee-times"
776 S_T1_PERCENT = 67, // "t1-percent"
777 S_T2_PERCENT = 68, // "t2-percent"
778 S_CACHE_THRESHOLD = 69, // "cache-threshold"
779 S_CACHE_MAX_AGE = 70, // "cache-max-age"
780 S_DECLINE_PROBATION_PERIOD = 71, // "decline-probation-period"
781 S_SERVER_TAG = 72, // "server-tag"
782 S_STATISTIC_DEFAULT_SAMPLE_COUNT = 73, // "statistic-default-sample-count"
783 S_STATISTIC_DEFAULT_SAMPLE_AGE = 74, // "statistic-default-sample-age"
784 S_DDNS_SEND_UPDATES = 75, // "ddns-send-updates"
785 S_DDNS_OVERRIDE_NO_UPDATE = 76, // "ddns-override-no-update"
786 S_DDNS_OVERRIDE_CLIENT_UPDATE = 77, // "ddns-override-client-update"
787 S_DDNS_REPLACE_CLIENT_NAME = 78, // "ddns-replace-client-name"
788 S_DDNS_GENERATED_PREFIX = 79, // "ddns-generated-prefix"
789 S_DDNS_QUALIFYING_SUFFIX = 80, // "ddns-qualifying-suffix"
790 S_DDNS_UPDATE_ON_RENEW = 81, // "ddns-update-on-renew"
791 S_DDNS_USE_CONFLICT_RESOLUTION = 82, // "ddns-use-conflict-resolution"
792 S_STORE_EXTENDED_INFO = 83, // "store-extended-info"
793 S_SUBNET4 = 84, // "subnet4"
794 S_SUBNET_4O6_INTERFACE = 85, // "4o6-interface"
795 S_SUBNET_4O6_INTERFACE_ID = 86, // "4o6-interface-id"
796 S_SUBNET_4O6_SUBNET = 87, // "4o6-subnet"
797 S_OPTION_DEF = 88, // "option-def"
798 S_OPTION_DATA = 89, // "option-data"
799 S_NAME = 90, // "name"
800 S_DATA = 91, // "data"
801 S_CODE = 92, // "code"
802 S_SPACE = 93, // "space"
803 S_CSV_FORMAT = 94, // "csv-format"
804 S_ALWAYS_SEND = 95, // "always-send"
805 S_RECORD_TYPES = 96, // "record-types"
806 S_ENCAPSULATE = 97, // "encapsulate"
807 S_ARRAY = 98, // "array"
808 S_SHARED_NETWORKS = 99, // "shared-networks"
809 S_POOLS = 100, // "pools"
810 S_POOL = 101, // "pool"
811 S_USER_CONTEXT = 102, // "user-context"
812 S_COMMENT = 103, // "comment"
813 S_SUBNET = 104, // "subnet"
814 S_INTERFACE = 105, // "interface"
815 S_ID = 106, // "id"
816 S_RESERVATION_MODE = 107, // "reservation-mode"
817 S_DISABLED = 108, // "disabled"
818 S_OUT_OF_POOL = 109, // "out-of-pool"
819 S_GLOBAL = 110, // "global"
820 S_ALL = 111, // "all"
821 S_RESERVATIONS_GLOBAL = 112, // "reservations-global"
822 S_RESERVATIONS_IN_SUBNET = 113, // "reservations-in-subnet"
823 S_RESERVATIONS_OUT_OF_POOL = 114, // "reservations-out-of-pool"
824 S_HOST_RESERVATION_IDENTIFIERS = 115, // "host-reservation-identifiers"
825 S_CLIENT_CLASSES = 116, // "client-classes"
826 S_REQUIRE_CLIENT_CLASSES = 117, // "require-client-classes"
827 S_TEST = 118, // "test"
828 S_ONLY_IF_REQUIRED = 119, // "only-if-required"
829 S_CLIENT_CLASS = 120, // "client-class"
830 S_RESERVATIONS = 121, // "reservations"
831 S_DUID = 122, // "duid"
832 S_HW_ADDRESS = 123, // "hw-address"
833 S_CIRCUIT_ID = 124, // "circuit-id"
834 S_CLIENT_ID = 125, // "client-id"
835 S_HOSTNAME = 126, // "hostname"
836 S_FLEX_ID = 127, // "flex-id"
837 S_RELAY = 128, // "relay"
838 S_IP_ADDRESS = 129, // "ip-address"
839 S_IP_ADDRESSES = 130, // "ip-addresses"
840 S_HOOKS_LIBRARIES = 131, // "hooks-libraries"
841 S_LIBRARY = 132, // "library"
842 S_PARAMETERS = 133, // "parameters"
843 S_EXPIRED_LEASES_PROCESSING = 134, // "expired-leases-processing"
844 S_RECLAIM_TIMER_WAIT_TIME = 135, // "reclaim-timer-wait-time"
845 S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 136, // "flush-reclaimed-timer-wait-time"
846 S_HOLD_RECLAIMED_TIME = 137, // "hold-reclaimed-time"
847 S_MAX_RECLAIM_LEASES = 138, // "max-reclaim-leases"
848 S_MAX_RECLAIM_TIME = 139, // "max-reclaim-time"
849 S_UNWARNED_RECLAIM_CYCLES = 140, // "unwarned-reclaim-cycles"
850 S_DHCP4O6_PORT = 141, // "dhcp4o6-port"
851 S_DHCP_MULTI_THREADING = 142, // "multi-threading"
852 S_ENABLE_MULTI_THREADING = 143, // "enable-multi-threading"
853 S_THREAD_POOL_SIZE = 144, // "thread-pool-size"
854 S_PACKET_QUEUE_SIZE = 145, // "packet-queue-size"
855 S_CONTROL_SOCKET = 146, // "control-socket"
856 S_SOCKET_TYPE = 147, // "socket-type"
857 S_SOCKET_NAME = 148, // "socket-name"
858 S_DHCP_QUEUE_CONTROL = 149, // "dhcp-queue-control"
859 S_ENABLE_QUEUE = 150, // "enable-queue"
860 S_QUEUE_TYPE = 151, // "queue-type"
861 S_CAPACITY = 152, // "capacity"
862 S_DHCP_DDNS = 153, // "dhcp-ddns"
863 S_ENABLE_UPDATES = 154, // "enable-updates"
864 S_QUALIFYING_SUFFIX = 155, // "qualifying-suffix"
865 S_SERVER_IP = 156, // "server-ip"
866 S_SERVER_PORT = 157, // "server-port"
867 S_SENDER_IP = 158, // "sender-ip"
868 S_SENDER_PORT = 159, // "sender-port"
869 S_MAX_QUEUE_SIZE = 160, // "max-queue-size"
870 S_NCR_PROTOCOL = 161, // "ncr-protocol"
871 S_NCR_FORMAT = 162, // "ncr-format"
872 S_OVERRIDE_NO_UPDATE = 163, // "override-no-update"
873 S_OVERRIDE_CLIENT_UPDATE = 164, // "override-client-update"
874 S_REPLACE_CLIENT_NAME = 165, // "replace-client-name"
875 S_GENERATED_PREFIX = 166, // "generated-prefix"
876 S_TCP = 167, // "tcp"
877 S_JSON = 168, // "JSON"
878 S_WHEN_PRESENT = 169, // "when-present"
879 S_NEVER = 170, // "never"
880 S_ALWAYS = 171, // "always"
881 S_WHEN_NOT_PRESENT = 172, // "when-not-present"
882 S_HOSTNAME_CHAR_SET = 173, // "hostname-char-set"
883 S_HOSTNAME_CHAR_REPLACEMENT = 174, // "hostname-char-replacement"
884 S_IP_RESERVATIONS_UNIQUE = 175, // "ip-reservations-unique"
885 S_LOGGERS = 176, // "loggers"
886 S_OUTPUT_OPTIONS = 177, // "output_options"
887 S_OUTPUT = 178, // "output"
888 S_DEBUGLEVEL = 179, // "debuglevel"
889 S_SEVERITY = 180, // "severity"
890 S_FLUSH = 181, // "flush"
891 S_MAXSIZE = 182, // "maxsize"
892 S_MAXVER = 183, // "maxver"
893 S_PATTERN = 184, // "pattern"
894 S_COMPATIBILITY = 185, // "compatibility"
895 S_LENIENT_OPTION_PARSING = 186, // "lenient-option-parsing"
896 S_TOPLEVEL_JSON = 187, // TOPLEVEL_JSON
897 S_TOPLEVEL_DHCP4 = 188, // TOPLEVEL_DHCP4
898 S_SUB_DHCP4 = 189, // SUB_DHCP4
899 S_SUB_INTERFACES4 = 190, // SUB_INTERFACES4
900 S_SUB_SUBNET4 = 191, // SUB_SUBNET4
901 S_SUB_POOL4 = 192, // SUB_POOL4
902 S_SUB_RESERVATION = 193, // SUB_RESERVATION
903 S_SUB_OPTION_DEFS = 194, // SUB_OPTION_DEFS
904 S_SUB_OPTION_DEF = 195, // SUB_OPTION_DEF
905 S_SUB_OPTION_DATA = 196, // SUB_OPTION_DATA
906 S_SUB_HOOKS_LIBRARY = 197, // SUB_HOOKS_LIBRARY
907 S_SUB_DHCP_DDNS = 198, // SUB_DHCP_DDNS
908 S_SUB_CONFIG_CONTROL = 199, // SUB_CONFIG_CONTROL
909 S_STRING = 200, // "constant string"
910 S_INTEGER = 201, // "integer"
911 S_FLOAT = 202, // "floating point"
912 S_BOOLEAN = 203, // "boolean"
913 S_YYACCEPT = 204, // $accept
914 S_start = 205, // start
915 S_206_1 = 206, // $@1
916 S_207_2 = 207, // $@2
917 S_208_3 = 208, // $@3
918 S_209_4 = 209, // $@4
919 S_210_5 = 210, // $@5
920 S_211_6 = 211, // $@6
921 S_212_7 = 212, // $@7
922 S_213_8 = 213, // $@8
923 S_214_9 = 214, // $@9
924 S_215_10 = 215, // $@10
925 S_216_11 = 216, // $@11
926 S_217_12 = 217, // $@12
927 S_218_13 = 218, // $@13
928 S_value = 219, // value
929 S_sub_json = 220, // sub_json
930 S_map2 = 221, // map2
931 S_222_14 = 222, // $@14
932 S_map_value = 223, // map_value
933 S_map_content = 224, // map_content
934 S_not_empty_map = 225, // not_empty_map
935 S_list_generic = 226, // list_generic
936 S_227_15 = 227, // $@15
937 S_list_content = 228, // list_content
938 S_not_empty_list = 229, // not_empty_list
939 S_list_strings = 230, // list_strings
940 S_231_16 = 231, // $@16
941 S_list_strings_content = 232, // list_strings_content
942 S_not_empty_list_strings = 233, // not_empty_list_strings
943 S_unknown_map_entry = 234, // unknown_map_entry
944 S_syntax_map = 235, // syntax_map
945 S_236_17 = 236, // $@17
946 S_global_object = 237, // global_object
947 S_238_18 = 238, // $@18
948 S_sub_dhcp4 = 239, // sub_dhcp4
949 S_240_19 = 240, // $@19
950 S_global_params = 241, // global_params
951 S_global_param = 242, // global_param
952 S_valid_lifetime = 243, // valid_lifetime
953 S_min_valid_lifetime = 244, // min_valid_lifetime
954 S_max_valid_lifetime = 245, // max_valid_lifetime
955 S_renew_timer = 246, // renew_timer
956 S_rebind_timer = 247, // rebind_timer
957 S_calculate_tee_times = 248, // calculate_tee_times
958 S_t1_percent = 249, // t1_percent
959 S_t2_percent = 250, // t2_percent
960 S_cache_threshold = 251, // cache_threshold
961 S_cache_max_age = 252, // cache_max_age
962 S_decline_probation_period = 253, // decline_probation_period
963 S_server_tag = 254, // server_tag
964 S_255_20 = 255, // $@20
965 S_echo_client_id = 256, // echo_client_id
966 S_match_client_id = 257, // match_client_id
967 S_authoritative = 258, // authoritative
968 S_ddns_send_updates = 259, // ddns_send_updates
969 S_ddns_override_no_update = 260, // ddns_override_no_update
970 S_ddns_override_client_update = 261, // ddns_override_client_update
971 S_ddns_replace_client_name = 262, // ddns_replace_client_name
972 S_263_21 = 263, // $@21
973 S_ddns_replace_client_name_value = 264, // ddns_replace_client_name_value
974 S_ddns_generated_prefix = 265, // ddns_generated_prefix
975 S_266_22 = 266, // $@22
976 S_ddns_qualifying_suffix = 267, // ddns_qualifying_suffix
977 S_268_23 = 268, // $@23
978 S_ddns_update_on_renew = 269, // ddns_update_on_renew
979 S_ddns_use_conflict_resolution = 270, // ddns_use_conflict_resolution
980 S_hostname_char_set = 271, // hostname_char_set
981 S_272_24 = 272, // $@24
982 S_hostname_char_replacement = 273, // hostname_char_replacement
983 S_274_25 = 274, // $@25
984 S_store_extended_info = 275, // store_extended_info
985 S_statistic_default_sample_count = 276, // statistic_default_sample_count
986 S_statistic_default_sample_age = 277, // statistic_default_sample_age
987 S_ip_reservations_unique = 278, // ip_reservations_unique
988 S_interfaces_config = 279, // interfaces_config
989 S_280_26 = 280, // $@26
990 S_interfaces_config_params = 281, // interfaces_config_params
991 S_interfaces_config_param = 282, // interfaces_config_param
992 S_sub_interfaces4 = 283, // sub_interfaces4
993 S_284_27 = 284, // $@27
994 S_interfaces_list = 285, // interfaces_list
995 S_286_28 = 286, // $@28
996 S_dhcp_socket_type = 287, // dhcp_socket_type
997 S_288_29 = 288, // $@29
998 S_socket_type = 289, // socket_type
999 S_outbound_interface = 290, // outbound_interface
1000 S_291_30 = 291, // $@30
1001 S_outbound_interface_value = 292, // outbound_interface_value
1002 S_re_detect = 293, // re_detect
1003 S_lease_database = 294, // lease_database
1004 S_295_31 = 295, // $@31
1005 S_sanity_checks = 296, // sanity_checks
1006 S_297_32 = 297, // $@32
1007 S_sanity_checks_params = 298, // sanity_checks_params
1008 S_sanity_checks_param = 299, // sanity_checks_param
1009 S_lease_checks = 300, // lease_checks
1010 S_301_33 = 301, // $@33
1011 S_hosts_database = 302, // hosts_database
1012 S_303_34 = 303, // $@34
1013 S_hosts_databases = 304, // hosts_databases
1014 S_305_35 = 305, // $@35
1015 S_database_list = 306, // database_list
1016 S_not_empty_database_list = 307, // not_empty_database_list
1017 S_database = 308, // database
1018 S_309_36 = 309, // $@36
1019 S_database_map_params = 310, // database_map_params
1020 S_database_map_param = 311, // database_map_param
1021 S_database_type = 312, // database_type
1022 S_313_37 = 313, // $@37
1023 S_db_type = 314, // db_type
1024 S_user = 315, // user
1025 S_316_38 = 316, // $@38
1026 S_password = 317, // password
1027 S_318_39 = 318, // $@39
1028 S_host = 319, // host
1029 S_320_40 = 320, // $@40
1030 S_port = 321, // port
1031 S_name = 322, // name
1032 S_323_41 = 323, // $@41
1033 S_persist = 324, // persist
1034 S_lfc_interval = 325, // lfc_interval
1035 S_readonly = 326, // readonly
1036 S_connect_timeout = 327, // connect_timeout
1037 S_request_timeout = 328, // request_timeout
1038 S_tcp_keepalive = 329, // tcp_keepalive
1039 S_tcp_nodelay = 330, // tcp_nodelay
1040 S_contact_points = 331, // contact_points
1041 S_332_42 = 332, // $@42
1042 S_keyspace = 333, // keyspace
1043 S_334_43 = 334, // $@43
1044 S_consistency = 335, // consistency
1045 S_336_44 = 336, // $@44
1046 S_serial_consistency = 337, // serial_consistency
1047 S_338_45 = 338, // $@45
1048 S_max_reconnect_tries = 339, // max_reconnect_tries
1049 S_reconnect_wait_time = 340, // reconnect_wait_time
1050 S_on_fail = 341, // on_fail
1051 S_342_46 = 342, // $@46
1052 S_on_fail_mode = 343, // on_fail_mode
1053 S_max_row_errors = 344, // max_row_errors
1054 S_host_reservation_identifiers = 345, // host_reservation_identifiers
1055 S_346_47 = 346, // $@47
1056 S_host_reservation_identifiers_list = 347, // host_reservation_identifiers_list
1057 S_host_reservation_identifier = 348, // host_reservation_identifier
1058 S_duid_id = 349, // duid_id
1059 S_hw_address_id = 350, // hw_address_id
1060 S_circuit_id = 351, // circuit_id
1061 S_client_id = 352, // client_id
1062 S_flex_id = 353, // flex_id
1063 S_dhcp_multi_threading = 354, // dhcp_multi_threading
1064 S_355_48 = 355, // $@48
1065 S_multi_threading_params = 356, // multi_threading_params
1066 S_multi_threading_param = 357, // multi_threading_param
1067 S_enable_multi_threading = 358, // enable_multi_threading
1068 S_thread_pool_size = 359, // thread_pool_size
1069 S_packet_queue_size = 360, // packet_queue_size
1070 S_hooks_libraries = 361, // hooks_libraries
1071 S_362_49 = 362, // $@49
1072 S_hooks_libraries_list = 363, // hooks_libraries_list
1073 S_not_empty_hooks_libraries_list = 364, // not_empty_hooks_libraries_list
1074 S_hooks_library = 365, // hooks_library
1075 S_366_50 = 366, // $@50
1076 S_sub_hooks_library = 367, // sub_hooks_library
1077 S_368_51 = 368, // $@51
1078 S_hooks_params = 369, // hooks_params
1079 S_hooks_param = 370, // hooks_param
1080 S_library = 371, // library
1081 S_372_52 = 372, // $@52
1082 S_parameters = 373, // parameters
1083 S_374_53 = 374, // $@53
1084 S_expired_leases_processing = 375, // expired_leases_processing
1085 S_376_54 = 376, // $@54
1086 S_expired_leases_params = 377, // expired_leases_params
1087 S_expired_leases_param = 378, // expired_leases_param
1088 S_reclaim_timer_wait_time = 379, // reclaim_timer_wait_time
1089 S_flush_reclaimed_timer_wait_time = 380, // flush_reclaimed_timer_wait_time
1090 S_hold_reclaimed_time = 381, // hold_reclaimed_time
1091 S_max_reclaim_leases = 382, // max_reclaim_leases
1092 S_max_reclaim_time = 383, // max_reclaim_time
1093 S_unwarned_reclaim_cycles = 384, // unwarned_reclaim_cycles
1094 S_subnet4_list = 385, // subnet4_list
1095 S_386_55 = 386, // $@55
1096 S_subnet4_list_content = 387, // subnet4_list_content
1097 S_not_empty_subnet4_list = 388, // not_empty_subnet4_list
1098 S_subnet4 = 389, // subnet4
1099 S_390_56 = 390, // $@56
1100 S_sub_subnet4 = 391, // sub_subnet4
1101 S_392_57 = 392, // $@57
1102 S_subnet4_params = 393, // subnet4_params
1103 S_subnet4_param = 394, // subnet4_param
1104 S_subnet = 395, // subnet
1105 S_396_58 = 396, // $@58
1106 S_subnet_4o6_interface = 397, // subnet_4o6_interface
1107 S_398_59 = 398, // $@59
1108 S_subnet_4o6_interface_id = 399, // subnet_4o6_interface_id
1109 S_400_60 = 400, // $@60
1110 S_subnet_4o6_subnet = 401, // subnet_4o6_subnet
1111 S_402_61 = 402, // $@61
1112 S_interface = 403, // interface
1113 S_404_62 = 404, // $@62
1114 S_client_class = 405, // client_class
1115 S_406_63 = 406, // $@63
1116 S_require_client_classes = 407, // require_client_classes
1117 S_408_64 = 408, // $@64
1118 S_reservations_global = 409, // reservations_global
1119 S_reservations_in_subnet = 410, // reservations_in_subnet
1120 S_reservations_out_of_pool = 411, // reservations_out_of_pool
1121 S_reservation_mode = 412, // reservation_mode
1122 S_413_65 = 413, // $@65
1123 S_hr_mode = 414, // hr_mode
1124 S_id = 415, // id
1125 S_shared_networks = 416, // shared_networks
1126 S_417_66 = 417, // $@66
1127 S_shared_networks_content = 418, // shared_networks_content
1128 S_shared_networks_list = 419, // shared_networks_list
1129 S_shared_network = 420, // shared_network
1130 S_421_67 = 421, // $@67
1131 S_shared_network_params = 422, // shared_network_params
1132 S_shared_network_param = 423, // shared_network_param
1133 S_option_def_list = 424, // option_def_list
1134 S_425_68 = 425, // $@68
1135 S_sub_option_def_list = 426, // sub_option_def_list
1136 S_427_69 = 427, // $@69
1137 S_option_def_list_content = 428, // option_def_list_content
1138 S_not_empty_option_def_list = 429, // not_empty_option_def_list
1139 S_option_def_entry = 430, // option_def_entry
1140 S_431_70 = 431, // $@70
1141 S_sub_option_def = 432, // sub_option_def
1142 S_433_71 = 433, // $@71
1143 S_option_def_params = 434, // option_def_params
1144 S_not_empty_option_def_params = 435, // not_empty_option_def_params
1145 S_option_def_param = 436, // option_def_param
1146 S_option_def_name = 437, // option_def_name
1147 S_code = 438, // code
1148 S_option_def_code = 439, // option_def_code
1149 S_option_def_type = 440, // option_def_type
1150 S_441_72 = 441, // $@72
1151 S_option_def_record_types = 442, // option_def_record_types
1152 S_443_73 = 443, // $@73
1153 S_space = 444, // space
1154 S_445_74 = 445, // $@74
1155 S_option_def_space = 446, // option_def_space
1156 S_option_def_encapsulate = 447, // option_def_encapsulate
1157 S_448_75 = 448, // $@75
1158 S_option_def_array = 449, // option_def_array
1159 S_option_data_list = 450, // option_data_list
1160 S_451_76 = 451, // $@76
1161 S_option_data_list_content = 452, // option_data_list_content
1162 S_not_empty_option_data_list = 453, // not_empty_option_data_list
1163 S_option_data_entry = 454, // option_data_entry
1164 S_455_77 = 455, // $@77
1165 S_sub_option_data = 456, // sub_option_data
1166 S_457_78 = 457, // $@78
1167 S_option_data_params = 458, // option_data_params
1168 S_not_empty_option_data_params = 459, // not_empty_option_data_params
1169 S_option_data_param = 460, // option_data_param
1170 S_option_data_name = 461, // option_data_name
1171 S_option_data_data = 462, // option_data_data
1172 S_463_79 = 463, // $@79
1173 S_option_data_code = 464, // option_data_code
1174 S_option_data_space = 465, // option_data_space
1175 S_option_data_csv_format = 466, // option_data_csv_format
1176 S_option_data_always_send = 467, // option_data_always_send
1177 S_pools_list = 468, // pools_list
1178 S_469_80 = 469, // $@80
1179 S_pools_list_content = 470, // pools_list_content
1180 S_not_empty_pools_list = 471, // not_empty_pools_list
1181 S_pool_list_entry = 472, // pool_list_entry
1182 S_473_81 = 473, // $@81
1183 S_sub_pool4 = 474, // sub_pool4
1184 S_475_82 = 475, // $@82
1185 S_pool_params = 476, // pool_params
1186 S_pool_param = 477, // pool_param
1187 S_pool_entry = 478, // pool_entry
1188 S_479_83 = 479, // $@83
1189 S_user_context = 480, // user_context
1190 S_481_84 = 481, // $@84
1191 S_comment = 482, // comment
1192 S_483_85 = 483, // $@85
1193 S_reservations = 484, // reservations
1194 S_485_86 = 485, // $@86
1195 S_reservations_list = 486, // reservations_list
1196 S_not_empty_reservations_list = 487, // not_empty_reservations_list
1197 S_reservation = 488, // reservation
1198 S_489_87 = 489, // $@87
1199 S_sub_reservation = 490, // sub_reservation
1200 S_491_88 = 491, // $@88
1201 S_reservation_params = 492, // reservation_params
1202 S_not_empty_reservation_params = 493, // not_empty_reservation_params
1203 S_reservation_param = 494, // reservation_param
1204 S_next_server = 495, // next_server
1205 S_496_89 = 496, // $@89
1206 S_server_hostname = 497, // server_hostname
1207 S_498_90 = 498, // $@90
1208 S_boot_file_name = 499, // boot_file_name
1209 S_500_91 = 500, // $@91
1210 S_ip_address = 501, // ip_address
1211 S_502_92 = 502, // $@92
1212 S_ip_addresses = 503, // ip_addresses
1213 S_504_93 = 504, // $@93
1214 S_duid = 505, // duid
1215 S_506_94 = 506, // $@94
1216 S_hw_address = 507, // hw_address
1217 S_508_95 = 508, // $@95
1218 S_client_id_value = 509, // client_id_value
1219 S_510_96 = 510, // $@96
1220 S_circuit_id_value = 511, // circuit_id_value
1221 S_512_97 = 512, // $@97
1222 S_flex_id_value = 513, // flex_id_value
1223 S_514_98 = 514, // $@98
1224 S_hostname = 515, // hostname
1225 S_516_99 = 516, // $@99
1226 S_reservation_client_classes = 517, // reservation_client_classes
1227 S_518_100 = 518, // $@100
1228 S_relay = 519, // relay
1229 S_520_101 = 520, // $@101
1230 S_relay_map = 521, // relay_map
1231 S_client_classes = 522, // client_classes
1232 S_523_102 = 523, // $@102
1233 S_client_classes_list = 524, // client_classes_list
1234 S_client_class_entry = 525, // client_class_entry
1235 S_526_103 = 526, // $@103
1236 S_client_class_params = 527, // client_class_params
1237 S_not_empty_client_class_params = 528, // not_empty_client_class_params
1238 S_client_class_param = 529, // client_class_param
1239 S_client_class_name = 530, // client_class_name
1240 S_client_class_test = 531, // client_class_test
1241 S_532_104 = 532, // $@104
1242 S_only_if_required = 533, // only_if_required
1243 S_dhcp4o6_port = 534, // dhcp4o6_port
1244 S_control_socket = 535, // control_socket
1245 S_536_105 = 536, // $@105
1246 S_control_socket_params = 537, // control_socket_params
1247 S_control_socket_param = 538, // control_socket_param
1248 S_control_socket_type = 539, // control_socket_type
1249 S_540_106 = 540, // $@106
1250 S_control_socket_name = 541, // control_socket_name
1251 S_542_107 = 542, // $@107
1252 S_dhcp_queue_control = 543, // dhcp_queue_control
1253 S_544_108 = 544, // $@108
1254 S_queue_control_params = 545, // queue_control_params
1255 S_queue_control_param = 546, // queue_control_param
1256 S_enable_queue = 547, // enable_queue
1257 S_queue_type = 548, // queue_type
1258 S_549_109 = 549, // $@109
1259 S_capacity = 550, // capacity
1260 S_arbitrary_map_entry = 551, // arbitrary_map_entry
1261 S_552_110 = 552, // $@110
1262 S_dhcp_ddns = 553, // dhcp_ddns
1263 S_554_111 = 554, // $@111
1264 S_sub_dhcp_ddns = 555, // sub_dhcp_ddns
1265 S_556_112 = 556, // $@112
1266 S_dhcp_ddns_params = 557, // dhcp_ddns_params
1267 S_dhcp_ddns_param = 558, // dhcp_ddns_param
1268 S_enable_updates = 559, // enable_updates
1269 S_server_ip = 560, // server_ip
1270 S_561_113 = 561, // $@113
1271 S_server_port = 562, // server_port
1272 S_sender_ip = 563, // sender_ip
1273 S_564_114 = 564, // $@114
1274 S_sender_port = 565, // sender_port
1275 S_max_queue_size = 566, // max_queue_size
1276 S_ncr_protocol = 567, // ncr_protocol
1277 S_568_115 = 568, // $@115
1278 S_ncr_protocol_value = 569, // ncr_protocol_value
1279 S_ncr_format = 570, // ncr_format
1280 S_571_116 = 571, // $@116
1281 S_dep_qualifying_suffix = 572, // dep_qualifying_suffix
1282 S_573_117 = 573, // $@117
1283 S_dep_override_no_update = 574, // dep_override_no_update
1284 S_dep_override_client_update = 575, // dep_override_client_update
1285 S_dep_replace_client_name = 576, // dep_replace_client_name
1286 S_577_118 = 577, // $@118
1287 S_dep_generated_prefix = 578, // dep_generated_prefix
1288 S_579_119 = 579, // $@119
1289 S_dep_hostname_char_set = 580, // dep_hostname_char_set
1290 S_581_120 = 581, // $@120
1291 S_dep_hostname_char_replacement = 582, // dep_hostname_char_replacement
1292 S_583_121 = 583, // $@121
1293 S_config_control = 584, // config_control
1294 S_585_122 = 585, // $@122
1295 S_sub_config_control = 586, // sub_config_control
1296 S_587_123 = 587, // $@123
1297 S_config_control_params = 588, // config_control_params
1298 S_config_control_param = 589, // config_control_param
1299 S_config_databases = 590, // config_databases
1300 S_591_124 = 591, // $@124
1301 S_config_fetch_wait_time = 592, // config_fetch_wait_time
1302 S_loggers = 593, // loggers
1303 S_594_125 = 594, // $@125
1304 S_loggers_entries = 595, // loggers_entries
1305 S_logger_entry = 596, // logger_entry
1306 S_597_126 = 597, // $@126
1307 S_logger_params = 598, // logger_params
1308 S_logger_param = 599, // logger_param
1309 S_debuglevel = 600, // debuglevel
1310 S_severity = 601, // severity
1311 S_602_127 = 602, // $@127
1312 S_output_options_list = 603, // output_options_list
1313 S_604_128 = 604, // $@128
1314 S_output_options_list_content = 605, // output_options_list_content
1315 S_output_entry = 606, // output_entry
1316 S_607_129 = 607, // $@129
1317 S_output_params_list = 608, // output_params_list
1318 S_output_params = 609, // output_params
1319 S_output = 610, // output
1320 S_611_130 = 611, // $@130
1321 S_flush = 612, // flush
1322 S_maxsize = 613, // maxsize
1323 S_maxver = 614, // maxver
1324 S_pattern = 615, // pattern
1325 S_616_131 = 616, // $@131
1326 S_compatibility = 617, // compatibility
1327 S_618_132 = 618, // $@132
1328 S_compatibility_params = 619, // compatibility_params
1329 S_compatibility_param = 620, // compatibility_param
1330 S_lenient_option_parsing = 621 // lenient_option_parsing
1332 };
1333
1336
1339
1346 template <typename Base>
1347 struct basic_symbol : Base
1348 {
1350 typedef Base super_type;
1351
1354 : value ()
1355 , location ()
1356 {}
1357
1358#if 201103L <= YY_CPLUSPLUS
1360 basic_symbol (basic_symbol&& that)
1361 : Base (std::move (that))
1362 , value ()
1363 , location (std::move (that.location))
1364 {
1365 switch (this->kind ())
1366 {
1367 case symbol_kind::S_value: // value
1368 case symbol_kind::S_map_value: // map_value
1369 case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value
1370 case symbol_kind::S_socket_type: // socket_type
1371 case symbol_kind::S_outbound_interface_value: // outbound_interface_value
1372 case symbol_kind::S_db_type: // db_type
1373 case symbol_kind::S_on_fail_mode: // on_fail_mode
1374 case symbol_kind::S_hr_mode: // hr_mode
1375 case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value
1376 value.move< ElementPtr > (std::move (that.value));
1377 break;
1378
1379 case symbol_kind::S_BOOLEAN: // "boolean"
1380 value.move< bool > (std::move (that.value));
1381 break;
1382
1383 case symbol_kind::S_FLOAT: // "floating point"
1384 value.move< double > (std::move (that.value));
1385 break;
1386
1387 case symbol_kind::S_INTEGER: // "integer"
1388 value.move< int64_t > (std::move (that.value));
1389 break;
1390
1391 case symbol_kind::S_STRING: // "constant string"
1392 value.move< std::string > (std::move (that.value));
1393 break;
1394
1395 default:
1396 break;
1397 }
1398
1399 }
1400#endif
1401
1403 basic_symbol (const basic_symbol& that);
1404
1406#if 201103L <= YY_CPLUSPLUS
1407 basic_symbol (typename Base::kind_type t, location_type&& l)
1408 : Base (t)
1409 , location (std::move (l))
1410 {}
1411#else
1412 basic_symbol (typename Base::kind_type t, const location_type& l)
1413 : Base (t)
1414 , location (l)
1415 {}
1416#endif
1417
1418#if 201103L <= YY_CPLUSPLUS
1419 basic_symbol (typename Base::kind_type t, ElementPtr&& v, location_type&& l)
1420 : Base (t)
1421 , value (std::move (v))
1422 , location (std::move (l))
1423 {}
1424#else
1425 basic_symbol (typename Base::kind_type t, const ElementPtr& v, const location_type& l)
1426 : Base (t)
1427 , value (v)
1428 , location (l)
1429 {}
1430#endif
1431
1432#if 201103L <= YY_CPLUSPLUS
1433 basic_symbol (typename Base::kind_type t, bool&& v, location_type&& l)
1434 : Base (t)
1435 , value (std::move (v))
1436 , location (std::move (l))
1437 {}
1438#else
1439 basic_symbol (typename Base::kind_type t, const bool& v, const location_type& l)
1440 : Base (t)
1441 , value (v)
1442 , location (l)
1443 {}
1444#endif
1445
1446#if 201103L <= YY_CPLUSPLUS
1447 basic_symbol (typename Base::kind_type t, double&& v, location_type&& l)
1448 : Base (t)
1449 , value (std::move (v))
1450 , location (std::move (l))
1451 {}
1452#else
1453 basic_symbol (typename Base::kind_type t, const double& v, const location_type& l)
1454 : Base (t)
1455 , value (v)
1456 , location (l)
1457 {}
1458#endif
1459
1460#if 201103L <= YY_CPLUSPLUS
1461 basic_symbol (typename Base::kind_type t, int64_t&& v, location_type&& l)
1462 : Base (t)
1463 , value (std::move (v))
1464 , location (std::move (l))
1465 {}
1466#else
1467 basic_symbol (typename Base::kind_type t, const int64_t& v, const location_type& l)
1468 : Base (t)
1469 , value (v)
1470 , location (l)
1471 {}
1472#endif
1473
1474#if 201103L <= YY_CPLUSPLUS
1475 basic_symbol (typename Base::kind_type t, std::string&& v, location_type&& l)
1476 : Base (t)
1477 , value (std::move (v))
1478 , location (std::move (l))
1479 {}
1480#else
1481 basic_symbol (typename Base::kind_type t, const std::string& v, const location_type& l)
1482 : Base (t)
1483 , value (v)
1484 , location (l)
1485 {}
1486#endif
1487
1490 {
1491 clear ();
1492 }
1493
1496 {
1497 // User destructor.
1498 symbol_kind_type yykind = this->kind ();
1499 basic_symbol<Base>& yysym = *this;
1500 (void) yysym;
1501 switch (yykind)
1502 {
1503 default:
1504 break;
1505 }
1506
1507 // Value type destructor.
1508switch (yykind)
1509 {
1510 case symbol_kind::S_value: // value
1511 case symbol_kind::S_map_value: // map_value
1512 case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value
1513 case symbol_kind::S_socket_type: // socket_type
1514 case symbol_kind::S_outbound_interface_value: // outbound_interface_value
1515 case symbol_kind::S_db_type: // db_type
1516 case symbol_kind::S_on_fail_mode: // on_fail_mode
1517 case symbol_kind::S_hr_mode: // hr_mode
1518 case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value
1519 value.template destroy< ElementPtr > ();
1520 break;
1521
1522 case symbol_kind::S_BOOLEAN: // "boolean"
1523 value.template destroy< bool > ();
1524 break;
1525
1526 case symbol_kind::S_FLOAT: // "floating point"
1527 value.template destroy< double > ();
1528 break;
1529
1530 case symbol_kind::S_INTEGER: // "integer"
1531 value.template destroy< int64_t > ();
1532 break;
1533
1534 case symbol_kind::S_STRING: // "constant string"
1535 value.template destroy< std::string > ();
1536 break;
1537
1538 default:
1539 break;
1540 }
1541
1542 Base::clear ();
1543 }
1544
1546 std::string name () const YY_NOEXCEPT
1547 {
1548 return Dhcp4Parser::symbol_name (this->kind ());
1549 }
1550
1552 symbol_kind_type type_get () const YY_NOEXCEPT;
1553
1555 bool empty () const YY_NOEXCEPT;
1556
1558 void move (basic_symbol& s);
1559
1562
1565
1566 private:
1567#if YY_CPLUSPLUS < 201103L
1569 basic_symbol& operator= (const basic_symbol& that);
1570#endif
1571 };
1572
1574 struct by_kind
1575 {
1577 by_kind ();
1578
1579#if 201103L <= YY_CPLUSPLUS
1581 by_kind (by_kind&& that);
1582#endif
1583
1585 by_kind (const by_kind& that);
1586
1589
1591 by_kind (kind_type t);
1592
1594 void clear () YY_NOEXCEPT;
1595
1597 void move (by_kind& that);
1598
1601 symbol_kind_type kind () const YY_NOEXCEPT;
1602
1604 symbol_kind_type type_get () const YY_NOEXCEPT;
1605
1609 };
1610
1613
1616 {
1619
1622
1624#if 201103L <= YY_CPLUSPLUS
1625 symbol_type (int tok, location_type l)
1626 : super_type(token_type (tok), std::move (l))
1627#else
1628 symbol_type (int tok, const location_type& l)
1629 : super_type(token_type (tok), l)
1630#endif
1631 {
1634 }
1635#if 201103L <= YY_CPLUSPLUS
1636 symbol_type (int tok, bool v, location_type l)
1637 : super_type(token_type (tok), std::move (v), std::move (l))
1638#else
1639 symbol_type (int tok, const bool& v, const location_type& l)
1640 : super_type(token_type (tok), v, l)
1641#endif
1642 {
1644 }
1645#if 201103L <= YY_CPLUSPLUS
1646 symbol_type (int tok, double v, location_type l)
1647 : super_type(token_type (tok), std::move (v), std::move (l))
1648#else
1649 symbol_type (int tok, const double& v, const location_type& l)
1650 : super_type(token_type (tok), v, l)
1651#endif
1652 {
1654 }
1655#if 201103L <= YY_CPLUSPLUS
1656 symbol_type (int tok, int64_t v, location_type l)
1657 : super_type(token_type (tok), std::move (v), std::move (l))
1658#else
1659 symbol_type (int tok, const int64_t& v, const location_type& l)
1660 : super_type(token_type (tok), v, l)
1661#endif
1662 {
1664 }
1665#if 201103L <= YY_CPLUSPLUS
1666 symbol_type (int tok, std::string v, location_type l)
1667 : super_type(token_type (tok), std::move (v), std::move (l))
1668#else
1669 symbol_type (int tok, const std::string& v, const location_type& l)
1670 : super_type(token_type (tok), v, l)
1671#endif
1672 {
1674 }
1675 };
1676
1679 virtual ~Dhcp4Parser ();
1680
1681#if 201103L <= YY_CPLUSPLUS
1683 Dhcp4Parser (const Dhcp4Parser&) = delete;
1685 Dhcp4Parser& operator= (const Dhcp4Parser&) = delete;
1686#endif
1687
1690 int operator() ();
1691
1694 virtual int parse ();
1695
1696#if PARSER4_DEBUG
1698 std::ostream& debug_stream () const YY_ATTRIBUTE_PURE;
1700 void set_debug_stream (std::ostream &);
1701
1703 typedef int debug_level_type;
1708#endif
1709
1713 virtual void error (const location_type& loc, const std::string& msg);
1714
1716 void error (const syntax_error& err);
1717
1720 static std::string symbol_name (symbol_kind_type yysymbol);
1721
1722 // Implementation of make_symbol for each symbol type.
1723#if 201103L <= YY_CPLUSPLUS
1724 static
1727 {
1728 return symbol_type (token::TOKEN_END, std::move (l));
1729 }
1730#else
1731 static
1732 symbol_type
1734 {
1735 return symbol_type (token::TOKEN_END, l);
1736 }
1737#endif
1738#if 201103L <= YY_CPLUSPLUS
1739 static
1740 symbol_type
1742 {
1743 return symbol_type (token::TOKEN_PARSER4_error, std::move (l));
1744 }
1745#else
1746 static
1747 symbol_type
1749 {
1751 }
1752#endif
1753#if 201103L <= YY_CPLUSPLUS
1754 static
1755 symbol_type
1757 {
1758 return symbol_type (token::TOKEN_PARSER4_UNDEF, std::move (l));
1759 }
1760#else
1761 static
1762 symbol_type
1764 {
1766 }
1767#endif
1768#if 201103L <= YY_CPLUSPLUS
1769 static
1770 symbol_type
1772 {
1773 return symbol_type (token::TOKEN_COMMA, std::move (l));
1774 }
1775#else
1776 static
1777 symbol_type
1779 {
1780 return symbol_type (token::TOKEN_COMMA, l);
1781 }
1782#endif
1783#if 201103L <= YY_CPLUSPLUS
1784 static
1785 symbol_type
1787 {
1788 return symbol_type (token::TOKEN_COLON, std::move (l));
1789 }
1790#else
1791 static
1792 symbol_type
1794 {
1795 return symbol_type (token::TOKEN_COLON, l);
1796 }
1797#endif
1798#if 201103L <= YY_CPLUSPLUS
1799 static
1800 symbol_type
1802 {
1803 return symbol_type (token::TOKEN_LSQUARE_BRACKET, std::move (l));
1804 }
1805#else
1806 static
1807 symbol_type
1809 {
1811 }
1812#endif
1813#if 201103L <= YY_CPLUSPLUS
1814 static
1815 symbol_type
1817 {
1818 return symbol_type (token::TOKEN_RSQUARE_BRACKET, std::move (l));
1819 }
1820#else
1821 static
1822 symbol_type
1824 {
1826 }
1827#endif
1828#if 201103L <= YY_CPLUSPLUS
1829 static
1830 symbol_type
1832 {
1833 return symbol_type (token::TOKEN_LCURLY_BRACKET, std::move (l));
1834 }
1835#else
1836 static
1837 symbol_type
1839 {
1841 }
1842#endif
1843#if 201103L <= YY_CPLUSPLUS
1844 static
1845 symbol_type
1847 {
1848 return symbol_type (token::TOKEN_RCURLY_BRACKET, std::move (l));
1849 }
1850#else
1851 static
1852 symbol_type
1854 {
1856 }
1857#endif
1858#if 201103L <= YY_CPLUSPLUS
1859 static
1860 symbol_type
1862 {
1863 return symbol_type (token::TOKEN_NULL_TYPE, std::move (l));
1864 }
1865#else
1866 static
1867 symbol_type
1869 {
1871 }
1872#endif
1873#if 201103L <= YY_CPLUSPLUS
1874 static
1875 symbol_type
1877 {
1878 return symbol_type (token::TOKEN_DHCP4, std::move (l));
1879 }
1880#else
1881 static
1882 symbol_type
1884 {
1885 return symbol_type (token::TOKEN_DHCP4, l);
1886 }
1887#endif
1888#if 201103L <= YY_CPLUSPLUS
1889 static
1890 symbol_type
1892 {
1893 return symbol_type (token::TOKEN_CONFIG_CONTROL, std::move (l));
1894 }
1895#else
1896 static
1897 symbol_type
1899 {
1901 }
1902#endif
1903#if 201103L <= YY_CPLUSPLUS
1904 static
1905 symbol_type
1907 {
1908 return symbol_type (token::TOKEN_CONFIG_DATABASES, std::move (l));
1909 }
1910#else
1911 static
1912 symbol_type
1914 {
1916 }
1917#endif
1918#if 201103L <= YY_CPLUSPLUS
1919 static
1920 symbol_type
1922 {
1923 return symbol_type (token::TOKEN_CONFIG_FETCH_WAIT_TIME, std::move (l));
1924 }
1925#else
1926 static
1927 symbol_type
1929 {
1931 }
1932#endif
1933#if 201103L <= YY_CPLUSPLUS
1934 static
1935 symbol_type
1937 {
1938 return symbol_type (token::TOKEN_INTERFACES_CONFIG, std::move (l));
1939 }
1940#else
1941 static
1942 symbol_type
1944 {
1946 }
1947#endif
1948#if 201103L <= YY_CPLUSPLUS
1949 static
1950 symbol_type
1952 {
1953 return symbol_type (token::TOKEN_INTERFACES, std::move (l));
1954 }
1955#else
1956 static
1957 symbol_type
1959 {
1961 }
1962#endif
1963#if 201103L <= YY_CPLUSPLUS
1964 static
1965 symbol_type
1967 {
1968 return symbol_type (token::TOKEN_DHCP_SOCKET_TYPE, std::move (l));
1969 }
1970#else
1971 static
1972 symbol_type
1974 {
1976 }
1977#endif
1978#if 201103L <= YY_CPLUSPLUS
1979 static
1980 symbol_type
1982 {
1983 return symbol_type (token::TOKEN_RAW, std::move (l));
1984 }
1985#else
1986 static
1987 symbol_type
1989 {
1990 return symbol_type (token::TOKEN_RAW, l);
1991 }
1992#endif
1993#if 201103L <= YY_CPLUSPLUS
1994 static
1995 symbol_type
1997 {
1998 return symbol_type (token::TOKEN_UDP, std::move (l));
1999 }
2000#else
2001 static
2002 symbol_type
2004 {
2005 return symbol_type (token::TOKEN_UDP, l);
2006 }
2007#endif
2008#if 201103L <= YY_CPLUSPLUS
2009 static
2010 symbol_type
2012 {
2013 return symbol_type (token::TOKEN_OUTBOUND_INTERFACE, std::move (l));
2014 }
2015#else
2016 static
2017 symbol_type
2019 {
2021 }
2022#endif
2023#if 201103L <= YY_CPLUSPLUS
2024 static
2025 symbol_type
2027 {
2028 return symbol_type (token::TOKEN_SAME_AS_INBOUND, std::move (l));
2029 }
2030#else
2031 static
2032 symbol_type
2034 {
2036 }
2037#endif
2038#if 201103L <= YY_CPLUSPLUS
2039 static
2040 symbol_type
2042 {
2043 return symbol_type (token::TOKEN_USE_ROUTING, std::move (l));
2044 }
2045#else
2046 static
2047 symbol_type
2049 {
2051 }
2052#endif
2053#if 201103L <= YY_CPLUSPLUS
2054 static
2055 symbol_type
2057 {
2058 return symbol_type (token::TOKEN_RE_DETECT, std::move (l));
2059 }
2060#else
2061 static
2062 symbol_type
2064 {
2066 }
2067#endif
2068#if 201103L <= YY_CPLUSPLUS
2069 static
2070 symbol_type
2072 {
2073 return symbol_type (token::TOKEN_SANITY_CHECKS, std::move (l));
2074 }
2075#else
2076 static
2077 symbol_type
2079 {
2081 }
2082#endif
2083#if 201103L <= YY_CPLUSPLUS
2084 static
2085 symbol_type
2087 {
2088 return symbol_type (token::TOKEN_LEASE_CHECKS, std::move (l));
2089 }
2090#else
2091 static
2092 symbol_type
2094 {
2096 }
2097#endif
2098#if 201103L <= YY_CPLUSPLUS
2099 static
2100 symbol_type
2102 {
2103 return symbol_type (token::TOKEN_ECHO_CLIENT_ID, std::move (l));
2104 }
2105#else
2106 static
2107 symbol_type
2109 {
2111 }
2112#endif
2113#if 201103L <= YY_CPLUSPLUS
2114 static
2115 symbol_type
2117 {
2118 return symbol_type (token::TOKEN_MATCH_CLIENT_ID, std::move (l));
2119 }
2120#else
2121 static
2122 symbol_type
2124 {
2126 }
2127#endif
2128#if 201103L <= YY_CPLUSPLUS
2129 static
2130 symbol_type
2132 {
2133 return symbol_type (token::TOKEN_AUTHORITATIVE, std::move (l));
2134 }
2135#else
2136 static
2137 symbol_type
2139 {
2141 }
2142#endif
2143#if 201103L <= YY_CPLUSPLUS
2144 static
2145 symbol_type
2147 {
2148 return symbol_type (token::TOKEN_NEXT_SERVER, std::move (l));
2149 }
2150#else
2151 static
2152 symbol_type
2154 {
2156 }
2157#endif
2158#if 201103L <= YY_CPLUSPLUS
2159 static
2160 symbol_type
2162 {
2163 return symbol_type (token::TOKEN_SERVER_HOSTNAME, std::move (l));
2164 }
2165#else
2166 static
2167 symbol_type
2169 {
2171 }
2172#endif
2173#if 201103L <= YY_CPLUSPLUS
2174 static
2175 symbol_type
2177 {
2178 return symbol_type (token::TOKEN_BOOT_FILE_NAME, std::move (l));
2179 }
2180#else
2181 static
2182 symbol_type
2184 {
2186 }
2187#endif
2188#if 201103L <= YY_CPLUSPLUS
2189 static
2190 symbol_type
2192 {
2193 return symbol_type (token::TOKEN_LEASE_DATABASE, std::move (l));
2194 }
2195#else
2196 static
2197 symbol_type
2199 {
2201 }
2202#endif
2203#if 201103L <= YY_CPLUSPLUS
2204 static
2205 symbol_type
2207 {
2208 return symbol_type (token::TOKEN_HOSTS_DATABASE, std::move (l));
2209 }
2210#else
2211 static
2212 symbol_type
2214 {
2216 }
2217#endif
2218#if 201103L <= YY_CPLUSPLUS
2219 static
2220 symbol_type
2222 {
2223 return symbol_type (token::TOKEN_HOSTS_DATABASES, std::move (l));
2224 }
2225#else
2226 static
2227 symbol_type
2229 {
2231 }
2232#endif
2233#if 201103L <= YY_CPLUSPLUS
2234 static
2235 symbol_type
2237 {
2238 return symbol_type (token::TOKEN_TYPE, std::move (l));
2239 }
2240#else
2241 static
2242 symbol_type
2244 {
2245 return symbol_type (token::TOKEN_TYPE, l);
2246 }
2247#endif
2248#if 201103L <= YY_CPLUSPLUS
2249 static
2250 symbol_type
2252 {
2253 return symbol_type (token::TOKEN_MEMFILE, std::move (l));
2254 }
2255#else
2256 static
2257 symbol_type
2259 {
2261 }
2262#endif
2263#if 201103L <= YY_CPLUSPLUS
2264 static
2265 symbol_type
2267 {
2268 return symbol_type (token::TOKEN_MYSQL, std::move (l));
2269 }
2270#else
2271 static
2272 symbol_type
2274 {
2275 return symbol_type (token::TOKEN_MYSQL, l);
2276 }
2277#endif
2278#if 201103L <= YY_CPLUSPLUS
2279 static
2280 symbol_type
2282 {
2283 return symbol_type (token::TOKEN_POSTGRESQL, std::move (l));
2284 }
2285#else
2286 static
2287 symbol_type
2289 {
2291 }
2292#endif
2293#if 201103L <= YY_CPLUSPLUS
2294 static
2295 symbol_type
2297 {
2298 return symbol_type (token::TOKEN_CQL, std::move (l));
2299 }
2300#else
2301 static
2302 symbol_type
2304 {
2305 return symbol_type (token::TOKEN_CQL, l);
2306 }
2307#endif
2308#if 201103L <= YY_CPLUSPLUS
2309 static
2310 symbol_type
2312 {
2313 return symbol_type (token::TOKEN_USER, std::move (l));
2314 }
2315#else
2316 static
2317 symbol_type
2319 {
2320 return symbol_type (token::TOKEN_USER, l);
2321 }
2322#endif
2323#if 201103L <= YY_CPLUSPLUS
2324 static
2325 symbol_type
2327 {
2328 return symbol_type (token::TOKEN_PASSWORD, std::move (l));
2329 }
2330#else
2331 static
2332 symbol_type
2334 {
2336 }
2337#endif
2338#if 201103L <= YY_CPLUSPLUS
2339 static
2340 symbol_type
2342 {
2343 return symbol_type (token::TOKEN_HOST, std::move (l));
2344 }
2345#else
2346 static
2347 symbol_type
2349 {
2350 return symbol_type (token::TOKEN_HOST, l);
2351 }
2352#endif
2353#if 201103L <= YY_CPLUSPLUS
2354 static
2355 symbol_type
2357 {
2358 return symbol_type (token::TOKEN_PORT, std::move (l));
2359 }
2360#else
2361 static
2362 symbol_type
2364 {
2365 return symbol_type (token::TOKEN_PORT, l);
2366 }
2367#endif
2368#if 201103L <= YY_CPLUSPLUS
2369 static
2370 symbol_type
2372 {
2373 return symbol_type (token::TOKEN_PERSIST, std::move (l));
2374 }
2375#else
2376 static
2377 symbol_type
2379 {
2381 }
2382#endif
2383#if 201103L <= YY_CPLUSPLUS
2384 static
2385 symbol_type
2387 {
2388 return symbol_type (token::TOKEN_LFC_INTERVAL, std::move (l));
2389 }
2390#else
2391 static
2392 symbol_type
2394 {
2396 }
2397#endif
2398#if 201103L <= YY_CPLUSPLUS
2399 static
2400 symbol_type
2402 {
2403 return symbol_type (token::TOKEN_READONLY, std::move (l));
2404 }
2405#else
2406 static
2407 symbol_type
2409 {
2411 }
2412#endif
2413#if 201103L <= YY_CPLUSPLUS
2414 static
2415 symbol_type
2417 {
2418 return symbol_type (token::TOKEN_CONNECT_TIMEOUT, std::move (l));
2419 }
2420#else
2421 static
2422 symbol_type
2424 {
2426 }
2427#endif
2428#if 201103L <= YY_CPLUSPLUS
2429 static
2430 symbol_type
2432 {
2433 return symbol_type (token::TOKEN_CONTACT_POINTS, std::move (l));
2434 }
2435#else
2436 static
2437 symbol_type
2439 {
2441 }
2442#endif
2443#if 201103L <= YY_CPLUSPLUS
2444 static
2445 symbol_type
2447 {
2448 return symbol_type (token::TOKEN_KEYSPACE, std::move (l));
2449 }
2450#else
2451 static
2452 symbol_type
2454 {
2456 }
2457#endif
2458#if 201103L <= YY_CPLUSPLUS
2459 static
2460 symbol_type
2462 {
2463 return symbol_type (token::TOKEN_CONSISTENCY, std::move (l));
2464 }
2465#else
2466 static
2467 symbol_type
2469 {
2471 }
2472#endif
2473#if 201103L <= YY_CPLUSPLUS
2474 static
2475 symbol_type
2477 {
2478 return symbol_type (token::TOKEN_SERIAL_CONSISTENCY, std::move (l));
2479 }
2480#else
2481 static
2482 symbol_type
2484 {
2486 }
2487#endif
2488#if 201103L <= YY_CPLUSPLUS
2489 static
2490 symbol_type
2492 {
2493 return symbol_type (token::TOKEN_MAX_RECONNECT_TRIES, std::move (l));
2494 }
2495#else
2496 static
2497 symbol_type
2499 {
2501 }
2502#endif
2503#if 201103L <= YY_CPLUSPLUS
2504 static
2505 symbol_type
2507 {
2508 return symbol_type (token::TOKEN_RECONNECT_WAIT_TIME, std::move (l));
2509 }
2510#else
2511 static
2512 symbol_type
2514 {
2516 }
2517#endif
2518#if 201103L <= YY_CPLUSPLUS
2519 static
2520 symbol_type
2522 {
2523 return symbol_type (token::TOKEN_ON_FAIL, std::move (l));
2524 }
2525#else
2526 static
2527 symbol_type
2529 {
2531 }
2532#endif
2533#if 201103L <= YY_CPLUSPLUS
2534 static
2535 symbol_type
2537 {
2538 return symbol_type (token::TOKEN_STOP_RETRY_EXIT, std::move (l));
2539 }
2540#else
2541 static
2542 symbol_type
2544 {
2546 }
2547#endif
2548#if 201103L <= YY_CPLUSPLUS
2549 static
2550 symbol_type
2552 {
2553 return symbol_type (token::TOKEN_SERVE_RETRY_EXIT, std::move (l));
2554 }
2555#else
2556 static
2557 symbol_type
2559 {
2561 }
2562#endif
2563#if 201103L <= YY_CPLUSPLUS
2564 static
2565 symbol_type
2567 {
2568 return symbol_type (token::TOKEN_SERVE_RETRY_CONTINUE, std::move (l));
2569 }
2570#else
2571 static
2572 symbol_type
2574 {
2576 }
2577#endif
2578#if 201103L <= YY_CPLUSPLUS
2579 static
2580 symbol_type
2582 {
2583 return symbol_type (token::TOKEN_REQUEST_TIMEOUT, std::move (l));
2584 }
2585#else
2586 static
2587 symbol_type
2589 {
2591 }
2592#endif
2593#if 201103L <= YY_CPLUSPLUS
2594 static
2595 symbol_type
2597 {
2598 return symbol_type (token::TOKEN_TCP_KEEPALIVE, std::move (l));
2599 }
2600#else
2601 static
2602 symbol_type
2604 {
2606 }
2607#endif
2608#if 201103L <= YY_CPLUSPLUS
2609 static
2610 symbol_type
2612 {
2613 return symbol_type (token::TOKEN_TCP_NODELAY, std::move (l));
2614 }
2615#else
2616 static
2617 symbol_type
2619 {
2621 }
2622#endif
2623#if 201103L <= YY_CPLUSPLUS
2624 static
2625 symbol_type
2627 {
2628 return symbol_type (token::TOKEN_MAX_ROW_ERRORS, std::move (l));
2629 }
2630#else
2631 static
2632 symbol_type
2634 {
2636 }
2637#endif
2638#if 201103L <= YY_CPLUSPLUS
2639 static
2640 symbol_type
2642 {
2643 return symbol_type (token::TOKEN_VALID_LIFETIME, std::move (l));
2644 }
2645#else
2646 static
2647 symbol_type
2649 {
2651 }
2652#endif
2653#if 201103L <= YY_CPLUSPLUS
2654 static
2655 symbol_type
2657 {
2658 return symbol_type (token::TOKEN_MIN_VALID_LIFETIME, std::move (l));
2659 }
2660#else
2661 static
2662 symbol_type
2664 {
2666 }
2667#endif
2668#if 201103L <= YY_CPLUSPLUS
2669 static
2670 symbol_type
2672 {
2673 return symbol_type (token::TOKEN_MAX_VALID_LIFETIME, std::move (l));
2674 }
2675#else
2676 static
2677 symbol_type
2679 {
2681 }
2682#endif
2683#if 201103L <= YY_CPLUSPLUS
2684 static
2685 symbol_type
2687 {
2688 return symbol_type (token::TOKEN_RENEW_TIMER, std::move (l));
2689 }
2690#else
2691 static
2692 symbol_type
2694 {
2696 }
2697#endif
2698#if 201103L <= YY_CPLUSPLUS
2699 static
2700 symbol_type
2702 {
2703 return symbol_type (token::TOKEN_REBIND_TIMER, std::move (l));
2704 }
2705#else
2706 static
2707 symbol_type
2709 {
2711 }
2712#endif
2713#if 201103L <= YY_CPLUSPLUS
2714 static
2715 symbol_type
2717 {
2718 return symbol_type (token::TOKEN_CALCULATE_TEE_TIMES, std::move (l));
2719 }
2720#else
2721 static
2722 symbol_type
2724 {
2726 }
2727#endif
2728#if 201103L <= YY_CPLUSPLUS
2729 static
2730 symbol_type
2732 {
2733 return symbol_type (token::TOKEN_T1_PERCENT, std::move (l));
2734 }
2735#else
2736 static
2737 symbol_type
2739 {
2741 }
2742#endif
2743#if 201103L <= YY_CPLUSPLUS
2744 static
2745 symbol_type
2747 {
2748 return symbol_type (token::TOKEN_T2_PERCENT, std::move (l));
2749 }
2750#else
2751 static
2752 symbol_type
2754 {
2756 }
2757#endif
2758#if 201103L <= YY_CPLUSPLUS
2759 static
2760 symbol_type
2762 {
2763 return symbol_type (token::TOKEN_CACHE_THRESHOLD, std::move (l));
2764 }
2765#else
2766 static
2767 symbol_type
2769 {
2771 }
2772#endif
2773#if 201103L <= YY_CPLUSPLUS
2774 static
2775 symbol_type
2777 {
2778 return symbol_type (token::TOKEN_CACHE_MAX_AGE, std::move (l));
2779 }
2780#else
2781 static
2782 symbol_type
2784 {
2786 }
2787#endif
2788#if 201103L <= YY_CPLUSPLUS
2789 static
2790 symbol_type
2792 {
2793 return symbol_type (token::TOKEN_DECLINE_PROBATION_PERIOD, std::move (l));
2794 }
2795#else
2796 static
2797 symbol_type
2799 {
2801 }
2802#endif
2803#if 201103L <= YY_CPLUSPLUS
2804 static
2805 symbol_type
2807 {
2808 return symbol_type (token::TOKEN_SERVER_TAG, std::move (l));
2809 }
2810#else
2811 static
2812 symbol_type
2814 {
2816 }
2817#endif
2818#if 201103L <= YY_CPLUSPLUS
2819 static
2820 symbol_type
2822 {
2823 return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT, std::move (l));
2824 }
2825#else
2826 static
2827 symbol_type
2829 {
2831 }
2832#endif
2833#if 201103L <= YY_CPLUSPLUS
2834 static
2835 symbol_type
2837 {
2838 return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE, std::move (l));
2839 }
2840#else
2841 static
2842 symbol_type
2844 {
2846 }
2847#endif
2848#if 201103L <= YY_CPLUSPLUS
2849 static
2850 symbol_type
2852 {
2853 return symbol_type (token::TOKEN_DDNS_SEND_UPDATES, std::move (l));
2854 }
2855#else
2856 static
2857 symbol_type
2859 {
2861 }
2862#endif
2863#if 201103L <= YY_CPLUSPLUS
2864 static
2865 symbol_type
2867 {
2868 return symbol_type (token::TOKEN_DDNS_OVERRIDE_NO_UPDATE, std::move (l));
2869 }
2870#else
2871 static
2872 symbol_type
2874 {
2876 }
2877#endif
2878#if 201103L <= YY_CPLUSPLUS
2879 static
2880 symbol_type
2882 {
2883 return symbol_type (token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE, std::move (l));
2884 }
2885#else
2886 static
2887 symbol_type
2889 {
2891 }
2892#endif
2893#if 201103L <= YY_CPLUSPLUS
2894 static
2895 symbol_type
2897 {
2898 return symbol_type (token::TOKEN_DDNS_REPLACE_CLIENT_NAME, std::move (l));
2899 }
2900#else
2901 static
2902 symbol_type
2904 {
2906 }
2907#endif
2908#if 201103L <= YY_CPLUSPLUS
2909 static
2910 symbol_type
2912 {
2913 return symbol_type (token::TOKEN_DDNS_GENERATED_PREFIX, std::move (l));
2914 }
2915#else
2916 static
2917 symbol_type
2919 {
2921 }
2922#endif
2923#if 201103L <= YY_CPLUSPLUS
2924 static
2925 symbol_type
2927 {
2928 return symbol_type (token::TOKEN_DDNS_QUALIFYING_SUFFIX, std::move (l));
2929 }
2930#else
2931 static
2932 symbol_type
2934 {
2936 }
2937#endif
2938#if 201103L <= YY_CPLUSPLUS
2939 static
2940 symbol_type
2942 {
2943 return symbol_type (token::TOKEN_DDNS_UPDATE_ON_RENEW, std::move (l));
2944 }
2945#else
2946 static
2947 symbol_type
2949 {
2951 }
2952#endif
2953#if 201103L <= YY_CPLUSPLUS
2954 static
2955 symbol_type
2957 {
2958 return symbol_type (token::TOKEN_DDNS_USE_CONFLICT_RESOLUTION, std::move (l));
2959 }
2960#else
2961 static
2962 symbol_type
2964 {
2966 }
2967#endif
2968#if 201103L <= YY_CPLUSPLUS
2969 static
2970 symbol_type
2972 {
2973 return symbol_type (token::TOKEN_STORE_EXTENDED_INFO, std::move (l));
2974 }
2975#else
2976 static
2977 symbol_type
2979 {
2981 }
2982#endif
2983#if 201103L <= YY_CPLUSPLUS
2984 static
2985 symbol_type
2987 {
2988 return symbol_type (token::TOKEN_SUBNET4, std::move (l));
2989 }
2990#else
2991 static
2992 symbol_type
2994 {
2996 }
2997#endif
2998#if 201103L <= YY_CPLUSPLUS
2999 static
3000 symbol_type
3002 {
3003 return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE, std::move (l));
3004 }
3005#else
3006 static
3007 symbol_type
3009 {
3011 }
3012#endif
3013#if 201103L <= YY_CPLUSPLUS
3014 static
3015 symbol_type
3017 {
3018 return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE_ID, std::move (l));
3019 }
3020#else
3021 static
3022 symbol_type
3024 {
3026 }
3027#endif
3028#if 201103L <= YY_CPLUSPLUS
3029 static
3030 symbol_type
3032 {
3033 return symbol_type (token::TOKEN_SUBNET_4O6_SUBNET, std::move (l));
3034 }
3035#else
3036 static
3037 symbol_type
3039 {
3041 }
3042#endif
3043#if 201103L <= YY_CPLUSPLUS
3044 static
3045 symbol_type
3047 {
3048 return symbol_type (token::TOKEN_OPTION_DEF, std::move (l));
3049 }
3050#else
3051 static
3052 symbol_type
3054 {
3056 }
3057#endif
3058#if 201103L <= YY_CPLUSPLUS
3059 static
3060 symbol_type
3062 {
3063 return symbol_type (token::TOKEN_OPTION_DATA, std::move (l));
3064 }
3065#else
3066 static
3067 symbol_type
3069 {
3071 }
3072#endif
3073#if 201103L <= YY_CPLUSPLUS
3074 static
3075 symbol_type
3077 {
3078 return symbol_type (token::TOKEN_NAME, std::move (l));
3079 }
3080#else
3081 static
3082 symbol_type
3084 {
3085 return symbol_type (token::TOKEN_NAME, l);
3086 }
3087#endif
3088#if 201103L <= YY_CPLUSPLUS
3089 static
3090 symbol_type
3092 {
3093 return symbol_type (token::TOKEN_DATA, std::move (l));
3094 }
3095#else
3096 static
3097 symbol_type
3099 {
3100 return symbol_type (token::TOKEN_DATA, l);
3101 }
3102#endif
3103#if 201103L <= YY_CPLUSPLUS
3104 static
3105 symbol_type
3107 {
3108 return symbol_type (token::TOKEN_CODE, std::move (l));
3109 }
3110#else
3111 static
3112 symbol_type
3114 {
3115 return symbol_type (token::TOKEN_CODE, l);
3116 }
3117#endif
3118#if 201103L <= YY_CPLUSPLUS
3119 static
3120 symbol_type
3122 {
3123 return symbol_type (token::TOKEN_SPACE, std::move (l));
3124 }
3125#else
3126 static
3127 symbol_type
3129 {
3130 return symbol_type (token::TOKEN_SPACE, l);
3131 }
3132#endif
3133#if 201103L <= YY_CPLUSPLUS
3134 static
3135 symbol_type
3137 {
3138 return symbol_type (token::TOKEN_CSV_FORMAT, std::move (l));
3139 }
3140#else
3141 static
3142 symbol_type
3144 {
3146 }
3147#endif
3148#if 201103L <= YY_CPLUSPLUS
3149 static
3150 symbol_type
3152 {
3153 return symbol_type (token::TOKEN_ALWAYS_SEND, std::move (l));
3154 }
3155#else
3156 static
3157 symbol_type
3159 {
3161 }
3162#endif
3163#if 201103L <= YY_CPLUSPLUS
3164 static
3165 symbol_type
3167 {
3168 return symbol_type (token::TOKEN_RECORD_TYPES, std::move (l));
3169 }
3170#else
3171 static
3172 symbol_type
3174 {
3176 }
3177#endif
3178#if 201103L <= YY_CPLUSPLUS
3179 static
3180 symbol_type
3182 {
3183 return symbol_type (token::TOKEN_ENCAPSULATE, std::move (l));
3184 }
3185#else
3186 static
3187 symbol_type
3189 {
3191 }
3192#endif
3193#if 201103L <= YY_CPLUSPLUS
3194 static
3195 symbol_type
3197 {
3198 return symbol_type (token::TOKEN_ARRAY, std::move (l));
3199 }
3200#else
3201 static
3202 symbol_type
3204 {
3205 return symbol_type (token::TOKEN_ARRAY, l);
3206 }
3207#endif
3208#if 201103L <= YY_CPLUSPLUS
3209 static
3210 symbol_type
3212 {
3213 return symbol_type (token::TOKEN_SHARED_NETWORKS, std::move (l));
3214 }
3215#else
3216 static
3217 symbol_type
3219 {
3221 }
3222#endif
3223#if 201103L <= YY_CPLUSPLUS
3224 static
3225 symbol_type
3227 {
3228 return symbol_type (token::TOKEN_POOLS, std::move (l));
3229 }
3230#else
3231 static
3232 symbol_type
3234 {
3235 return symbol_type (token::TOKEN_POOLS, l);
3236 }
3237#endif
3238#if 201103L <= YY_CPLUSPLUS
3239 static
3240 symbol_type
3242 {
3243 return symbol_type (token::TOKEN_POOL, std::move (l));
3244 }
3245#else
3246 static
3247 symbol_type
3249 {
3250 return symbol_type (token::TOKEN_POOL, l);
3251 }
3252#endif
3253#if 201103L <= YY_CPLUSPLUS
3254 static
3255 symbol_type
3257 {
3258 return symbol_type (token::TOKEN_USER_CONTEXT, std::move (l));
3259 }
3260#else
3261 static
3262 symbol_type
3264 {
3266 }
3267#endif
3268#if 201103L <= YY_CPLUSPLUS
3269 static
3270 symbol_type
3272 {
3273 return symbol_type (token::TOKEN_COMMENT, std::move (l));
3274 }
3275#else
3276 static
3277 symbol_type
3279 {
3281 }
3282#endif
3283#if 201103L <= YY_CPLUSPLUS
3284 static
3285 symbol_type
3287 {
3288 return symbol_type (token::TOKEN_SUBNET, std::move (l));
3289 }
3290#else
3291 static
3292 symbol_type
3294 {
3295 return symbol_type (token::TOKEN_SUBNET, l);
3296 }
3297#endif
3298#if 201103L <= YY_CPLUSPLUS
3299 static
3300 symbol_type
3302 {
3303 return symbol_type (token::TOKEN_INTERFACE, std::move (l));
3304 }
3305#else
3306 static
3307 symbol_type
3309 {
3311 }
3312#endif
3313#if 201103L <= YY_CPLUSPLUS
3314 static
3315 symbol_type
3317 {
3318 return symbol_type (token::TOKEN_ID, std::move (l));
3319 }
3320#else
3321 static
3322 symbol_type
3324 {
3325 return symbol_type (token::TOKEN_ID, l);
3326 }
3327#endif
3328#if 201103L <= YY_CPLUSPLUS
3329 static
3330 symbol_type
3332 {
3333 return symbol_type (token::TOKEN_RESERVATION_MODE, std::move (l));
3334 }
3335#else
3336 static
3337 symbol_type
3339 {
3341 }
3342#endif
3343#if 201103L <= YY_CPLUSPLUS
3344 static
3345 symbol_type
3347 {
3348 return symbol_type (token::TOKEN_DISABLED, std::move (l));
3349 }
3350#else
3351 static
3352 symbol_type
3354 {
3356 }
3357#endif
3358#if 201103L <= YY_CPLUSPLUS
3359 static
3360 symbol_type
3362 {
3363 return symbol_type (token::TOKEN_OUT_OF_POOL, std::move (l));
3364 }
3365#else
3366 static
3367 symbol_type
3369 {
3371 }
3372#endif
3373#if 201103L <= YY_CPLUSPLUS
3374 static
3375 symbol_type
3377 {
3378 return symbol_type (token::TOKEN_GLOBAL, std::move (l));
3379 }
3380#else
3381 static
3382 symbol_type
3384 {
3385 return symbol_type (token::TOKEN_GLOBAL, l);
3386 }
3387#endif
3388#if 201103L <= YY_CPLUSPLUS
3389 static
3390 symbol_type
3392 {
3393 return symbol_type (token::TOKEN_ALL, std::move (l));
3394 }
3395#else
3396 static
3397 symbol_type
3399 {
3400 return symbol_type (token::TOKEN_ALL, l);
3401 }
3402#endif
3403#if 201103L <= YY_CPLUSPLUS
3404 static
3405 symbol_type
3407 {
3408 return symbol_type (token::TOKEN_RESERVATIONS_GLOBAL, std::move (l));
3409 }
3410#else
3411 static
3412 symbol_type
3414 {
3416 }
3417#endif
3418#if 201103L <= YY_CPLUSPLUS
3419 static
3420 symbol_type
3422 {
3423 return symbol_type (token::TOKEN_RESERVATIONS_IN_SUBNET, std::move (l));
3424 }
3425#else
3426 static
3427 symbol_type
3429 {
3431 }
3432#endif
3433#if 201103L <= YY_CPLUSPLUS
3434 static
3435 symbol_type
3437 {
3438 return symbol_type (token::TOKEN_RESERVATIONS_OUT_OF_POOL, std::move (l));
3439 }
3440#else
3441 static
3442 symbol_type
3444 {
3446 }
3447#endif
3448#if 201103L <= YY_CPLUSPLUS
3449 static
3450 symbol_type
3452 {
3453 return symbol_type (token::TOKEN_HOST_RESERVATION_IDENTIFIERS, std::move (l));
3454 }
3455#else
3456 static
3457 symbol_type
3459 {
3461 }
3462#endif
3463#if 201103L <= YY_CPLUSPLUS
3464 static
3465 symbol_type
3467 {
3468 return symbol_type (token::TOKEN_CLIENT_CLASSES, std::move (l));
3469 }
3470#else
3471 static
3472 symbol_type
3474 {
3476 }
3477#endif
3478#if 201103L <= YY_CPLUSPLUS
3479 static
3480 symbol_type
3482 {
3483 return symbol_type (token::TOKEN_REQUIRE_CLIENT_CLASSES, std::move (l));
3484 }
3485#else
3486 static
3487 symbol_type
3489 {
3491 }
3492#endif
3493#if 201103L <= YY_CPLUSPLUS
3494 static
3495 symbol_type
3497 {
3498 return symbol_type (token::TOKEN_TEST, std::move (l));
3499 }
3500#else
3501 static
3502 symbol_type
3504 {
3505 return symbol_type (token::TOKEN_TEST, l);
3506 }
3507#endif
3508#if 201103L <= YY_CPLUSPLUS
3509 static
3510 symbol_type
3512 {
3513 return symbol_type (token::TOKEN_ONLY_IF_REQUIRED, std::move (l));
3514 }
3515#else
3516 static
3517 symbol_type
3519 {
3521 }
3522#endif
3523#if 201103L <= YY_CPLUSPLUS
3524 static
3525 symbol_type
3527 {
3528 return symbol_type (token::TOKEN_CLIENT_CLASS, std::move (l));
3529 }
3530#else
3531 static
3532 symbol_type
3534 {
3536 }
3537#endif
3538#if 201103L <= YY_CPLUSPLUS
3539 static
3540 symbol_type
3542 {
3543 return symbol_type (token::TOKEN_RESERVATIONS, std::move (l));
3544 }
3545#else
3546 static
3547 symbol_type
3549 {
3551 }
3552#endif
3553#if 201103L <= YY_CPLUSPLUS
3554 static
3555 symbol_type
3557 {
3558 return symbol_type (token::TOKEN_DUID, std::move (l));
3559 }
3560#else
3561 static
3562 symbol_type
3564 {
3565 return symbol_type (token::TOKEN_DUID, l);
3566 }
3567#endif
3568#if 201103L <= YY_CPLUSPLUS
3569 static
3570 symbol_type
3572 {
3573 return symbol_type (token::TOKEN_HW_ADDRESS, std::move (l));
3574 }
3575#else
3576 static
3577 symbol_type
3579 {
3581 }
3582#endif
3583#if 201103L <= YY_CPLUSPLUS
3584 static
3585 symbol_type
3587 {
3588 return symbol_type (token::TOKEN_CIRCUIT_ID, std::move (l));
3589 }
3590#else
3591 static
3592 symbol_type
3594 {
3596 }
3597#endif
3598#if 201103L <= YY_CPLUSPLUS
3599 static
3600 symbol_type
3602 {
3603 return symbol_type (token::TOKEN_CLIENT_ID, std::move (l));
3604 }
3605#else
3606 static
3607 symbol_type
3609 {
3611 }
3612#endif
3613#if 201103L <= YY_CPLUSPLUS
3614 static
3615 symbol_type
3617 {
3618 return symbol_type (token::TOKEN_HOSTNAME, std::move (l));
3619 }
3620#else
3621 static
3622 symbol_type
3624 {
3626 }
3627#endif
3628#if 201103L <= YY_CPLUSPLUS
3629 static
3630 symbol_type
3632 {
3633 return symbol_type (token::TOKEN_FLEX_ID, std::move (l));
3634 }
3635#else
3636 static
3637 symbol_type
3639 {
3641 }
3642#endif
3643#if 201103L <= YY_CPLUSPLUS
3644 static
3645 symbol_type
3647 {
3648 return symbol_type (token::TOKEN_RELAY, std::move (l));
3649 }
3650#else
3651 static
3652 symbol_type
3654 {
3655 return symbol_type (token::TOKEN_RELAY, l);
3656 }
3657#endif
3658#if 201103L <= YY_CPLUSPLUS
3659 static
3660 symbol_type
3662 {
3663 return symbol_type (token::TOKEN_IP_ADDRESS, std::move (l));
3664 }
3665#else
3666 static
3667 symbol_type
3669 {
3671 }
3672#endif
3673#if 201103L <= YY_CPLUSPLUS
3674 static
3675 symbol_type
3677 {
3678 return symbol_type (token::TOKEN_IP_ADDRESSES, std::move (l));
3679 }
3680#else
3681 static
3682 symbol_type
3684 {
3686 }
3687#endif
3688#if 201103L <= YY_CPLUSPLUS
3689 static
3690 symbol_type
3692 {
3693 return symbol_type (token::TOKEN_HOOKS_LIBRARIES, std::move (l));
3694 }
3695#else
3696 static
3697 symbol_type
3699 {
3701 }
3702#endif
3703#if 201103L <= YY_CPLUSPLUS
3704 static
3705 symbol_type
3707 {
3708 return symbol_type (token::TOKEN_LIBRARY, std::move (l));
3709 }
3710#else
3711 static
3712 symbol_type
3714 {
3716 }
3717#endif
3718#if 201103L <= YY_CPLUSPLUS
3719 static
3720 symbol_type
3722 {
3723 return symbol_type (token::TOKEN_PARAMETERS, std::move (l));
3724 }
3725#else
3726 static
3727 symbol_type
3729 {
3731 }
3732#endif
3733#if 201103L <= YY_CPLUSPLUS
3734 static
3735 symbol_type
3737 {
3738 return symbol_type (token::TOKEN_EXPIRED_LEASES_PROCESSING, std::move (l));
3739 }
3740#else
3741 static
3742 symbol_type
3744 {
3746 }
3747#endif
3748#if 201103L <= YY_CPLUSPLUS
3749 static
3750 symbol_type
3752 {
3753 return symbol_type (token::TOKEN_RECLAIM_TIMER_WAIT_TIME, std::move (l));
3754 }
3755#else
3756 static
3757 symbol_type
3759 {
3761 }
3762#endif
3763#if 201103L <= YY_CPLUSPLUS
3764 static
3765 symbol_type
3767 {
3768 return symbol_type (token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME, std::move (l));
3769 }
3770#else
3771 static
3772 symbol_type
3774 {
3776 }
3777#endif
3778#if 201103L <= YY_CPLUSPLUS
3779 static
3780 symbol_type
3782 {
3783 return symbol_type (token::TOKEN_HOLD_RECLAIMED_TIME, std::move (l));
3784 }
3785#else
3786 static
3787 symbol_type
3789 {
3791 }
3792#endif
3793#if 201103L <= YY_CPLUSPLUS
3794 static
3795 symbol_type
3797 {
3798 return symbol_type (token::TOKEN_MAX_RECLAIM_LEASES, std::move (l));
3799 }
3800#else
3801 static
3802 symbol_type
3804 {
3806 }
3807#endif
3808#if 201103L <= YY_CPLUSPLUS
3809 static
3810 symbol_type
3812 {
3813 return symbol_type (token::TOKEN_MAX_RECLAIM_TIME, std::move (l));
3814 }
3815#else
3816 static
3817 symbol_type
3819 {
3821 }
3822#endif
3823#if 201103L <= YY_CPLUSPLUS
3824 static
3825 symbol_type
3827 {
3828 return symbol_type (token::TOKEN_UNWARNED_RECLAIM_CYCLES, std::move (l));
3829 }
3830#else
3831 static
3832 symbol_type
3834 {
3836 }
3837#endif
3838#if 201103L <= YY_CPLUSPLUS
3839 static
3840 symbol_type
3842 {
3843 return symbol_type (token::TOKEN_DHCP4O6_PORT, std::move (l));
3844 }
3845#else
3846 static
3847 symbol_type
3849 {
3851 }
3852#endif
3853#if 201103L <= YY_CPLUSPLUS
3854 static
3855 symbol_type
3857 {
3858 return symbol_type (token::TOKEN_DHCP_MULTI_THREADING, std::move (l));
3859 }
3860#else
3861 static
3862 symbol_type
3864 {
3866 }
3867#endif
3868#if 201103L <= YY_CPLUSPLUS
3869 static
3870 symbol_type
3872 {
3873 return symbol_type (token::TOKEN_ENABLE_MULTI_THREADING, std::move (l));
3874 }
3875#else
3876 static
3877 symbol_type
3879 {
3881 }
3882#endif
3883#if 201103L <= YY_CPLUSPLUS
3884 static
3885 symbol_type
3887 {
3888 return symbol_type (token::TOKEN_THREAD_POOL_SIZE, std::move (l));
3889 }
3890#else
3891 static
3892 symbol_type
3894 {
3896 }
3897#endif
3898#if 201103L <= YY_CPLUSPLUS
3899 static
3900 symbol_type
3902 {
3903 return symbol_type (token::TOKEN_PACKET_QUEUE_SIZE, std::move (l));
3904 }
3905#else
3906 static
3907 symbol_type
3909 {
3911 }
3912#endif
3913#if 201103L <= YY_CPLUSPLUS
3914 static
3915 symbol_type
3917 {
3918 return symbol_type (token::TOKEN_CONTROL_SOCKET, std::move (l));
3919 }
3920#else
3921 static
3922 symbol_type
3924 {
3926 }
3927#endif
3928#if 201103L <= YY_CPLUSPLUS
3929 static
3930 symbol_type
3932 {
3933 return symbol_type (token::TOKEN_SOCKET_TYPE, std::move (l));
3934 }
3935#else
3936 static
3937 symbol_type
3939 {
3941 }
3942#endif
3943#if 201103L <= YY_CPLUSPLUS
3944 static
3945 symbol_type
3947 {
3948 return symbol_type (token::TOKEN_SOCKET_NAME, std::move (l));
3949 }
3950#else
3951 static
3952 symbol_type
3954 {
3956 }
3957#endif
3958#if 201103L <= YY_CPLUSPLUS
3959 static
3960 symbol_type
3962 {
3963 return symbol_type (token::TOKEN_DHCP_QUEUE_CONTROL, std::move (l));
3964 }
3965#else
3966 static
3967 symbol_type
3969 {
3971 }
3972#endif
3973#if 201103L <= YY_CPLUSPLUS
3974 static
3975 symbol_type
3977 {
3978 return symbol_type (token::TOKEN_ENABLE_QUEUE, std::move (l));
3979 }
3980#else
3981 static
3982 symbol_type
3984 {
3986 }
3987#endif
3988#if 201103L <= YY_CPLUSPLUS
3989 static
3990 symbol_type
3992 {
3993 return symbol_type (token::TOKEN_QUEUE_TYPE, std::move (l));
3994 }
3995#else
3996 static
3997 symbol_type
3999 {
4001 }
4002#endif
4003#if 201103L <= YY_CPLUSPLUS
4004 static
4005 symbol_type
4007 {
4008 return symbol_type (token::TOKEN_CAPACITY, std::move (l));
4009 }
4010#else
4011 static
4012 symbol_type
4014 {
4016 }
4017#endif
4018#if 201103L <= YY_CPLUSPLUS
4019 static
4020 symbol_type
4022 {
4023 return symbol_type (token::TOKEN_DHCP_DDNS, std::move (l));
4024 }
4025#else
4026 static
4027 symbol_type
4029 {
4031 }
4032#endif
4033#if 201103L <= YY_CPLUSPLUS
4034 static
4035 symbol_type
4037 {
4038 return symbol_type (token::TOKEN_ENABLE_UPDATES, std::move (l));
4039 }
4040#else
4041 static
4042 symbol_type
4044 {
4046 }
4047#endif
4048#if 201103L <= YY_CPLUSPLUS
4049 static
4050 symbol_type
4052 {
4053 return symbol_type (token::TOKEN_QUALIFYING_SUFFIX, std::move (l));
4054 }
4055#else
4056 static
4057 symbol_type
4059 {
4061 }
4062#endif
4063#if 201103L <= YY_CPLUSPLUS
4064 static
4065 symbol_type
4067 {
4068 return symbol_type (token::TOKEN_SERVER_IP, std::move (l));
4069 }
4070#else
4071 static
4072 symbol_type
4074 {
4076 }
4077#endif
4078#if 201103L <= YY_CPLUSPLUS
4079 static
4080 symbol_type
4082 {
4083 return symbol_type (token::TOKEN_SERVER_PORT, std::move (l));
4084 }
4085#else
4086 static
4087 symbol_type
4089 {
4091 }
4092#endif
4093#if 201103L <= YY_CPLUSPLUS
4094 static
4095 symbol_type
4097 {
4098 return symbol_type (token::TOKEN_SENDER_IP, std::move (l));
4099 }
4100#else
4101 static
4102 symbol_type
4104 {
4106 }
4107#endif
4108#if 201103L <= YY_CPLUSPLUS
4109 static
4110 symbol_type
4112 {
4113 return symbol_type (token::TOKEN_SENDER_PORT, std::move (l));
4114 }
4115#else
4116 static
4117 symbol_type
4119 {
4121 }
4122#endif
4123#if 201103L <= YY_CPLUSPLUS
4124 static
4125 symbol_type
4127 {
4128 return symbol_type (token::TOKEN_MAX_QUEUE_SIZE, std::move (l));
4129 }
4130#else
4131 static
4132 symbol_type
4134 {
4136 }
4137#endif
4138#if 201103L <= YY_CPLUSPLUS
4139 static
4140 symbol_type
4142 {
4143 return symbol_type (token::TOKEN_NCR_PROTOCOL, std::move (l));
4144 }
4145#else
4146 static
4147 symbol_type
4149 {
4151 }
4152#endif
4153#if 201103L <= YY_CPLUSPLUS
4154 static
4155 symbol_type
4157 {
4158 return symbol_type (token::TOKEN_NCR_FORMAT, std::move (l));
4159 }
4160#else
4161 static
4162 symbol_type
4164 {
4166 }
4167#endif
4168#if 201103L <= YY_CPLUSPLUS
4169 static
4170 symbol_type
4172 {
4173 return symbol_type (token::TOKEN_OVERRIDE_NO_UPDATE, std::move (l));
4174 }
4175#else
4176 static
4177 symbol_type
4179 {
4181 }
4182#endif
4183#if 201103L <= YY_CPLUSPLUS
4184 static
4185 symbol_type
4187 {
4188 return symbol_type (token::TOKEN_OVERRIDE_CLIENT_UPDATE, std::move (l));
4189 }
4190#else
4191 static
4192 symbol_type
4194 {
4196 }
4197#endif
4198#if 201103L <= YY_CPLUSPLUS
4199 static
4200 symbol_type
4202 {
4203 return symbol_type (token::TOKEN_REPLACE_CLIENT_NAME, std::move (l));
4204 }
4205#else
4206 static
4207 symbol_type
4209 {
4211 }
4212#endif
4213#if 201103L <= YY_CPLUSPLUS
4214 static
4215 symbol_type
4217 {
4218 return symbol_type (token::TOKEN_GENERATED_PREFIX, std::move (l));
4219 }
4220#else
4221 static
4222 symbol_type
4224 {
4226 }
4227#endif
4228#if 201103L <= YY_CPLUSPLUS
4229 static
4230 symbol_type
4232 {
4233 return symbol_type (token::TOKEN_TCP, std::move (l));
4234 }
4235#else
4236 static
4237 symbol_type
4239 {
4240 return symbol_type (token::TOKEN_TCP, l);
4241 }
4242#endif
4243#if 201103L <= YY_CPLUSPLUS
4244 static
4245 symbol_type
4247 {
4248 return symbol_type (token::TOKEN_JSON, std::move (l));
4249 }
4250#else
4251 static
4252 symbol_type
4254 {
4255 return symbol_type (token::TOKEN_JSON, l);
4256 }
4257#endif
4258#if 201103L <= YY_CPLUSPLUS
4259 static
4260 symbol_type
4262 {
4263 return symbol_type (token::TOKEN_WHEN_PRESENT, std::move (l));
4264 }
4265#else
4266 static
4267 symbol_type
4269 {
4271 }
4272#endif
4273#if 201103L <= YY_CPLUSPLUS
4274 static
4275 symbol_type
4277 {
4278 return symbol_type (token::TOKEN_NEVER, std::move (l));
4279 }
4280#else
4281 static
4282 symbol_type
4284 {
4285 return symbol_type (token::TOKEN_NEVER, l);
4286 }
4287#endif
4288#if 201103L <= YY_CPLUSPLUS
4289 static
4290 symbol_type
4292 {
4293 return symbol_type (token::TOKEN_ALWAYS, std::move (l));
4294 }
4295#else
4296 static
4297 symbol_type
4299 {
4300 return symbol_type (token::TOKEN_ALWAYS, l);
4301 }
4302#endif
4303#if 201103L <= YY_CPLUSPLUS
4304 static
4305 symbol_type
4307 {
4308 return symbol_type (token::TOKEN_WHEN_NOT_PRESENT, std::move (l));
4309 }
4310#else
4311 static
4312 symbol_type
4314 {
4316 }
4317#endif
4318#if 201103L <= YY_CPLUSPLUS
4319 static
4320 symbol_type
4322 {
4323 return symbol_type (token::TOKEN_HOSTNAME_CHAR_SET, std::move (l));
4324 }
4325#else
4326 static
4327 symbol_type
4329 {
4331 }
4332#endif
4333#if 201103L <= YY_CPLUSPLUS
4334 static
4335 symbol_type
4337 {
4338 return symbol_type (token::TOKEN_HOSTNAME_CHAR_REPLACEMENT, std::move (l));
4339 }
4340#else
4341 static
4342 symbol_type
4344 {
4346 }
4347#endif
4348#if 201103L <= YY_CPLUSPLUS
4349 static
4350 symbol_type
4352 {
4353 return symbol_type (token::TOKEN_IP_RESERVATIONS_UNIQUE, std::move (l));
4354 }
4355#else
4356 static
4357 symbol_type
4359 {
4361 }
4362#endif
4363#if 201103L <= YY_CPLUSPLUS
4364 static
4365 symbol_type
4367 {
4368 return symbol_type (token::TOKEN_LOGGERS, std::move (l));
4369 }
4370#else
4371 static
4372 symbol_type
4374 {
4376 }
4377#endif
4378#if 201103L <= YY_CPLUSPLUS
4379 static
4380 symbol_type
4382 {
4383 return symbol_type (token::TOKEN_OUTPUT_OPTIONS, std::move (l));
4384 }
4385#else
4386 static
4387 symbol_type
4389 {
4391 }
4392#endif
4393#if 201103L <= YY_CPLUSPLUS
4394 static
4395 symbol_type
4397 {
4398 return symbol_type (token::TOKEN_OUTPUT, std::move (l));
4399 }
4400#else
4401 static
4402 symbol_type
4404 {
4405 return symbol_type (token::TOKEN_OUTPUT, l);
4406 }
4407#endif
4408#if 201103L <= YY_CPLUSPLUS
4409 static
4410 symbol_type
4412 {
4413 return symbol_type (token::TOKEN_DEBUGLEVEL, std::move (l));
4414 }
4415#else
4416 static
4417 symbol_type
4419 {
4421 }
4422#endif
4423#if 201103L <= YY_CPLUSPLUS
4424 static
4425 symbol_type
4427 {
4428 return symbol_type (token::TOKEN_SEVERITY, std::move (l));
4429 }
4430#else
4431 static
4432 symbol_type
4434 {
4436 }
4437#endif
4438#if 201103L <= YY_CPLUSPLUS
4439 static
4440 symbol_type
4442 {
4443 return symbol_type (token::TOKEN_FLUSH, std::move (l));
4444 }
4445#else
4446 static
4447 symbol_type
4449 {
4450 return symbol_type (token::TOKEN_FLUSH, l);
4451 }
4452#endif
4453#if 201103L <= YY_CPLUSPLUS
4454 static
4455 symbol_type
4457 {
4458 return symbol_type (token::TOKEN_MAXSIZE, std::move (l));
4459 }
4460#else
4461 static
4462 symbol_type
4464 {
4466 }
4467#endif
4468#if 201103L <= YY_CPLUSPLUS
4469 static
4470 symbol_type
4472 {
4473 return symbol_type (token::TOKEN_MAXVER, std::move (l));
4474 }
4475#else
4476 static
4477 symbol_type
4479 {
4480 return symbol_type (token::TOKEN_MAXVER, l);
4481 }
4482#endif
4483#if 201103L <= YY_CPLUSPLUS
4484 static
4485 symbol_type
4487 {
4488 return symbol_type (token::TOKEN_PATTERN, std::move (l));
4489 }
4490#else
4491 static
4492 symbol_type
4494 {
4496 }
4497#endif
4498#if 201103L <= YY_CPLUSPLUS
4499 static
4500 symbol_type
4502 {
4503 return symbol_type (token::TOKEN_COMPATIBILITY, std::move (l));
4504 }
4505#else
4506 static
4507 symbol_type
4509 {
4511 }
4512#endif
4513#if 201103L <= YY_CPLUSPLUS
4514 static
4515 symbol_type
4517 {
4518 return symbol_type (token::TOKEN_LENIENT_OPTION_PARSING, std::move (l));
4519 }
4520#else
4521 static
4522 symbol_type
4524 {
4526 }
4527#endif
4528#if 201103L <= YY_CPLUSPLUS
4529 static
4530 symbol_type
4532 {
4533 return symbol_type (token::TOKEN_TOPLEVEL_JSON, std::move (l));
4534 }
4535#else
4536 static
4537 symbol_type
4539 {
4541 }
4542#endif
4543#if 201103L <= YY_CPLUSPLUS
4544 static
4545 symbol_type
4547 {
4548 return symbol_type (token::TOKEN_TOPLEVEL_DHCP4, std::move (l));
4549 }
4550#else
4551 static
4552 symbol_type
4554 {
4556 }
4557#endif
4558#if 201103L <= YY_CPLUSPLUS
4559 static
4560 symbol_type
4562 {
4563 return symbol_type (token::TOKEN_SUB_DHCP4, std::move (l));
4564 }
4565#else
4566 static
4567 symbol_type
4569 {
4571 }
4572#endif
4573#if 201103L <= YY_CPLUSPLUS
4574 static
4575 symbol_type
4577 {
4578 return symbol_type (token::TOKEN_SUB_INTERFACES4, std::move (l));
4579 }
4580#else
4581 static
4582 symbol_type
4584 {
4586 }
4587#endif
4588#if 201103L <= YY_CPLUSPLUS
4589 static
4590 symbol_type
4592 {
4593 return symbol_type (token::TOKEN_SUB_SUBNET4, std::move (l));
4594 }
4595#else
4596 static
4597 symbol_type
4599 {
4601 }
4602#endif
4603#if 201103L <= YY_CPLUSPLUS
4604 static
4605 symbol_type
4607 {
4608 return symbol_type (token::TOKEN_SUB_POOL4, std::move (l));
4609 }
4610#else
4611 static
4612 symbol_type
4614 {
4616 }
4617#endif
4618#if 201103L <= YY_CPLUSPLUS
4619 static
4620 symbol_type
4622 {
4623 return symbol_type (token::TOKEN_SUB_RESERVATION, std::move (l));
4624 }
4625#else
4626 static
4627 symbol_type
4629 {
4631 }
4632#endif
4633#if 201103L <= YY_CPLUSPLUS
4634 static
4635 symbol_type
4637 {
4638 return symbol_type (token::TOKEN_SUB_OPTION_DEFS, std::move (l));
4639 }
4640#else
4641 static
4642 symbol_type
4644 {
4646 }
4647#endif
4648#if 201103L <= YY_CPLUSPLUS
4649 static
4650 symbol_type
4652 {
4653 return symbol_type (token::TOKEN_SUB_OPTION_DEF, std::move (l));
4654 }
4655#else
4656 static
4657 symbol_type
4659 {
4661 }
4662#endif
4663#if 201103L <= YY_CPLUSPLUS
4664 static
4665 symbol_type
4667 {
4668 return symbol_type (token::TOKEN_SUB_OPTION_DATA, std::move (l));
4669 }
4670#else
4671 static
4672 symbol_type
4674 {
4676 }
4677#endif
4678#if 201103L <= YY_CPLUSPLUS
4679 static
4680 symbol_type
4682 {
4683 return symbol_type (token::TOKEN_SUB_HOOKS_LIBRARY, std::move (l));
4684 }
4685#else
4686 static
4687 symbol_type
4689 {
4691 }
4692#endif
4693#if 201103L <= YY_CPLUSPLUS
4694 static
4695 symbol_type
4697 {
4698 return symbol_type (token::TOKEN_SUB_DHCP_DDNS, std::move (l));
4699 }
4700#else
4701 static
4702 symbol_type
4704 {
4706 }
4707#endif
4708#if 201103L <= YY_CPLUSPLUS
4709 static
4710 symbol_type
4712 {
4713 return symbol_type (token::TOKEN_SUB_CONFIG_CONTROL, std::move (l));
4714 }
4715#else
4716 static
4717 symbol_type
4719 {
4721 }
4722#endif
4723#if 201103L <= YY_CPLUSPLUS
4724 static
4725 symbol_type
4726 make_STRING (std::string v, location_type l)
4727 {
4728 return symbol_type (token::TOKEN_STRING, std::move (v), std::move (l));
4729 }
4730#else
4731 static
4732 symbol_type
4733 make_STRING (const std::string& v, const location_type& l)
4734 {
4735 return symbol_type (token::TOKEN_STRING, v, l);
4736 }
4737#endif
4738#if 201103L <= YY_CPLUSPLUS
4739 static
4740 symbol_type
4741 make_INTEGER (int64_t v, location_type l)
4742 {
4743 return symbol_type (token::TOKEN_INTEGER, std::move (v), std::move (l));
4744 }
4745#else
4746 static
4747 symbol_type
4748 make_INTEGER (const int64_t& v, const location_type& l)
4749 {
4750 return symbol_type (token::TOKEN_INTEGER, v, l);
4751 }
4752#endif
4753#if 201103L <= YY_CPLUSPLUS
4754 static
4755 symbol_type
4756 make_FLOAT (double v, location_type l)
4757 {
4758 return symbol_type (token::TOKEN_FLOAT, std::move (v), std::move (l));
4759 }
4760#else
4761 static
4762 symbol_type
4763 make_FLOAT (const double& v, const location_type& l)
4764 {
4765 return symbol_type (token::TOKEN_FLOAT, v, l);
4766 }
4767#endif
4768#if 201103L <= YY_CPLUSPLUS
4769 static
4770 symbol_type
4771 make_BOOLEAN (bool v, location_type l)
4772 {
4773 return symbol_type (token::TOKEN_BOOLEAN, std::move (v), std::move (l));
4774 }
4775#else
4776 static
4777 symbol_type
4778 make_BOOLEAN (const bool& v, const location_type& l)
4779 {
4780 return symbol_type (token::TOKEN_BOOLEAN, v, l);
4781 }
4782#endif
4783
4784
4786 {
4787 public:
4788 context (const Dhcp4Parser& yyparser, const symbol_type& yyla);
4789 const symbol_type& lookahead () const YY_NOEXCEPT { return yyla_; }
4790 symbol_kind_type token () const YY_NOEXCEPT { return yyla_.kind (); }
4791 const location_type& location () const YY_NOEXCEPT { return yyla_.location; }
4792
4796 int expected_tokens (symbol_kind_type yyarg[], int yyargn) const;
4797
4798 private:
4799 const Dhcp4Parser& yyparser_;
4800 const symbol_type& yyla_;
4801 };
4802
4803 private:
4804#if YY_CPLUSPLUS < 201103L
4806 Dhcp4Parser (const Dhcp4Parser&);
4808 Dhcp4Parser& operator= (const Dhcp4Parser&);
4809#endif
4810
4811
4813 typedef short state_type;
4814
4816 int yy_syntax_error_arguments_ (const context& yyctx,
4817 symbol_kind_type yyarg[], int yyargn) const;
4818
4821 virtual std::string yysyntax_error_ (const context& yyctx) const;
4825 static state_type yy_lr_goto_state_ (state_type yystate, int yysym);
4826
4829 static bool yy_pact_value_is_default_ (int yyvalue);
4830
4833 static bool yy_table_value_is_error_ (int yyvalue);
4834
4835 static const short yypact_ninf_;
4836 static const signed char yytable_ninf_;
4837
4841 static symbol_kind_type yytranslate_ (int t);
4842
4844 static std::string yytnamerr_ (const char *yystr);
4845
4847 static const char* const yytname_[];
4848
4849
4850 // Tables.
4851 // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
4852 // STATE-NUM.
4853 static const short yypact_[];
4854
4855 // YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
4856 // Performed when YYTABLE does not specify something else to do. Zero
4857 // means the default is an error.
4858 static const short yydefact_[];
4859
4860 // YYPGOTO[NTERM-NUM].
4861 static const short yypgoto_[];
4862
4863 // YYDEFGOTO[NTERM-NUM].
4864 static const short yydefgoto_[];
4865
4866 // YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
4867 // positive, shift that token. If negative, reduce the rule whose
4868 // number is the opposite. If YYTABLE_NINF, syntax error.
4869 static const short yytable_[];
4870
4871 static const short yycheck_[];
4872
4873 // YYSTOS[STATE-NUM] -- The (internal number of the) accessing
4874 // symbol of state STATE-NUM.
4875 static const short yystos_[];
4876
4877 // YYR1[YYN] -- Symbol number of symbol that rule YYN derives.
4878 static const short yyr1_[];
4879
4880 // YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.
4881 static const signed char yyr2_[];
4882
4883
4884#if PARSER4_DEBUG
4885 // YYRLINE[YYN] -- Source line where rule number YYN was defined.
4886 static const short yyrline_[];
4888 virtual void yy_reduce_print_ (int r) const;
4890 virtual void yy_stack_print_ () const;
4891
4893 int yydebug_;
4895 std::ostream* yycdebug_;
4896
4900 template <typename Base>
4901 void yy_print_ (std::ostream& yyo, const basic_symbol<Base>& yysym) const;
4902#endif
4903
4908 template <typename Base>
4909 void yy_destroy_ (const char* yymsg, basic_symbol<Base>& yysym) const;
4910
4911 private:
4913 struct by_state
4914 {
4916 by_state () YY_NOEXCEPT;
4917
4919 typedef state_type kind_type;
4920
4922 by_state (kind_type s) YY_NOEXCEPT;
4923
4925 by_state (const by_state& that) YY_NOEXCEPT;
4926
4928 void clear () YY_NOEXCEPT;
4929
4931 void move (by_state& that);
4932
4935 symbol_kind_type kind () const YY_NOEXCEPT;
4936
4939 enum { empty_state = 0 };
4940
4943 state_type state;
4944 };
4945
4947 struct stack_symbol_type : basic_symbol<by_state>
4948 {
4950 typedef basic_symbol<by_state> super_type;
4952 stack_symbol_type ();
4954 stack_symbol_type (YY_RVREF (stack_symbol_type) that);
4956 stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) sym);
4957#if YY_CPLUSPLUS < 201103L
4960 stack_symbol_type& operator= (stack_symbol_type& that);
4961
4964 stack_symbol_type& operator= (const stack_symbol_type& that);
4965#endif
4966 };
4967
4969 template <typename T, typename S = std::vector<T> >
4970 class stack
4971 {
4972 public:
4973 // Hide our reversed order.
4974 typedef typename S::iterator iterator;
4975 typedef typename S::const_iterator const_iterator;
4976 typedef typename S::size_type size_type;
4977 typedef typename std::ptrdiff_t index_type;
4978
4979 stack (size_type n = 200)
4980 : seq_ (n)
4981 {}
4982
4983#if 201103L <= YY_CPLUSPLUS
4985 stack (const stack&) = delete;
4987 stack& operator= (const stack&) = delete;
4988#endif
4989
4993 const T&
4994 operator[] (index_type i) const
4995 {
4996 return seq_[size_type (size () - 1 - i)];
4997 }
4998
5002 T&
5003 operator[] (index_type i)
5004 {
5005 return seq_[size_type (size () - 1 - i)];
5006 }
5007
5011 void
5012 push (YY_MOVE_REF (T) t)
5013 {
5014 seq_.push_back (T ());
5015 operator[] (0).move (t);
5016 }
5017
5019 void
5020 pop (std::ptrdiff_t n = 1) YY_NOEXCEPT
5021 {
5022 for (; 0 < n; --n)
5023 seq_.pop_back ();
5024 }
5025
5027 void
5028 clear () YY_NOEXCEPT
5029 {
5030 seq_.clear ();
5031 }
5032
5034 index_type
5035 size () const YY_NOEXCEPT
5036 {
5037 return index_type (seq_.size ());
5038 }
5039
5041 const_iterator
5042 begin () const YY_NOEXCEPT
5043 {
5044 return seq_.begin ();
5045 }
5046
5048 const_iterator
5049 end () const YY_NOEXCEPT
5050 {
5051 return seq_.end ();
5052 }
5053
5055 class slice
5056 {
5057 public:
5058 slice (const stack& stack, index_type range)
5059 : stack_ (stack)
5060 , range_ (range)
5061 {}
5062
5063 const T&
5064 operator[] (index_type i) const
5065 {
5066 return stack_[range_ - i];
5067 }
5068
5069 private:
5070 const stack& stack_;
5071 index_type range_;
5072 };
5073
5074 private:
5075#if YY_CPLUSPLUS < 201103L
5077 stack (const stack&);
5079 stack& operator= (const stack&);
5080#endif
5082 S seq_;
5083 };
5084
5085
5087 typedef stack<stack_symbol_type> stack_type;
5088
5090 stack_type yystack_;
5091
5097 void yypush_ (const char* m, YY_MOVE_REF (stack_symbol_type) sym);
5098
5105 void yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym);
5106
5108 void yypop_ (int n = 1);
5109
5111 enum
5112 {
5113 yylast_ = 1424,
5114 yynnts_ = 418,
5115 yyfinal_ = 28
5116 };
5117
5118
5119 // User arguments.
5121
5122 };
5123
5124 inline
5126 Dhcp4Parser::yytranslate_ (int t)
5127 {
5128 // YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to
5129 // TOKEN-NUM as returned by yylex.
5130 static
5131 const unsigned char
5132 translate_table[] =
5133 {
5134 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5135 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5136 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5137 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5138 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5139 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5140 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5141 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5142 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5143 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5144 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5145 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5146 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5147 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5148 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5149 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5150 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5151 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5152 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5153 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5154 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5155 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5156 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5157 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5158 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5159 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
5160 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
5161 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
5162 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
5163 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
5164 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
5165 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
5166 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
5167 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
5168 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
5169 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
5170 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
5171 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
5172 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
5173 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
5174 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
5175 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
5176 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
5177 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
5178 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
5179 195, 196, 197, 198, 199, 200, 201, 202, 203
5180 };
5181 // Last valid token kind.
5182 const int code_max = 458;
5183
5184 if (t <= 0)
5185 return symbol_kind::S_YYEOF;
5186 else if (t <= code_max)
5187 return YY_CAST (symbol_kind_type, translate_table[t]);
5188 else
5190 }
5191
5192 // basic_symbol.
5193 template <typename Base>
5195 : Base (that)
5196 , value ()
5197 , location (that.location)
5198 {
5199 switch (this->kind ())
5200 {
5201 case symbol_kind::S_value: // value
5202 case symbol_kind::S_map_value: // map_value
5203 case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value
5204 case symbol_kind::S_socket_type: // socket_type
5205 case symbol_kind::S_outbound_interface_value: // outbound_interface_value
5206 case symbol_kind::S_db_type: // db_type
5207 case symbol_kind::S_on_fail_mode: // on_fail_mode
5208 case symbol_kind::S_hr_mode: // hr_mode
5209 case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value
5210 value.copy< ElementPtr > (YY_MOVE (that.value));
5211 break;
5212
5213 case symbol_kind::S_BOOLEAN: // "boolean"
5214 value.copy< bool > (YY_MOVE (that.value));
5215 break;
5216
5217 case symbol_kind::S_FLOAT: // "floating point"
5218 value.copy< double > (YY_MOVE (that.value));
5219 break;
5220
5221 case symbol_kind::S_INTEGER: // "integer"
5222 value.copy< int64_t > (YY_MOVE (that.value));
5223 break;
5224
5225 case symbol_kind::S_STRING: // "constant string"
5226 value.copy< std::string > (YY_MOVE (that.value));
5227 break;
5228
5229 default:
5230 break;
5231 }
5232
5233 }
5234
5235
5236
5237 template <typename Base>
5240 {
5241 return this->kind ();
5242 }
5243
5244 template <typename Base>
5245 bool
5247 {
5248 return this->kind () == symbol_kind::S_YYEMPTY;
5249 }
5250
5251 template <typename Base>
5252 void
5254 {
5255 super_type::move (s);
5256 switch (this->kind ())
5257 {
5258 case symbol_kind::S_value: // value
5259 case symbol_kind::S_map_value: // map_value
5260 case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value
5261 case symbol_kind::S_socket_type: // socket_type
5262 case symbol_kind::S_outbound_interface_value: // outbound_interface_value
5263 case symbol_kind::S_db_type: // db_type
5264 case symbol_kind::S_on_fail_mode: // on_fail_mode
5265 case symbol_kind::S_hr_mode: // hr_mode
5266 case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value
5267 value.move< ElementPtr > (YY_MOVE (s.value));
5268 break;
5269
5270 case symbol_kind::S_BOOLEAN: // "boolean"
5271 value.move< bool > (YY_MOVE (s.value));
5272 break;
5273
5274 case symbol_kind::S_FLOAT: // "floating point"
5275 value.move< double > (YY_MOVE (s.value));
5276 break;
5277
5278 case symbol_kind::S_INTEGER: // "integer"
5279 value.move< int64_t > (YY_MOVE (s.value));
5280 break;
5281
5282 case symbol_kind::S_STRING: // "constant string"
5283 value.move< std::string > (YY_MOVE (s.value));
5284 break;
5285
5286 default:
5287 break;
5288 }
5289
5290 location = YY_MOVE (s.location);
5291 }
5292
5293 // by_kind.
5294 inline
5296 : kind_ (symbol_kind::S_YYEMPTY)
5297 {}
5298
5299#if 201103L <= YY_CPLUSPLUS
5300 inline
5302 : kind_ (that.kind_)
5303 {
5304 that.clear ();
5305 }
5306#endif
5307
5308 inline
5310 : kind_ (that.kind_)
5311 {}
5312
5313 inline
5315 : kind_ (yytranslate_ (t))
5316 {}
5317
5318 inline
5319 void
5321 {
5322 kind_ = symbol_kind::S_YYEMPTY;
5323 }
5324
5325 inline
5326 void
5328 {
5329 kind_ = that.kind_;
5330 that.clear ();
5331 }
5332
5333 inline
5336 {
5337 return kind_;
5338 }
5339
5340 inline
5343 {
5344 return this->kind ();
5345 }
5346
5347#line 14 "dhcp4_parser.yy"
5348} } // isc::dhcp
5349#line 5350 "dhcp4_parser.h"
5350
5351
5352
5353
5354#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
A buffer to store and retrieve objects.
Definition: dhcp4_parser.h:219
T & emplace(const T &t)
Instantiate a T in here from t.
Definition: dhcp4_parser.h:278
T & build(const T &t)
Instantiate a T in here from t.
Definition: dhcp4_parser.h:300
long double yyalign_me
Strongest alignment constraints.
Definition: dhcp4_parser.h:448
void copy(const self_type &that)
Copy the content of that to this.
Definition: dhcp4_parser.h:374
semantic_type(YY_RVREF(T) t)
Construct and fill.
Definition: dhcp4_parser.h:232
void destroy()
Destroy the stored T.
Definition: dhcp4_parser.h:382
semantic_type() YY_NOEXCEPT
Empty construction.
Definition: dhcp4_parser.h:225
char yyraw[size]
A buffer large enough to store any of the semantic values.
Definition: dhcp4_parser.h:450
T & emplace()
Instantiate an empty T in here.
Definition: dhcp4_parser.h:267
void move(self_type &that)
Move the content of that to this.
Definition: dhcp4_parser.h:349
const T & as() const YY_NOEXCEPT
Const accessor to a built T (for printer).
Definition: dhcp4_parser.h:319
T & as() YY_NOEXCEPT
Accessor to a built T.
Definition: dhcp4_parser.h:308
T & build()
Instantiate an empty T in here.
Definition: dhcp4_parser.h:291
~semantic_type() YY_NOEXCEPT
Destruction, allowed only if empty.
Definition: dhcp4_parser.h:247
void swap(self_type &that) YY_NOEXCEPT
Swap the content with that, of same type.
Definition: dhcp4_parser.h:337
semantic_type self_type
Type of *this.
Definition: dhcp4_parser.h:222
Present a slice of the top of a stack.
slice(const stack &stack, index_type range)
A Bison parser.
Definition: dhcp4_parser.h:210
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:700
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)
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:461
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)
token::yytokentype token_kind_type
Token kind, as returned by yylex.
Definition: dhcp4_parser.h:697
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)
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.
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_CAST(Type, Val)
Definition: dhcp4_parser.h:172
#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)
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()
Default constructor.
basic_symbol(typename Base::kind_type t, const int64_t &v, const location_type &l)
semantic_type value
The semantic value.
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.
by_kind()
Default constructor.
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.
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.
Syntax errors thrown from user actions.
Definition: dhcp4_parser.h:465
~syntax_error() YY_NOEXCEPT YY_NOTHROW
syntax_error(const syntax_error &s)
Definition: dhcp4_parser.h:471
syntax_error(const location_type &l, const std::string &m)
Definition: dhcp4_parser.h:466
token_kind_type yytokentype
Backward compatibility alias (Bison 3.6).
Definition: dhcp4_parser.h:693