Kea 2.0.0
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_PARKED_PACKET_LIMIT = 354, // "parked-packet-limit"
587 TOKEN_SHARED_NETWORKS = 355, // "shared-networks"
588 TOKEN_POOLS = 356, // "pools"
589 TOKEN_POOL = 357, // "pool"
590 TOKEN_USER_CONTEXT = 358, // "user-context"
591 TOKEN_COMMENT = 359, // "comment"
592 TOKEN_SUBNET = 360, // "subnet"
593 TOKEN_INTERFACE = 361, // "interface"
594 TOKEN_ID = 362, // "id"
595 TOKEN_RESERVATION_MODE = 363, // "reservation-mode"
596 TOKEN_DISABLED = 364, // "disabled"
597 TOKEN_OUT_OF_POOL = 365, // "out-of-pool"
598 TOKEN_GLOBAL = 366, // "global"
599 TOKEN_ALL = 367, // "all"
600 TOKEN_RESERVATIONS_GLOBAL = 368, // "reservations-global"
601 TOKEN_RESERVATIONS_IN_SUBNET = 369, // "reservations-in-subnet"
602 TOKEN_RESERVATIONS_OUT_OF_POOL = 370, // "reservations-out-of-pool"
603 TOKEN_HOST_RESERVATION_IDENTIFIERS = 371, // "host-reservation-identifiers"
604 TOKEN_CLIENT_CLASSES = 372, // "client-classes"
605 TOKEN_REQUIRE_CLIENT_CLASSES = 373, // "require-client-classes"
606 TOKEN_TEST = 374, // "test"
607 TOKEN_ONLY_IF_REQUIRED = 375, // "only-if-required"
608 TOKEN_CLIENT_CLASS = 376, // "client-class"
609 TOKEN_RESERVATIONS = 377, // "reservations"
610 TOKEN_DUID = 378, // "duid"
611 TOKEN_HW_ADDRESS = 379, // "hw-address"
612 TOKEN_CIRCUIT_ID = 380, // "circuit-id"
613 TOKEN_CLIENT_ID = 381, // "client-id"
614 TOKEN_HOSTNAME = 382, // "hostname"
615 TOKEN_FLEX_ID = 383, // "flex-id"
616 TOKEN_RELAY = 384, // "relay"
617 TOKEN_IP_ADDRESS = 385, // "ip-address"
618 TOKEN_IP_ADDRESSES = 386, // "ip-addresses"
619 TOKEN_HOOKS_LIBRARIES = 387, // "hooks-libraries"
620 TOKEN_LIBRARY = 388, // "library"
621 TOKEN_PARAMETERS = 389, // "parameters"
622 TOKEN_EXPIRED_LEASES_PROCESSING = 390, // "expired-leases-processing"
623 TOKEN_RECLAIM_TIMER_WAIT_TIME = 391, // "reclaim-timer-wait-time"
624 TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 392, // "flush-reclaimed-timer-wait-time"
625 TOKEN_HOLD_RECLAIMED_TIME = 393, // "hold-reclaimed-time"
626 TOKEN_MAX_RECLAIM_LEASES = 394, // "max-reclaim-leases"
627 TOKEN_MAX_RECLAIM_TIME = 395, // "max-reclaim-time"
628 TOKEN_UNWARNED_RECLAIM_CYCLES = 396, // "unwarned-reclaim-cycles"
629 TOKEN_DHCP4O6_PORT = 397, // "dhcp4o6-port"
630 TOKEN_DHCP_MULTI_THREADING = 398, // "multi-threading"
631 TOKEN_ENABLE_MULTI_THREADING = 399, // "enable-multi-threading"
632 TOKEN_THREAD_POOL_SIZE = 400, // "thread-pool-size"
633 TOKEN_PACKET_QUEUE_SIZE = 401, // "packet-queue-size"
634 TOKEN_CONTROL_SOCKET = 402, // "control-socket"
635 TOKEN_SOCKET_TYPE = 403, // "socket-type"
636 TOKEN_SOCKET_NAME = 404, // "socket-name"
637 TOKEN_DHCP_QUEUE_CONTROL = 405, // "dhcp-queue-control"
638 TOKEN_ENABLE_QUEUE = 406, // "enable-queue"
639 TOKEN_QUEUE_TYPE = 407, // "queue-type"
640 TOKEN_CAPACITY = 408, // "capacity"
641 TOKEN_DHCP_DDNS = 409, // "dhcp-ddns"
642 TOKEN_ENABLE_UPDATES = 410, // "enable-updates"
643 TOKEN_QUALIFYING_SUFFIX = 411, // "qualifying-suffix"
644 TOKEN_SERVER_IP = 412, // "server-ip"
645 TOKEN_SERVER_PORT = 413, // "server-port"
646 TOKEN_SENDER_IP = 414, // "sender-ip"
647 TOKEN_SENDER_PORT = 415, // "sender-port"
648 TOKEN_MAX_QUEUE_SIZE = 416, // "max-queue-size"
649 TOKEN_NCR_PROTOCOL = 417, // "ncr-protocol"
650 TOKEN_NCR_FORMAT = 418, // "ncr-format"
651 TOKEN_OVERRIDE_NO_UPDATE = 419, // "override-no-update"
652 TOKEN_OVERRIDE_CLIENT_UPDATE = 420, // "override-client-update"
653 TOKEN_REPLACE_CLIENT_NAME = 421, // "replace-client-name"
654 TOKEN_GENERATED_PREFIX = 422, // "generated-prefix"
655 TOKEN_TCP = 423, // "tcp"
656 TOKEN_JSON = 424, // "JSON"
657 TOKEN_WHEN_PRESENT = 425, // "when-present"
658 TOKEN_NEVER = 426, // "never"
659 TOKEN_ALWAYS = 427, // "always"
660 TOKEN_WHEN_NOT_PRESENT = 428, // "when-not-present"
661 TOKEN_HOSTNAME_CHAR_SET = 429, // "hostname-char-set"
662 TOKEN_HOSTNAME_CHAR_REPLACEMENT = 430, // "hostname-char-replacement"
663 TOKEN_IP_RESERVATIONS_UNIQUE = 431, // "ip-reservations-unique"
664 TOKEN_LOGGERS = 432, // "loggers"
665 TOKEN_OUTPUT_OPTIONS = 433, // "output_options"
666 TOKEN_OUTPUT = 434, // "output"
667 TOKEN_DEBUGLEVEL = 435, // "debuglevel"
668 TOKEN_SEVERITY = 436, // "severity"
669 TOKEN_FLUSH = 437, // "flush"
670 TOKEN_MAXSIZE = 438, // "maxsize"
671 TOKEN_MAXVER = 439, // "maxver"
672 TOKEN_PATTERN = 440, // "pattern"
673 TOKEN_COMPATIBILITY = 441, // "compatibility"
674 TOKEN_LENIENT_OPTION_PARSING = 442, // "lenient-option-parsing"
675 TOKEN_TOPLEVEL_JSON = 443, // TOPLEVEL_JSON
676 TOKEN_TOPLEVEL_DHCP4 = 444, // TOPLEVEL_DHCP4
677 TOKEN_SUB_DHCP4 = 445, // SUB_DHCP4
678 TOKEN_SUB_INTERFACES4 = 446, // SUB_INTERFACES4
679 TOKEN_SUB_SUBNET4 = 447, // SUB_SUBNET4
680 TOKEN_SUB_POOL4 = 448, // SUB_POOL4
681 TOKEN_SUB_RESERVATION = 449, // SUB_RESERVATION
682 TOKEN_SUB_OPTION_DEFS = 450, // SUB_OPTION_DEFS
683 TOKEN_SUB_OPTION_DEF = 451, // SUB_OPTION_DEF
684 TOKEN_SUB_OPTION_DATA = 452, // SUB_OPTION_DATA
685 TOKEN_SUB_HOOKS_LIBRARY = 453, // SUB_HOOKS_LIBRARY
686 TOKEN_SUB_DHCP_DDNS = 454, // SUB_DHCP_DDNS
687 TOKEN_SUB_CONFIG_CONTROL = 455, // SUB_CONFIG_CONTROL
688 TOKEN_STRING = 456, // "constant string"
689 TOKEN_INTEGER = 457, // "integer"
690 TOKEN_FLOAT = 458, // "floating point"
691 TOKEN_BOOLEAN = 459 // "boolean"
692 };
695 };
696
699
702
705 {
707 {
708 YYNTOKENS = 205,
709 S_YYEMPTY = -2,
710 S_YYEOF = 0, // "end of file"
711 S_YYerror = 1, // error
712 S_YYUNDEF = 2, // "invalid token"
713 S_COMMA = 3, // ","
714 S_COLON = 4, // ":"
715 S_LSQUARE_BRACKET = 5, // "["
716 S_RSQUARE_BRACKET = 6, // "]"
717 S_LCURLY_BRACKET = 7, // "{"
718 S_RCURLY_BRACKET = 8, // "}"
719 S_NULL_TYPE = 9, // "null"
720 S_DHCP4 = 10, // "Dhcp4"
721 S_CONFIG_CONTROL = 11, // "config-control"
722 S_CONFIG_DATABASES = 12, // "config-databases"
723 S_CONFIG_FETCH_WAIT_TIME = 13, // "config-fetch-wait-time"
724 S_INTERFACES_CONFIG = 14, // "interfaces-config"
725 S_INTERFACES = 15, // "interfaces"
726 S_DHCP_SOCKET_TYPE = 16, // "dhcp-socket-type"
727 S_RAW = 17, // "raw"
728 S_UDP = 18, // "udp"
729 S_OUTBOUND_INTERFACE = 19, // "outbound-interface"
730 S_SAME_AS_INBOUND = 20, // "same-as-inbound"
731 S_USE_ROUTING = 21, // "use-routing"
732 S_RE_DETECT = 22, // "re-detect"
733 S_SANITY_CHECKS = 23, // "sanity-checks"
734 S_LEASE_CHECKS = 24, // "lease-checks"
735 S_ECHO_CLIENT_ID = 25, // "echo-client-id"
736 S_MATCH_CLIENT_ID = 26, // "match-client-id"
737 S_AUTHORITATIVE = 27, // "authoritative"
738 S_NEXT_SERVER = 28, // "next-server"
739 S_SERVER_HOSTNAME = 29, // "server-hostname"
740 S_BOOT_FILE_NAME = 30, // "boot-file-name"
741 S_LEASE_DATABASE = 31, // "lease-database"
742 S_HOSTS_DATABASE = 32, // "hosts-database"
743 S_HOSTS_DATABASES = 33, // "hosts-databases"
744 S_TYPE = 34, // "type"
745 S_MEMFILE = 35, // "memfile"
746 S_MYSQL = 36, // "mysql"
747 S_POSTGRESQL = 37, // "postgresql"
748 S_CQL = 38, // "cql"
749 S_USER = 39, // "user"
750 S_PASSWORD = 40, // "password"
751 S_HOST = 41, // "host"
752 S_PORT = 42, // "port"
753 S_PERSIST = 43, // "persist"
754 S_LFC_INTERVAL = 44, // "lfc-interval"
755 S_READONLY = 45, // "readonly"
756 S_CONNECT_TIMEOUT = 46, // "connect-timeout"
757 S_CONTACT_POINTS = 47, // "contact-points"
758 S_KEYSPACE = 48, // "keyspace"
759 S_CONSISTENCY = 49, // "consistency"
760 S_SERIAL_CONSISTENCY = 50, // "serial-consistency"
761 S_MAX_RECONNECT_TRIES = 51, // "max-reconnect-tries"
762 S_RECONNECT_WAIT_TIME = 52, // "reconnect-wait-time"
763 S_ON_FAIL = 53, // "on-fail"
764 S_STOP_RETRY_EXIT = 54, // "stop-retry-exit"
765 S_SERVE_RETRY_EXIT = 55, // "serve-retry-exit"
766 S_SERVE_RETRY_CONTINUE = 56, // "serve-retry-continue"
767 S_REQUEST_TIMEOUT = 57, // "request-timeout"
768 S_TCP_KEEPALIVE = 58, // "tcp-keepalive"
769 S_TCP_NODELAY = 59, // "tcp-nodelay"
770 S_MAX_ROW_ERRORS = 60, // "max-row-errors"
771 S_VALID_LIFETIME = 61, // "valid-lifetime"
772 S_MIN_VALID_LIFETIME = 62, // "min-valid-lifetime"
773 S_MAX_VALID_LIFETIME = 63, // "max-valid-lifetime"
774 S_RENEW_TIMER = 64, // "renew-timer"
775 S_REBIND_TIMER = 65, // "rebind-timer"
776 S_CALCULATE_TEE_TIMES = 66, // "calculate-tee-times"
777 S_T1_PERCENT = 67, // "t1-percent"
778 S_T2_PERCENT = 68, // "t2-percent"
779 S_CACHE_THRESHOLD = 69, // "cache-threshold"
780 S_CACHE_MAX_AGE = 70, // "cache-max-age"
781 S_DECLINE_PROBATION_PERIOD = 71, // "decline-probation-period"
782 S_SERVER_TAG = 72, // "server-tag"
783 S_STATISTIC_DEFAULT_SAMPLE_COUNT = 73, // "statistic-default-sample-count"
784 S_STATISTIC_DEFAULT_SAMPLE_AGE = 74, // "statistic-default-sample-age"
785 S_DDNS_SEND_UPDATES = 75, // "ddns-send-updates"
786 S_DDNS_OVERRIDE_NO_UPDATE = 76, // "ddns-override-no-update"
787 S_DDNS_OVERRIDE_CLIENT_UPDATE = 77, // "ddns-override-client-update"
788 S_DDNS_REPLACE_CLIENT_NAME = 78, // "ddns-replace-client-name"
789 S_DDNS_GENERATED_PREFIX = 79, // "ddns-generated-prefix"
790 S_DDNS_QUALIFYING_SUFFIX = 80, // "ddns-qualifying-suffix"
791 S_DDNS_UPDATE_ON_RENEW = 81, // "ddns-update-on-renew"
792 S_DDNS_USE_CONFLICT_RESOLUTION = 82, // "ddns-use-conflict-resolution"
793 S_STORE_EXTENDED_INFO = 83, // "store-extended-info"
794 S_SUBNET4 = 84, // "subnet4"
795 S_SUBNET_4O6_INTERFACE = 85, // "4o6-interface"
796 S_SUBNET_4O6_INTERFACE_ID = 86, // "4o6-interface-id"
797 S_SUBNET_4O6_SUBNET = 87, // "4o6-subnet"
798 S_OPTION_DEF = 88, // "option-def"
799 S_OPTION_DATA = 89, // "option-data"
800 S_NAME = 90, // "name"
801 S_DATA = 91, // "data"
802 S_CODE = 92, // "code"
803 S_SPACE = 93, // "space"
804 S_CSV_FORMAT = 94, // "csv-format"
805 S_ALWAYS_SEND = 95, // "always-send"
806 S_RECORD_TYPES = 96, // "record-types"
807 S_ENCAPSULATE = 97, // "encapsulate"
808 S_ARRAY = 98, // "array"
809 S_PARKED_PACKET_LIMIT = 99, // "parked-packet-limit"
810 S_SHARED_NETWORKS = 100, // "shared-networks"
811 S_POOLS = 101, // "pools"
812 S_POOL = 102, // "pool"
813 S_USER_CONTEXT = 103, // "user-context"
814 S_COMMENT = 104, // "comment"
815 S_SUBNET = 105, // "subnet"
816 S_INTERFACE = 106, // "interface"
817 S_ID = 107, // "id"
818 S_RESERVATION_MODE = 108, // "reservation-mode"
819 S_DISABLED = 109, // "disabled"
820 S_OUT_OF_POOL = 110, // "out-of-pool"
821 S_GLOBAL = 111, // "global"
822 S_ALL = 112, // "all"
823 S_RESERVATIONS_GLOBAL = 113, // "reservations-global"
824 S_RESERVATIONS_IN_SUBNET = 114, // "reservations-in-subnet"
825 S_RESERVATIONS_OUT_OF_POOL = 115, // "reservations-out-of-pool"
826 S_HOST_RESERVATION_IDENTIFIERS = 116, // "host-reservation-identifiers"
827 S_CLIENT_CLASSES = 117, // "client-classes"
828 S_REQUIRE_CLIENT_CLASSES = 118, // "require-client-classes"
829 S_TEST = 119, // "test"
830 S_ONLY_IF_REQUIRED = 120, // "only-if-required"
831 S_CLIENT_CLASS = 121, // "client-class"
832 S_RESERVATIONS = 122, // "reservations"
833 S_DUID = 123, // "duid"
834 S_HW_ADDRESS = 124, // "hw-address"
835 S_CIRCUIT_ID = 125, // "circuit-id"
836 S_CLIENT_ID = 126, // "client-id"
837 S_HOSTNAME = 127, // "hostname"
838 S_FLEX_ID = 128, // "flex-id"
839 S_RELAY = 129, // "relay"
840 S_IP_ADDRESS = 130, // "ip-address"
841 S_IP_ADDRESSES = 131, // "ip-addresses"
842 S_HOOKS_LIBRARIES = 132, // "hooks-libraries"
843 S_LIBRARY = 133, // "library"
844 S_PARAMETERS = 134, // "parameters"
845 S_EXPIRED_LEASES_PROCESSING = 135, // "expired-leases-processing"
846 S_RECLAIM_TIMER_WAIT_TIME = 136, // "reclaim-timer-wait-time"
847 S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 137, // "flush-reclaimed-timer-wait-time"
848 S_HOLD_RECLAIMED_TIME = 138, // "hold-reclaimed-time"
849 S_MAX_RECLAIM_LEASES = 139, // "max-reclaim-leases"
850 S_MAX_RECLAIM_TIME = 140, // "max-reclaim-time"
851 S_UNWARNED_RECLAIM_CYCLES = 141, // "unwarned-reclaim-cycles"
852 S_DHCP4O6_PORT = 142, // "dhcp4o6-port"
853 S_DHCP_MULTI_THREADING = 143, // "multi-threading"
854 S_ENABLE_MULTI_THREADING = 144, // "enable-multi-threading"
855 S_THREAD_POOL_SIZE = 145, // "thread-pool-size"
856 S_PACKET_QUEUE_SIZE = 146, // "packet-queue-size"
857 S_CONTROL_SOCKET = 147, // "control-socket"
858 S_SOCKET_TYPE = 148, // "socket-type"
859 S_SOCKET_NAME = 149, // "socket-name"
860 S_DHCP_QUEUE_CONTROL = 150, // "dhcp-queue-control"
861 S_ENABLE_QUEUE = 151, // "enable-queue"
862 S_QUEUE_TYPE = 152, // "queue-type"
863 S_CAPACITY = 153, // "capacity"
864 S_DHCP_DDNS = 154, // "dhcp-ddns"
865 S_ENABLE_UPDATES = 155, // "enable-updates"
866 S_QUALIFYING_SUFFIX = 156, // "qualifying-suffix"
867 S_SERVER_IP = 157, // "server-ip"
868 S_SERVER_PORT = 158, // "server-port"
869 S_SENDER_IP = 159, // "sender-ip"
870 S_SENDER_PORT = 160, // "sender-port"
871 S_MAX_QUEUE_SIZE = 161, // "max-queue-size"
872 S_NCR_PROTOCOL = 162, // "ncr-protocol"
873 S_NCR_FORMAT = 163, // "ncr-format"
874 S_OVERRIDE_NO_UPDATE = 164, // "override-no-update"
875 S_OVERRIDE_CLIENT_UPDATE = 165, // "override-client-update"
876 S_REPLACE_CLIENT_NAME = 166, // "replace-client-name"
877 S_GENERATED_PREFIX = 167, // "generated-prefix"
878 S_TCP = 168, // "tcp"
879 S_JSON = 169, // "JSON"
880 S_WHEN_PRESENT = 170, // "when-present"
881 S_NEVER = 171, // "never"
882 S_ALWAYS = 172, // "always"
883 S_WHEN_NOT_PRESENT = 173, // "when-not-present"
884 S_HOSTNAME_CHAR_SET = 174, // "hostname-char-set"
885 S_HOSTNAME_CHAR_REPLACEMENT = 175, // "hostname-char-replacement"
886 S_IP_RESERVATIONS_UNIQUE = 176, // "ip-reservations-unique"
887 S_LOGGERS = 177, // "loggers"
888 S_OUTPUT_OPTIONS = 178, // "output_options"
889 S_OUTPUT = 179, // "output"
890 S_DEBUGLEVEL = 180, // "debuglevel"
891 S_SEVERITY = 181, // "severity"
892 S_FLUSH = 182, // "flush"
893 S_MAXSIZE = 183, // "maxsize"
894 S_MAXVER = 184, // "maxver"
895 S_PATTERN = 185, // "pattern"
896 S_COMPATIBILITY = 186, // "compatibility"
897 S_LENIENT_OPTION_PARSING = 187, // "lenient-option-parsing"
898 S_TOPLEVEL_JSON = 188, // TOPLEVEL_JSON
899 S_TOPLEVEL_DHCP4 = 189, // TOPLEVEL_DHCP4
900 S_SUB_DHCP4 = 190, // SUB_DHCP4
901 S_SUB_INTERFACES4 = 191, // SUB_INTERFACES4
902 S_SUB_SUBNET4 = 192, // SUB_SUBNET4
903 S_SUB_POOL4 = 193, // SUB_POOL4
904 S_SUB_RESERVATION = 194, // SUB_RESERVATION
905 S_SUB_OPTION_DEFS = 195, // SUB_OPTION_DEFS
906 S_SUB_OPTION_DEF = 196, // SUB_OPTION_DEF
907 S_SUB_OPTION_DATA = 197, // SUB_OPTION_DATA
908 S_SUB_HOOKS_LIBRARY = 198, // SUB_HOOKS_LIBRARY
909 S_SUB_DHCP_DDNS = 199, // SUB_DHCP_DDNS
910 S_SUB_CONFIG_CONTROL = 200, // SUB_CONFIG_CONTROL
911 S_STRING = 201, // "constant string"
912 S_INTEGER = 202, // "integer"
913 S_FLOAT = 203, // "floating point"
914 S_BOOLEAN = 204, // "boolean"
915 S_YYACCEPT = 205, // $accept
916 S_start = 206, // start
917 S_207_1 = 207, // $@1
918 S_208_2 = 208, // $@2
919 S_209_3 = 209, // $@3
920 S_210_4 = 210, // $@4
921 S_211_5 = 211, // $@5
922 S_212_6 = 212, // $@6
923 S_213_7 = 213, // $@7
924 S_214_8 = 214, // $@8
925 S_215_9 = 215, // $@9
926 S_216_10 = 216, // $@10
927 S_217_11 = 217, // $@11
928 S_218_12 = 218, // $@12
929 S_219_13 = 219, // $@13
930 S_value = 220, // value
931 S_sub_json = 221, // sub_json
932 S_map2 = 222, // map2
933 S_223_14 = 223, // $@14
934 S_map_value = 224, // map_value
935 S_map_content = 225, // map_content
936 S_not_empty_map = 226, // not_empty_map
937 S_list_generic = 227, // list_generic
938 S_228_15 = 228, // $@15
939 S_list_content = 229, // list_content
940 S_not_empty_list = 230, // not_empty_list
941 S_list_strings = 231, // list_strings
942 S_232_16 = 232, // $@16
943 S_list_strings_content = 233, // list_strings_content
944 S_not_empty_list_strings = 234, // not_empty_list_strings
945 S_unknown_map_entry = 235, // unknown_map_entry
946 S_syntax_map = 236, // syntax_map
947 S_237_17 = 237, // $@17
948 S_global_object = 238, // global_object
949 S_239_18 = 239, // $@18
950 S_sub_dhcp4 = 240, // sub_dhcp4
951 S_241_19 = 241, // $@19
952 S_global_params = 242, // global_params
953 S_global_param = 243, // global_param
954 S_valid_lifetime = 244, // valid_lifetime
955 S_min_valid_lifetime = 245, // min_valid_lifetime
956 S_max_valid_lifetime = 246, // max_valid_lifetime
957 S_renew_timer = 247, // renew_timer
958 S_rebind_timer = 248, // rebind_timer
959 S_calculate_tee_times = 249, // calculate_tee_times
960 S_t1_percent = 250, // t1_percent
961 S_t2_percent = 251, // t2_percent
962 S_cache_threshold = 252, // cache_threshold
963 S_cache_max_age = 253, // cache_max_age
964 S_decline_probation_period = 254, // decline_probation_period
965 S_server_tag = 255, // server_tag
966 S_256_20 = 256, // $@20
967 S_parked_packet_limit = 257, // parked_packet_limit
968 S_echo_client_id = 258, // echo_client_id
969 S_match_client_id = 259, // match_client_id
970 S_authoritative = 260, // authoritative
971 S_ddns_send_updates = 261, // ddns_send_updates
972 S_ddns_override_no_update = 262, // ddns_override_no_update
973 S_ddns_override_client_update = 263, // ddns_override_client_update
974 S_ddns_replace_client_name = 264, // ddns_replace_client_name
975 S_265_21 = 265, // $@21
976 S_ddns_replace_client_name_value = 266, // ddns_replace_client_name_value
977 S_ddns_generated_prefix = 267, // ddns_generated_prefix
978 S_268_22 = 268, // $@22
979 S_ddns_qualifying_suffix = 269, // ddns_qualifying_suffix
980 S_270_23 = 270, // $@23
981 S_ddns_update_on_renew = 271, // ddns_update_on_renew
982 S_ddns_use_conflict_resolution = 272, // ddns_use_conflict_resolution
983 S_hostname_char_set = 273, // hostname_char_set
984 S_274_24 = 274, // $@24
985 S_hostname_char_replacement = 275, // hostname_char_replacement
986 S_276_25 = 276, // $@25
987 S_store_extended_info = 277, // store_extended_info
988 S_statistic_default_sample_count = 278, // statistic_default_sample_count
989 S_statistic_default_sample_age = 279, // statistic_default_sample_age
990 S_ip_reservations_unique = 280, // ip_reservations_unique
991 S_interfaces_config = 281, // interfaces_config
992 S_282_26 = 282, // $@26
993 S_interfaces_config_params = 283, // interfaces_config_params
994 S_interfaces_config_param = 284, // interfaces_config_param
995 S_sub_interfaces4 = 285, // sub_interfaces4
996 S_286_27 = 286, // $@27
997 S_interfaces_list = 287, // interfaces_list
998 S_288_28 = 288, // $@28
999 S_dhcp_socket_type = 289, // dhcp_socket_type
1000 S_290_29 = 290, // $@29
1001 S_socket_type = 291, // socket_type
1002 S_outbound_interface = 292, // outbound_interface
1003 S_293_30 = 293, // $@30
1004 S_outbound_interface_value = 294, // outbound_interface_value
1005 S_re_detect = 295, // re_detect
1006 S_lease_database = 296, // lease_database
1007 S_297_31 = 297, // $@31
1008 S_sanity_checks = 298, // sanity_checks
1009 S_299_32 = 299, // $@32
1010 S_sanity_checks_params = 300, // sanity_checks_params
1011 S_sanity_checks_param = 301, // sanity_checks_param
1012 S_lease_checks = 302, // lease_checks
1013 S_303_33 = 303, // $@33
1014 S_hosts_database = 304, // hosts_database
1015 S_305_34 = 305, // $@34
1016 S_hosts_databases = 306, // hosts_databases
1017 S_307_35 = 307, // $@35
1018 S_database_list = 308, // database_list
1019 S_not_empty_database_list = 309, // not_empty_database_list
1020 S_database = 310, // database
1021 S_311_36 = 311, // $@36
1022 S_database_map_params = 312, // database_map_params
1023 S_database_map_param = 313, // database_map_param
1024 S_database_type = 314, // database_type
1025 S_315_37 = 315, // $@37
1026 S_db_type = 316, // db_type
1027 S_user = 317, // user
1028 S_318_38 = 318, // $@38
1029 S_password = 319, // password
1030 S_320_39 = 320, // $@39
1031 S_host = 321, // host
1032 S_322_40 = 322, // $@40
1033 S_port = 323, // port
1034 S_name = 324, // name
1035 S_325_41 = 325, // $@41
1036 S_persist = 326, // persist
1037 S_lfc_interval = 327, // lfc_interval
1038 S_readonly = 328, // readonly
1039 S_connect_timeout = 329, // connect_timeout
1040 S_request_timeout = 330, // request_timeout
1041 S_tcp_keepalive = 331, // tcp_keepalive
1042 S_tcp_nodelay = 332, // tcp_nodelay
1043 S_contact_points = 333, // contact_points
1044 S_334_42 = 334, // $@42
1045 S_keyspace = 335, // keyspace
1046 S_336_43 = 336, // $@43
1047 S_consistency = 337, // consistency
1048 S_338_44 = 338, // $@44
1049 S_serial_consistency = 339, // serial_consistency
1050 S_340_45 = 340, // $@45
1051 S_max_reconnect_tries = 341, // max_reconnect_tries
1052 S_reconnect_wait_time = 342, // reconnect_wait_time
1053 S_on_fail = 343, // on_fail
1054 S_344_46 = 344, // $@46
1055 S_on_fail_mode = 345, // on_fail_mode
1056 S_max_row_errors = 346, // max_row_errors
1057 S_host_reservation_identifiers = 347, // host_reservation_identifiers
1058 S_348_47 = 348, // $@47
1059 S_host_reservation_identifiers_list = 349, // host_reservation_identifiers_list
1060 S_host_reservation_identifier = 350, // host_reservation_identifier
1061 S_duid_id = 351, // duid_id
1062 S_hw_address_id = 352, // hw_address_id
1063 S_circuit_id = 353, // circuit_id
1064 S_client_id = 354, // client_id
1065 S_flex_id = 355, // flex_id
1066 S_dhcp_multi_threading = 356, // dhcp_multi_threading
1067 S_357_48 = 357, // $@48
1068 S_multi_threading_params = 358, // multi_threading_params
1069 S_multi_threading_param = 359, // multi_threading_param
1070 S_enable_multi_threading = 360, // enable_multi_threading
1071 S_thread_pool_size = 361, // thread_pool_size
1072 S_packet_queue_size = 362, // packet_queue_size
1073 S_hooks_libraries = 363, // hooks_libraries
1074 S_364_49 = 364, // $@49
1075 S_hooks_libraries_list = 365, // hooks_libraries_list
1076 S_not_empty_hooks_libraries_list = 366, // not_empty_hooks_libraries_list
1077 S_hooks_library = 367, // hooks_library
1078 S_368_50 = 368, // $@50
1079 S_sub_hooks_library = 369, // sub_hooks_library
1080 S_370_51 = 370, // $@51
1081 S_hooks_params = 371, // hooks_params
1082 S_hooks_param = 372, // hooks_param
1083 S_library = 373, // library
1084 S_374_52 = 374, // $@52
1085 S_parameters = 375, // parameters
1086 S_376_53 = 376, // $@53
1087 S_expired_leases_processing = 377, // expired_leases_processing
1088 S_378_54 = 378, // $@54
1089 S_expired_leases_params = 379, // expired_leases_params
1090 S_expired_leases_param = 380, // expired_leases_param
1091 S_reclaim_timer_wait_time = 381, // reclaim_timer_wait_time
1092 S_flush_reclaimed_timer_wait_time = 382, // flush_reclaimed_timer_wait_time
1093 S_hold_reclaimed_time = 383, // hold_reclaimed_time
1094 S_max_reclaim_leases = 384, // max_reclaim_leases
1095 S_max_reclaim_time = 385, // max_reclaim_time
1096 S_unwarned_reclaim_cycles = 386, // unwarned_reclaim_cycles
1097 S_subnet4_list = 387, // subnet4_list
1098 S_388_55 = 388, // $@55
1099 S_subnet4_list_content = 389, // subnet4_list_content
1100 S_not_empty_subnet4_list = 390, // not_empty_subnet4_list
1101 S_subnet4 = 391, // subnet4
1102 S_392_56 = 392, // $@56
1103 S_sub_subnet4 = 393, // sub_subnet4
1104 S_394_57 = 394, // $@57
1105 S_subnet4_params = 395, // subnet4_params
1106 S_subnet4_param = 396, // subnet4_param
1107 S_subnet = 397, // subnet
1108 S_398_58 = 398, // $@58
1109 S_subnet_4o6_interface = 399, // subnet_4o6_interface
1110 S_400_59 = 400, // $@59
1111 S_subnet_4o6_interface_id = 401, // subnet_4o6_interface_id
1112 S_402_60 = 402, // $@60
1113 S_subnet_4o6_subnet = 403, // subnet_4o6_subnet
1114 S_404_61 = 404, // $@61
1115 S_interface = 405, // interface
1116 S_406_62 = 406, // $@62
1117 S_client_class = 407, // client_class
1118 S_408_63 = 408, // $@63
1119 S_require_client_classes = 409, // require_client_classes
1120 S_410_64 = 410, // $@64
1121 S_reservations_global = 411, // reservations_global
1122 S_reservations_in_subnet = 412, // reservations_in_subnet
1123 S_reservations_out_of_pool = 413, // reservations_out_of_pool
1124 S_reservation_mode = 414, // reservation_mode
1125 S_415_65 = 415, // $@65
1126 S_hr_mode = 416, // hr_mode
1127 S_id = 417, // id
1128 S_shared_networks = 418, // shared_networks
1129 S_419_66 = 419, // $@66
1130 S_shared_networks_content = 420, // shared_networks_content
1131 S_shared_networks_list = 421, // shared_networks_list
1132 S_shared_network = 422, // shared_network
1133 S_423_67 = 423, // $@67
1134 S_shared_network_params = 424, // shared_network_params
1135 S_shared_network_param = 425, // shared_network_param
1136 S_option_def_list = 426, // option_def_list
1137 S_427_68 = 427, // $@68
1138 S_sub_option_def_list = 428, // sub_option_def_list
1139 S_429_69 = 429, // $@69
1140 S_option_def_list_content = 430, // option_def_list_content
1141 S_not_empty_option_def_list = 431, // not_empty_option_def_list
1142 S_option_def_entry = 432, // option_def_entry
1143 S_433_70 = 433, // $@70
1144 S_sub_option_def = 434, // sub_option_def
1145 S_435_71 = 435, // $@71
1146 S_option_def_params = 436, // option_def_params
1147 S_not_empty_option_def_params = 437, // not_empty_option_def_params
1148 S_option_def_param = 438, // option_def_param
1149 S_option_def_name = 439, // option_def_name
1150 S_code = 440, // code
1151 S_option_def_code = 441, // option_def_code
1152 S_option_def_type = 442, // option_def_type
1153 S_443_72 = 443, // $@72
1154 S_option_def_record_types = 444, // option_def_record_types
1155 S_445_73 = 445, // $@73
1156 S_space = 446, // space
1157 S_447_74 = 447, // $@74
1158 S_option_def_space = 448, // option_def_space
1159 S_option_def_encapsulate = 449, // option_def_encapsulate
1160 S_450_75 = 450, // $@75
1161 S_option_def_array = 451, // option_def_array
1162 S_option_data_list = 452, // option_data_list
1163 S_453_76 = 453, // $@76
1164 S_option_data_list_content = 454, // option_data_list_content
1165 S_not_empty_option_data_list = 455, // not_empty_option_data_list
1166 S_option_data_entry = 456, // option_data_entry
1167 S_457_77 = 457, // $@77
1168 S_sub_option_data = 458, // sub_option_data
1169 S_459_78 = 459, // $@78
1170 S_option_data_params = 460, // option_data_params
1171 S_not_empty_option_data_params = 461, // not_empty_option_data_params
1172 S_option_data_param = 462, // option_data_param
1173 S_option_data_name = 463, // option_data_name
1174 S_option_data_data = 464, // option_data_data
1175 S_465_79 = 465, // $@79
1176 S_option_data_code = 466, // option_data_code
1177 S_option_data_space = 467, // option_data_space
1178 S_option_data_csv_format = 468, // option_data_csv_format
1179 S_option_data_always_send = 469, // option_data_always_send
1180 S_pools_list = 470, // pools_list
1181 S_471_80 = 471, // $@80
1182 S_pools_list_content = 472, // pools_list_content
1183 S_not_empty_pools_list = 473, // not_empty_pools_list
1184 S_pool_list_entry = 474, // pool_list_entry
1185 S_475_81 = 475, // $@81
1186 S_sub_pool4 = 476, // sub_pool4
1187 S_477_82 = 477, // $@82
1188 S_pool_params = 478, // pool_params
1189 S_pool_param = 479, // pool_param
1190 S_pool_entry = 480, // pool_entry
1191 S_481_83 = 481, // $@83
1192 S_user_context = 482, // user_context
1193 S_483_84 = 483, // $@84
1194 S_comment = 484, // comment
1195 S_485_85 = 485, // $@85
1196 S_reservations = 486, // reservations
1197 S_487_86 = 487, // $@86
1198 S_reservations_list = 488, // reservations_list
1199 S_not_empty_reservations_list = 489, // not_empty_reservations_list
1200 S_reservation = 490, // reservation
1201 S_491_87 = 491, // $@87
1202 S_sub_reservation = 492, // sub_reservation
1203 S_493_88 = 493, // $@88
1204 S_reservation_params = 494, // reservation_params
1205 S_not_empty_reservation_params = 495, // not_empty_reservation_params
1206 S_reservation_param = 496, // reservation_param
1207 S_next_server = 497, // next_server
1208 S_498_89 = 498, // $@89
1209 S_server_hostname = 499, // server_hostname
1210 S_500_90 = 500, // $@90
1211 S_boot_file_name = 501, // boot_file_name
1212 S_502_91 = 502, // $@91
1213 S_ip_address = 503, // ip_address
1214 S_504_92 = 504, // $@92
1215 S_ip_addresses = 505, // ip_addresses
1216 S_506_93 = 506, // $@93
1217 S_duid = 507, // duid
1218 S_508_94 = 508, // $@94
1219 S_hw_address = 509, // hw_address
1220 S_510_95 = 510, // $@95
1221 S_client_id_value = 511, // client_id_value
1222 S_512_96 = 512, // $@96
1223 S_circuit_id_value = 513, // circuit_id_value
1224 S_514_97 = 514, // $@97
1225 S_flex_id_value = 515, // flex_id_value
1226 S_516_98 = 516, // $@98
1227 S_hostname = 517, // hostname
1228 S_518_99 = 518, // $@99
1229 S_reservation_client_classes = 519, // reservation_client_classes
1230 S_520_100 = 520, // $@100
1231 S_relay = 521, // relay
1232 S_522_101 = 522, // $@101
1233 S_relay_map = 523, // relay_map
1234 S_client_classes = 524, // client_classes
1235 S_525_102 = 525, // $@102
1236 S_client_classes_list = 526, // client_classes_list
1237 S_client_class_entry = 527, // client_class_entry
1238 S_528_103 = 528, // $@103
1239 S_client_class_params = 529, // client_class_params
1240 S_not_empty_client_class_params = 530, // not_empty_client_class_params
1241 S_client_class_param = 531, // client_class_param
1242 S_client_class_name = 532, // client_class_name
1243 S_client_class_test = 533, // client_class_test
1244 S_534_104 = 534, // $@104
1245 S_only_if_required = 535, // only_if_required
1246 S_dhcp4o6_port = 536, // dhcp4o6_port
1247 S_control_socket = 537, // control_socket
1248 S_538_105 = 538, // $@105
1249 S_control_socket_params = 539, // control_socket_params
1250 S_control_socket_param = 540, // control_socket_param
1251 S_control_socket_type = 541, // control_socket_type
1252 S_542_106 = 542, // $@106
1253 S_control_socket_name = 543, // control_socket_name
1254 S_544_107 = 544, // $@107
1255 S_dhcp_queue_control = 545, // dhcp_queue_control
1256 S_546_108 = 546, // $@108
1257 S_queue_control_params = 547, // queue_control_params
1258 S_queue_control_param = 548, // queue_control_param
1259 S_enable_queue = 549, // enable_queue
1260 S_queue_type = 550, // queue_type
1261 S_551_109 = 551, // $@109
1262 S_capacity = 552, // capacity
1263 S_arbitrary_map_entry = 553, // arbitrary_map_entry
1264 S_554_110 = 554, // $@110
1265 S_dhcp_ddns = 555, // dhcp_ddns
1266 S_556_111 = 556, // $@111
1267 S_sub_dhcp_ddns = 557, // sub_dhcp_ddns
1268 S_558_112 = 558, // $@112
1269 S_dhcp_ddns_params = 559, // dhcp_ddns_params
1270 S_dhcp_ddns_param = 560, // dhcp_ddns_param
1271 S_enable_updates = 561, // enable_updates
1272 S_server_ip = 562, // server_ip
1273 S_563_113 = 563, // $@113
1274 S_server_port = 564, // server_port
1275 S_sender_ip = 565, // sender_ip
1276 S_566_114 = 566, // $@114
1277 S_sender_port = 567, // sender_port
1278 S_max_queue_size = 568, // max_queue_size
1279 S_ncr_protocol = 569, // ncr_protocol
1280 S_570_115 = 570, // $@115
1281 S_ncr_protocol_value = 571, // ncr_protocol_value
1282 S_ncr_format = 572, // ncr_format
1283 S_573_116 = 573, // $@116
1284 S_dep_qualifying_suffix = 574, // dep_qualifying_suffix
1285 S_575_117 = 575, // $@117
1286 S_dep_override_no_update = 576, // dep_override_no_update
1287 S_dep_override_client_update = 577, // dep_override_client_update
1288 S_dep_replace_client_name = 578, // dep_replace_client_name
1289 S_579_118 = 579, // $@118
1290 S_dep_generated_prefix = 580, // dep_generated_prefix
1291 S_581_119 = 581, // $@119
1292 S_dep_hostname_char_set = 582, // dep_hostname_char_set
1293 S_583_120 = 583, // $@120
1294 S_dep_hostname_char_replacement = 584, // dep_hostname_char_replacement
1295 S_585_121 = 585, // $@121
1296 S_config_control = 586, // config_control
1297 S_587_122 = 587, // $@122
1298 S_sub_config_control = 588, // sub_config_control
1299 S_589_123 = 589, // $@123
1300 S_config_control_params = 590, // config_control_params
1301 S_config_control_param = 591, // config_control_param
1302 S_config_databases = 592, // config_databases
1303 S_593_124 = 593, // $@124
1304 S_config_fetch_wait_time = 594, // config_fetch_wait_time
1305 S_loggers = 595, // loggers
1306 S_596_125 = 596, // $@125
1307 S_loggers_entries = 597, // loggers_entries
1308 S_logger_entry = 598, // logger_entry
1309 S_599_126 = 599, // $@126
1310 S_logger_params = 600, // logger_params
1311 S_logger_param = 601, // logger_param
1312 S_debuglevel = 602, // debuglevel
1313 S_severity = 603, // severity
1314 S_604_127 = 604, // $@127
1315 S_output_options_list = 605, // output_options_list
1316 S_606_128 = 606, // $@128
1317 S_output_options_list_content = 607, // output_options_list_content
1318 S_output_entry = 608, // output_entry
1319 S_609_129 = 609, // $@129
1320 S_output_params_list = 610, // output_params_list
1321 S_output_params = 611, // output_params
1322 S_output = 612, // output
1323 S_613_130 = 613, // $@130
1324 S_flush = 614, // flush
1325 S_maxsize = 615, // maxsize
1326 S_maxver = 616, // maxver
1327 S_pattern = 617, // pattern
1328 S_618_131 = 618, // $@131
1329 S_compatibility = 619, // compatibility
1330 S_620_132 = 620, // $@132
1331 S_compatibility_params = 621, // compatibility_params
1332 S_compatibility_param = 622, // compatibility_param
1333 S_lenient_option_parsing = 623 // lenient_option_parsing
1335 };
1336
1339
1342
1349 template <typename Base>
1350 struct basic_symbol : Base
1351 {
1353 typedef Base super_type;
1354
1357 : value ()
1358 , location ()
1359 {}
1360
1361#if 201103L <= YY_CPLUSPLUS
1363 basic_symbol (basic_symbol&& that)
1364 : Base (std::move (that))
1365 , value ()
1366 , location (std::move (that.location))
1367 {
1368 switch (this->kind ())
1369 {
1370 case symbol_kind::S_value: // value
1371 case symbol_kind::S_map_value: // map_value
1372 case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value
1373 case symbol_kind::S_socket_type: // socket_type
1374 case symbol_kind::S_outbound_interface_value: // outbound_interface_value
1375 case symbol_kind::S_db_type: // db_type
1376 case symbol_kind::S_on_fail_mode: // on_fail_mode
1377 case symbol_kind::S_hr_mode: // hr_mode
1378 case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value
1379 value.move< ElementPtr > (std::move (that.value));
1380 break;
1381
1382 case symbol_kind::S_BOOLEAN: // "boolean"
1383 value.move< bool > (std::move (that.value));
1384 break;
1385
1386 case symbol_kind::S_FLOAT: // "floating point"
1387 value.move< double > (std::move (that.value));
1388 break;
1389
1390 case symbol_kind::S_INTEGER: // "integer"
1391 value.move< int64_t > (std::move (that.value));
1392 break;
1393
1394 case symbol_kind::S_STRING: // "constant string"
1395 value.move< std::string > (std::move (that.value));
1396 break;
1397
1398 default:
1399 break;
1400 }
1401
1402 }
1403#endif
1404
1406 basic_symbol (const basic_symbol& that);
1407
1409#if 201103L <= YY_CPLUSPLUS
1410 basic_symbol (typename Base::kind_type t, location_type&& l)
1411 : Base (t)
1412 , location (std::move (l))
1413 {}
1414#else
1415 basic_symbol (typename Base::kind_type t, const location_type& l)
1416 : Base (t)
1417 , location (l)
1418 {}
1419#endif
1420
1421#if 201103L <= YY_CPLUSPLUS
1422 basic_symbol (typename Base::kind_type t, ElementPtr&& v, location_type&& l)
1423 : Base (t)
1424 , value (std::move (v))
1425 , location (std::move (l))
1426 {}
1427#else
1428 basic_symbol (typename Base::kind_type t, const ElementPtr& v, const location_type& l)
1429 : Base (t)
1430 , value (v)
1431 , location (l)
1432 {}
1433#endif
1434
1435#if 201103L <= YY_CPLUSPLUS
1436 basic_symbol (typename Base::kind_type t, bool&& v, location_type&& l)
1437 : Base (t)
1438 , value (std::move (v))
1439 , location (std::move (l))
1440 {}
1441#else
1442 basic_symbol (typename Base::kind_type t, const bool& v, const location_type& l)
1443 : Base (t)
1444 , value (v)
1445 , location (l)
1446 {}
1447#endif
1448
1449#if 201103L <= YY_CPLUSPLUS
1450 basic_symbol (typename Base::kind_type t, double&& v, location_type&& l)
1451 : Base (t)
1452 , value (std::move (v))
1453 , location (std::move (l))
1454 {}
1455#else
1456 basic_symbol (typename Base::kind_type t, const double& v, const location_type& l)
1457 : Base (t)
1458 , value (v)
1459 , location (l)
1460 {}
1461#endif
1462
1463#if 201103L <= YY_CPLUSPLUS
1464 basic_symbol (typename Base::kind_type t, int64_t&& v, location_type&& l)
1465 : Base (t)
1466 , value (std::move (v))
1467 , location (std::move (l))
1468 {}
1469#else
1470 basic_symbol (typename Base::kind_type t, const int64_t& v, const location_type& l)
1471 : Base (t)
1472 , value (v)
1473 , location (l)
1474 {}
1475#endif
1476
1477#if 201103L <= YY_CPLUSPLUS
1478 basic_symbol (typename Base::kind_type t, std::string&& v, location_type&& l)
1479 : Base (t)
1480 , value (std::move (v))
1481 , location (std::move (l))
1482 {}
1483#else
1484 basic_symbol (typename Base::kind_type t, const std::string& v, const location_type& l)
1485 : Base (t)
1486 , value (v)
1487 , location (l)
1488 {}
1489#endif
1490
1493 {
1494 clear ();
1495 }
1496
1499 {
1500 // User destructor.
1501 symbol_kind_type yykind = this->kind ();
1502 basic_symbol<Base>& yysym = *this;
1503 (void) yysym;
1504 switch (yykind)
1505 {
1506 default:
1507 break;
1508 }
1509
1510 // Value type destructor.
1511switch (yykind)
1512 {
1513 case symbol_kind::S_value: // value
1514 case symbol_kind::S_map_value: // map_value
1515 case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value
1516 case symbol_kind::S_socket_type: // socket_type
1517 case symbol_kind::S_outbound_interface_value: // outbound_interface_value
1518 case symbol_kind::S_db_type: // db_type
1519 case symbol_kind::S_on_fail_mode: // on_fail_mode
1520 case symbol_kind::S_hr_mode: // hr_mode
1521 case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value
1522 value.template destroy< ElementPtr > ();
1523 break;
1524
1525 case symbol_kind::S_BOOLEAN: // "boolean"
1526 value.template destroy< bool > ();
1527 break;
1528
1529 case symbol_kind::S_FLOAT: // "floating point"
1530 value.template destroy< double > ();
1531 break;
1532
1533 case symbol_kind::S_INTEGER: // "integer"
1534 value.template destroy< int64_t > ();
1535 break;
1536
1537 case symbol_kind::S_STRING: // "constant string"
1538 value.template destroy< std::string > ();
1539 break;
1540
1541 default:
1542 break;
1543 }
1544
1545 Base::clear ();
1546 }
1547
1549 std::string name () const YY_NOEXCEPT
1550 {
1551 return Dhcp4Parser::symbol_name (this->kind ());
1552 }
1553
1555 symbol_kind_type type_get () const YY_NOEXCEPT;
1556
1558 bool empty () const YY_NOEXCEPT;
1559
1561 void move (basic_symbol& s);
1562
1565
1568
1569 private:
1570#if YY_CPLUSPLUS < 201103L
1572 basic_symbol& operator= (const basic_symbol& that);
1573#endif
1574 };
1575
1577 struct by_kind
1578 {
1580 by_kind ();
1581
1582#if 201103L <= YY_CPLUSPLUS
1584 by_kind (by_kind&& that);
1585#endif
1586
1588 by_kind (const by_kind& that);
1589
1592
1594 by_kind (kind_type t);
1595
1597 void clear () YY_NOEXCEPT;
1598
1600 void move (by_kind& that);
1601
1604 symbol_kind_type kind () const YY_NOEXCEPT;
1605
1607 symbol_kind_type type_get () const YY_NOEXCEPT;
1608
1612 };
1613
1616
1619 {
1622
1625
1627#if 201103L <= YY_CPLUSPLUS
1628 symbol_type (int tok, location_type l)
1629 : super_type(token_type (tok), std::move (l))
1630#else
1631 symbol_type (int tok, const location_type& l)
1632 : super_type(token_type (tok), l)
1633#endif
1634 {
1637 }
1638#if 201103L <= YY_CPLUSPLUS
1639 symbol_type (int tok, bool v, location_type l)
1640 : super_type(token_type (tok), std::move (v), std::move (l))
1641#else
1642 symbol_type (int tok, const bool& v, const location_type& l)
1643 : super_type(token_type (tok), v, l)
1644#endif
1645 {
1647 }
1648#if 201103L <= YY_CPLUSPLUS
1649 symbol_type (int tok, double v, location_type l)
1650 : super_type(token_type (tok), std::move (v), std::move (l))
1651#else
1652 symbol_type (int tok, const double& v, const location_type& l)
1653 : super_type(token_type (tok), v, l)
1654#endif
1655 {
1657 }
1658#if 201103L <= YY_CPLUSPLUS
1659 symbol_type (int tok, int64_t v, location_type l)
1660 : super_type(token_type (tok), std::move (v), std::move (l))
1661#else
1662 symbol_type (int tok, const int64_t& v, const location_type& l)
1663 : super_type(token_type (tok), v, l)
1664#endif
1665 {
1667 }
1668#if 201103L <= YY_CPLUSPLUS
1669 symbol_type (int tok, std::string v, location_type l)
1670 : super_type(token_type (tok), std::move (v), std::move (l))
1671#else
1672 symbol_type (int tok, const std::string& v, const location_type& l)
1673 : super_type(token_type (tok), v, l)
1674#endif
1675 {
1677 }
1678 };
1679
1682 virtual ~Dhcp4Parser ();
1683
1684#if 201103L <= YY_CPLUSPLUS
1686 Dhcp4Parser (const Dhcp4Parser&) = delete;
1688 Dhcp4Parser& operator= (const Dhcp4Parser&) = delete;
1689#endif
1690
1693 int operator() ();
1694
1697 virtual int parse ();
1698
1699#if PARSER4_DEBUG
1701 std::ostream& debug_stream () const YY_ATTRIBUTE_PURE;
1703 void set_debug_stream (std::ostream &);
1704
1706 typedef int debug_level_type;
1711#endif
1712
1716 virtual void error (const location_type& loc, const std::string& msg);
1717
1719 void error (const syntax_error& err);
1720
1723 static std::string symbol_name (symbol_kind_type yysymbol);
1724
1725 // Implementation of make_symbol for each symbol type.
1726#if 201103L <= YY_CPLUSPLUS
1727 static
1730 {
1731 return symbol_type (token::TOKEN_END, std::move (l));
1732 }
1733#else
1734 static
1735 symbol_type
1737 {
1738 return symbol_type (token::TOKEN_END, l);
1739 }
1740#endif
1741#if 201103L <= YY_CPLUSPLUS
1742 static
1743 symbol_type
1745 {
1746 return symbol_type (token::TOKEN_PARSER4_error, std::move (l));
1747 }
1748#else
1749 static
1750 symbol_type
1752 {
1754 }
1755#endif
1756#if 201103L <= YY_CPLUSPLUS
1757 static
1758 symbol_type
1760 {
1761 return symbol_type (token::TOKEN_PARSER4_UNDEF, std::move (l));
1762 }
1763#else
1764 static
1765 symbol_type
1767 {
1769 }
1770#endif
1771#if 201103L <= YY_CPLUSPLUS
1772 static
1773 symbol_type
1775 {
1776 return symbol_type (token::TOKEN_COMMA, std::move (l));
1777 }
1778#else
1779 static
1780 symbol_type
1782 {
1783 return symbol_type (token::TOKEN_COMMA, l);
1784 }
1785#endif
1786#if 201103L <= YY_CPLUSPLUS
1787 static
1788 symbol_type
1790 {
1791 return symbol_type (token::TOKEN_COLON, std::move (l));
1792 }
1793#else
1794 static
1795 symbol_type
1797 {
1798 return symbol_type (token::TOKEN_COLON, l);
1799 }
1800#endif
1801#if 201103L <= YY_CPLUSPLUS
1802 static
1803 symbol_type
1805 {
1806 return symbol_type (token::TOKEN_LSQUARE_BRACKET, std::move (l));
1807 }
1808#else
1809 static
1810 symbol_type
1812 {
1814 }
1815#endif
1816#if 201103L <= YY_CPLUSPLUS
1817 static
1818 symbol_type
1820 {
1821 return symbol_type (token::TOKEN_RSQUARE_BRACKET, std::move (l));
1822 }
1823#else
1824 static
1825 symbol_type
1827 {
1829 }
1830#endif
1831#if 201103L <= YY_CPLUSPLUS
1832 static
1833 symbol_type
1835 {
1836 return symbol_type (token::TOKEN_LCURLY_BRACKET, std::move (l));
1837 }
1838#else
1839 static
1840 symbol_type
1842 {
1844 }
1845#endif
1846#if 201103L <= YY_CPLUSPLUS
1847 static
1848 symbol_type
1850 {
1851 return symbol_type (token::TOKEN_RCURLY_BRACKET, std::move (l));
1852 }
1853#else
1854 static
1855 symbol_type
1857 {
1859 }
1860#endif
1861#if 201103L <= YY_CPLUSPLUS
1862 static
1863 symbol_type
1865 {
1866 return symbol_type (token::TOKEN_NULL_TYPE, std::move (l));
1867 }
1868#else
1869 static
1870 symbol_type
1872 {
1874 }
1875#endif
1876#if 201103L <= YY_CPLUSPLUS
1877 static
1878 symbol_type
1880 {
1881 return symbol_type (token::TOKEN_DHCP4, std::move (l));
1882 }
1883#else
1884 static
1885 symbol_type
1887 {
1888 return symbol_type (token::TOKEN_DHCP4, l);
1889 }
1890#endif
1891#if 201103L <= YY_CPLUSPLUS
1892 static
1893 symbol_type
1895 {
1896 return symbol_type (token::TOKEN_CONFIG_CONTROL, std::move (l));
1897 }
1898#else
1899 static
1900 symbol_type
1902 {
1904 }
1905#endif
1906#if 201103L <= YY_CPLUSPLUS
1907 static
1908 symbol_type
1910 {
1911 return symbol_type (token::TOKEN_CONFIG_DATABASES, std::move (l));
1912 }
1913#else
1914 static
1915 symbol_type
1917 {
1919 }
1920#endif
1921#if 201103L <= YY_CPLUSPLUS
1922 static
1923 symbol_type
1925 {
1926 return symbol_type (token::TOKEN_CONFIG_FETCH_WAIT_TIME, std::move (l));
1927 }
1928#else
1929 static
1930 symbol_type
1932 {
1934 }
1935#endif
1936#if 201103L <= YY_CPLUSPLUS
1937 static
1938 symbol_type
1940 {
1941 return symbol_type (token::TOKEN_INTERFACES_CONFIG, std::move (l));
1942 }
1943#else
1944 static
1945 symbol_type
1947 {
1949 }
1950#endif
1951#if 201103L <= YY_CPLUSPLUS
1952 static
1953 symbol_type
1955 {
1956 return symbol_type (token::TOKEN_INTERFACES, std::move (l));
1957 }
1958#else
1959 static
1960 symbol_type
1962 {
1964 }
1965#endif
1966#if 201103L <= YY_CPLUSPLUS
1967 static
1968 symbol_type
1970 {
1971 return symbol_type (token::TOKEN_DHCP_SOCKET_TYPE, std::move (l));
1972 }
1973#else
1974 static
1975 symbol_type
1977 {
1979 }
1980#endif
1981#if 201103L <= YY_CPLUSPLUS
1982 static
1983 symbol_type
1985 {
1986 return symbol_type (token::TOKEN_RAW, std::move (l));
1987 }
1988#else
1989 static
1990 symbol_type
1992 {
1993 return symbol_type (token::TOKEN_RAW, l);
1994 }
1995#endif
1996#if 201103L <= YY_CPLUSPLUS
1997 static
1998 symbol_type
2000 {
2001 return symbol_type (token::TOKEN_UDP, std::move (l));
2002 }
2003#else
2004 static
2005 symbol_type
2007 {
2008 return symbol_type (token::TOKEN_UDP, l);
2009 }
2010#endif
2011#if 201103L <= YY_CPLUSPLUS
2012 static
2013 symbol_type
2015 {
2016 return symbol_type (token::TOKEN_OUTBOUND_INTERFACE, std::move (l));
2017 }
2018#else
2019 static
2020 symbol_type
2022 {
2024 }
2025#endif
2026#if 201103L <= YY_CPLUSPLUS
2027 static
2028 symbol_type
2030 {
2031 return symbol_type (token::TOKEN_SAME_AS_INBOUND, std::move (l));
2032 }
2033#else
2034 static
2035 symbol_type
2037 {
2039 }
2040#endif
2041#if 201103L <= YY_CPLUSPLUS
2042 static
2043 symbol_type
2045 {
2046 return symbol_type (token::TOKEN_USE_ROUTING, std::move (l));
2047 }
2048#else
2049 static
2050 symbol_type
2052 {
2054 }
2055#endif
2056#if 201103L <= YY_CPLUSPLUS
2057 static
2058 symbol_type
2060 {
2061 return symbol_type (token::TOKEN_RE_DETECT, std::move (l));
2062 }
2063#else
2064 static
2065 symbol_type
2067 {
2069 }
2070#endif
2071#if 201103L <= YY_CPLUSPLUS
2072 static
2073 symbol_type
2075 {
2076 return symbol_type (token::TOKEN_SANITY_CHECKS, std::move (l));
2077 }
2078#else
2079 static
2080 symbol_type
2082 {
2084 }
2085#endif
2086#if 201103L <= YY_CPLUSPLUS
2087 static
2088 symbol_type
2090 {
2091 return symbol_type (token::TOKEN_LEASE_CHECKS, std::move (l));
2092 }
2093#else
2094 static
2095 symbol_type
2097 {
2099 }
2100#endif
2101#if 201103L <= YY_CPLUSPLUS
2102 static
2103 symbol_type
2105 {
2106 return symbol_type (token::TOKEN_ECHO_CLIENT_ID, std::move (l));
2107 }
2108#else
2109 static
2110 symbol_type
2112 {
2114 }
2115#endif
2116#if 201103L <= YY_CPLUSPLUS
2117 static
2118 symbol_type
2120 {
2121 return symbol_type (token::TOKEN_MATCH_CLIENT_ID, std::move (l));
2122 }
2123#else
2124 static
2125 symbol_type
2127 {
2129 }
2130#endif
2131#if 201103L <= YY_CPLUSPLUS
2132 static
2133 symbol_type
2135 {
2136 return symbol_type (token::TOKEN_AUTHORITATIVE, std::move (l));
2137 }
2138#else
2139 static
2140 symbol_type
2142 {
2144 }
2145#endif
2146#if 201103L <= YY_CPLUSPLUS
2147 static
2148 symbol_type
2150 {
2151 return symbol_type (token::TOKEN_NEXT_SERVER, std::move (l));
2152 }
2153#else
2154 static
2155 symbol_type
2157 {
2159 }
2160#endif
2161#if 201103L <= YY_CPLUSPLUS
2162 static
2163 symbol_type
2165 {
2166 return symbol_type (token::TOKEN_SERVER_HOSTNAME, std::move (l));
2167 }
2168#else
2169 static
2170 symbol_type
2172 {
2174 }
2175#endif
2176#if 201103L <= YY_CPLUSPLUS
2177 static
2178 symbol_type
2180 {
2181 return symbol_type (token::TOKEN_BOOT_FILE_NAME, std::move (l));
2182 }
2183#else
2184 static
2185 symbol_type
2187 {
2189 }
2190#endif
2191#if 201103L <= YY_CPLUSPLUS
2192 static
2193 symbol_type
2195 {
2196 return symbol_type (token::TOKEN_LEASE_DATABASE, std::move (l));
2197 }
2198#else
2199 static
2200 symbol_type
2202 {
2204 }
2205#endif
2206#if 201103L <= YY_CPLUSPLUS
2207 static
2208 symbol_type
2210 {
2211 return symbol_type (token::TOKEN_HOSTS_DATABASE, std::move (l));
2212 }
2213#else
2214 static
2215 symbol_type
2217 {
2219 }
2220#endif
2221#if 201103L <= YY_CPLUSPLUS
2222 static
2223 symbol_type
2225 {
2226 return symbol_type (token::TOKEN_HOSTS_DATABASES, std::move (l));
2227 }
2228#else
2229 static
2230 symbol_type
2232 {
2234 }
2235#endif
2236#if 201103L <= YY_CPLUSPLUS
2237 static
2238 symbol_type
2240 {
2241 return symbol_type (token::TOKEN_TYPE, std::move (l));
2242 }
2243#else
2244 static
2245 symbol_type
2247 {
2248 return symbol_type (token::TOKEN_TYPE, l);
2249 }
2250#endif
2251#if 201103L <= YY_CPLUSPLUS
2252 static
2253 symbol_type
2255 {
2256 return symbol_type (token::TOKEN_MEMFILE, std::move (l));
2257 }
2258#else
2259 static
2260 symbol_type
2262 {
2264 }
2265#endif
2266#if 201103L <= YY_CPLUSPLUS
2267 static
2268 symbol_type
2270 {
2271 return symbol_type (token::TOKEN_MYSQL, std::move (l));
2272 }
2273#else
2274 static
2275 symbol_type
2277 {
2278 return symbol_type (token::TOKEN_MYSQL, l);
2279 }
2280#endif
2281#if 201103L <= YY_CPLUSPLUS
2282 static
2283 symbol_type
2285 {
2286 return symbol_type (token::TOKEN_POSTGRESQL, std::move (l));
2287 }
2288#else
2289 static
2290 symbol_type
2292 {
2294 }
2295#endif
2296#if 201103L <= YY_CPLUSPLUS
2297 static
2298 symbol_type
2300 {
2301 return symbol_type (token::TOKEN_CQL, std::move (l));
2302 }
2303#else
2304 static
2305 symbol_type
2307 {
2308 return symbol_type (token::TOKEN_CQL, l);
2309 }
2310#endif
2311#if 201103L <= YY_CPLUSPLUS
2312 static
2313 symbol_type
2315 {
2316 return symbol_type (token::TOKEN_USER, std::move (l));
2317 }
2318#else
2319 static
2320 symbol_type
2322 {
2323 return symbol_type (token::TOKEN_USER, l);
2324 }
2325#endif
2326#if 201103L <= YY_CPLUSPLUS
2327 static
2328 symbol_type
2330 {
2331 return symbol_type (token::TOKEN_PASSWORD, std::move (l));
2332 }
2333#else
2334 static
2335 symbol_type
2337 {
2339 }
2340#endif
2341#if 201103L <= YY_CPLUSPLUS
2342 static
2343 symbol_type
2345 {
2346 return symbol_type (token::TOKEN_HOST, std::move (l));
2347 }
2348#else
2349 static
2350 symbol_type
2352 {
2353 return symbol_type (token::TOKEN_HOST, l);
2354 }
2355#endif
2356#if 201103L <= YY_CPLUSPLUS
2357 static
2358 symbol_type
2360 {
2361 return symbol_type (token::TOKEN_PORT, std::move (l));
2362 }
2363#else
2364 static
2365 symbol_type
2367 {
2368 return symbol_type (token::TOKEN_PORT, l);
2369 }
2370#endif
2371#if 201103L <= YY_CPLUSPLUS
2372 static
2373 symbol_type
2375 {
2376 return symbol_type (token::TOKEN_PERSIST, std::move (l));
2377 }
2378#else
2379 static
2380 symbol_type
2382 {
2384 }
2385#endif
2386#if 201103L <= YY_CPLUSPLUS
2387 static
2388 symbol_type
2390 {
2391 return symbol_type (token::TOKEN_LFC_INTERVAL, std::move (l));
2392 }
2393#else
2394 static
2395 symbol_type
2397 {
2399 }
2400#endif
2401#if 201103L <= YY_CPLUSPLUS
2402 static
2403 symbol_type
2405 {
2406 return symbol_type (token::TOKEN_READONLY, std::move (l));
2407 }
2408#else
2409 static
2410 symbol_type
2412 {
2414 }
2415#endif
2416#if 201103L <= YY_CPLUSPLUS
2417 static
2418 symbol_type
2420 {
2421 return symbol_type (token::TOKEN_CONNECT_TIMEOUT, std::move (l));
2422 }
2423#else
2424 static
2425 symbol_type
2427 {
2429 }
2430#endif
2431#if 201103L <= YY_CPLUSPLUS
2432 static
2433 symbol_type
2435 {
2436 return symbol_type (token::TOKEN_CONTACT_POINTS, std::move (l));
2437 }
2438#else
2439 static
2440 symbol_type
2442 {
2444 }
2445#endif
2446#if 201103L <= YY_CPLUSPLUS
2447 static
2448 symbol_type
2450 {
2451 return symbol_type (token::TOKEN_KEYSPACE, std::move (l));
2452 }
2453#else
2454 static
2455 symbol_type
2457 {
2459 }
2460#endif
2461#if 201103L <= YY_CPLUSPLUS
2462 static
2463 symbol_type
2465 {
2466 return symbol_type (token::TOKEN_CONSISTENCY, std::move (l));
2467 }
2468#else
2469 static
2470 symbol_type
2472 {
2474 }
2475#endif
2476#if 201103L <= YY_CPLUSPLUS
2477 static
2478 symbol_type
2480 {
2481 return symbol_type (token::TOKEN_SERIAL_CONSISTENCY, std::move (l));
2482 }
2483#else
2484 static
2485 symbol_type
2487 {
2489 }
2490#endif
2491#if 201103L <= YY_CPLUSPLUS
2492 static
2493 symbol_type
2495 {
2496 return symbol_type (token::TOKEN_MAX_RECONNECT_TRIES, std::move (l));
2497 }
2498#else
2499 static
2500 symbol_type
2502 {
2504 }
2505#endif
2506#if 201103L <= YY_CPLUSPLUS
2507 static
2508 symbol_type
2510 {
2511 return symbol_type (token::TOKEN_RECONNECT_WAIT_TIME, std::move (l));
2512 }
2513#else
2514 static
2515 symbol_type
2517 {
2519 }
2520#endif
2521#if 201103L <= YY_CPLUSPLUS
2522 static
2523 symbol_type
2525 {
2526 return symbol_type (token::TOKEN_ON_FAIL, std::move (l));
2527 }
2528#else
2529 static
2530 symbol_type
2532 {
2534 }
2535#endif
2536#if 201103L <= YY_CPLUSPLUS
2537 static
2538 symbol_type
2540 {
2541 return symbol_type (token::TOKEN_STOP_RETRY_EXIT, std::move (l));
2542 }
2543#else
2544 static
2545 symbol_type
2547 {
2549 }
2550#endif
2551#if 201103L <= YY_CPLUSPLUS
2552 static
2553 symbol_type
2555 {
2556 return symbol_type (token::TOKEN_SERVE_RETRY_EXIT, std::move (l));
2557 }
2558#else
2559 static
2560 symbol_type
2562 {
2564 }
2565#endif
2566#if 201103L <= YY_CPLUSPLUS
2567 static
2568 symbol_type
2570 {
2571 return symbol_type (token::TOKEN_SERVE_RETRY_CONTINUE, std::move (l));
2572 }
2573#else
2574 static
2575 symbol_type
2577 {
2579 }
2580#endif
2581#if 201103L <= YY_CPLUSPLUS
2582 static
2583 symbol_type
2585 {
2586 return symbol_type (token::TOKEN_REQUEST_TIMEOUT, std::move (l));
2587 }
2588#else
2589 static
2590 symbol_type
2592 {
2594 }
2595#endif
2596#if 201103L <= YY_CPLUSPLUS
2597 static
2598 symbol_type
2600 {
2601 return symbol_type (token::TOKEN_TCP_KEEPALIVE, std::move (l));
2602 }
2603#else
2604 static
2605 symbol_type
2607 {
2609 }
2610#endif
2611#if 201103L <= YY_CPLUSPLUS
2612 static
2613 symbol_type
2615 {
2616 return symbol_type (token::TOKEN_TCP_NODELAY, std::move (l));
2617 }
2618#else
2619 static
2620 symbol_type
2622 {
2624 }
2625#endif
2626#if 201103L <= YY_CPLUSPLUS
2627 static
2628 symbol_type
2630 {
2631 return symbol_type (token::TOKEN_MAX_ROW_ERRORS, std::move (l));
2632 }
2633#else
2634 static
2635 symbol_type
2637 {
2639 }
2640#endif
2641#if 201103L <= YY_CPLUSPLUS
2642 static
2643 symbol_type
2645 {
2646 return symbol_type (token::TOKEN_VALID_LIFETIME, std::move (l));
2647 }
2648#else
2649 static
2650 symbol_type
2652 {
2654 }
2655#endif
2656#if 201103L <= YY_CPLUSPLUS
2657 static
2658 symbol_type
2660 {
2661 return symbol_type (token::TOKEN_MIN_VALID_LIFETIME, std::move (l));
2662 }
2663#else
2664 static
2665 symbol_type
2667 {
2669 }
2670#endif
2671#if 201103L <= YY_CPLUSPLUS
2672 static
2673 symbol_type
2675 {
2676 return symbol_type (token::TOKEN_MAX_VALID_LIFETIME, std::move (l));
2677 }
2678#else
2679 static
2680 symbol_type
2682 {
2684 }
2685#endif
2686#if 201103L <= YY_CPLUSPLUS
2687 static
2688 symbol_type
2690 {
2691 return symbol_type (token::TOKEN_RENEW_TIMER, std::move (l));
2692 }
2693#else
2694 static
2695 symbol_type
2697 {
2699 }
2700#endif
2701#if 201103L <= YY_CPLUSPLUS
2702 static
2703 symbol_type
2705 {
2706 return symbol_type (token::TOKEN_REBIND_TIMER, std::move (l));
2707 }
2708#else
2709 static
2710 symbol_type
2712 {
2714 }
2715#endif
2716#if 201103L <= YY_CPLUSPLUS
2717 static
2718 symbol_type
2720 {
2721 return symbol_type (token::TOKEN_CALCULATE_TEE_TIMES, std::move (l));
2722 }
2723#else
2724 static
2725 symbol_type
2727 {
2729 }
2730#endif
2731#if 201103L <= YY_CPLUSPLUS
2732 static
2733 symbol_type
2735 {
2736 return symbol_type (token::TOKEN_T1_PERCENT, std::move (l));
2737 }
2738#else
2739 static
2740 symbol_type
2742 {
2744 }
2745#endif
2746#if 201103L <= YY_CPLUSPLUS
2747 static
2748 symbol_type
2750 {
2751 return symbol_type (token::TOKEN_T2_PERCENT, std::move (l));
2752 }
2753#else
2754 static
2755 symbol_type
2757 {
2759 }
2760#endif
2761#if 201103L <= YY_CPLUSPLUS
2762 static
2763 symbol_type
2765 {
2766 return symbol_type (token::TOKEN_CACHE_THRESHOLD, std::move (l));
2767 }
2768#else
2769 static
2770 symbol_type
2772 {
2774 }
2775#endif
2776#if 201103L <= YY_CPLUSPLUS
2777 static
2778 symbol_type
2780 {
2781 return symbol_type (token::TOKEN_CACHE_MAX_AGE, std::move (l));
2782 }
2783#else
2784 static
2785 symbol_type
2787 {
2789 }
2790#endif
2791#if 201103L <= YY_CPLUSPLUS
2792 static
2793 symbol_type
2795 {
2796 return symbol_type (token::TOKEN_DECLINE_PROBATION_PERIOD, std::move (l));
2797 }
2798#else
2799 static
2800 symbol_type
2802 {
2804 }
2805#endif
2806#if 201103L <= YY_CPLUSPLUS
2807 static
2808 symbol_type
2810 {
2811 return symbol_type (token::TOKEN_SERVER_TAG, std::move (l));
2812 }
2813#else
2814 static
2815 symbol_type
2817 {
2819 }
2820#endif
2821#if 201103L <= YY_CPLUSPLUS
2822 static
2823 symbol_type
2825 {
2826 return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT, std::move (l));
2827 }
2828#else
2829 static
2830 symbol_type
2832 {
2834 }
2835#endif
2836#if 201103L <= YY_CPLUSPLUS
2837 static
2838 symbol_type
2840 {
2841 return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE, std::move (l));
2842 }
2843#else
2844 static
2845 symbol_type
2847 {
2849 }
2850#endif
2851#if 201103L <= YY_CPLUSPLUS
2852 static
2853 symbol_type
2855 {
2856 return symbol_type (token::TOKEN_DDNS_SEND_UPDATES, std::move (l));
2857 }
2858#else
2859 static
2860 symbol_type
2862 {
2864 }
2865#endif
2866#if 201103L <= YY_CPLUSPLUS
2867 static
2868 symbol_type
2870 {
2871 return symbol_type (token::TOKEN_DDNS_OVERRIDE_NO_UPDATE, std::move (l));
2872 }
2873#else
2874 static
2875 symbol_type
2877 {
2879 }
2880#endif
2881#if 201103L <= YY_CPLUSPLUS
2882 static
2883 symbol_type
2885 {
2886 return symbol_type (token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE, std::move (l));
2887 }
2888#else
2889 static
2890 symbol_type
2892 {
2894 }
2895#endif
2896#if 201103L <= YY_CPLUSPLUS
2897 static
2898 symbol_type
2900 {
2901 return symbol_type (token::TOKEN_DDNS_REPLACE_CLIENT_NAME, std::move (l));
2902 }
2903#else
2904 static
2905 symbol_type
2907 {
2909 }
2910#endif
2911#if 201103L <= YY_CPLUSPLUS
2912 static
2913 symbol_type
2915 {
2916 return symbol_type (token::TOKEN_DDNS_GENERATED_PREFIX, std::move (l));
2917 }
2918#else
2919 static
2920 symbol_type
2922 {
2924 }
2925#endif
2926#if 201103L <= YY_CPLUSPLUS
2927 static
2928 symbol_type
2930 {
2931 return symbol_type (token::TOKEN_DDNS_QUALIFYING_SUFFIX, std::move (l));
2932 }
2933#else
2934 static
2935 symbol_type
2937 {
2939 }
2940#endif
2941#if 201103L <= YY_CPLUSPLUS
2942 static
2943 symbol_type
2945 {
2946 return symbol_type (token::TOKEN_DDNS_UPDATE_ON_RENEW, std::move (l));
2947 }
2948#else
2949 static
2950 symbol_type
2952 {
2954 }
2955#endif
2956#if 201103L <= YY_CPLUSPLUS
2957 static
2958 symbol_type
2960 {
2961 return symbol_type (token::TOKEN_DDNS_USE_CONFLICT_RESOLUTION, std::move (l));
2962 }
2963#else
2964 static
2965 symbol_type
2967 {
2969 }
2970#endif
2971#if 201103L <= YY_CPLUSPLUS
2972 static
2973 symbol_type
2975 {
2976 return symbol_type (token::TOKEN_STORE_EXTENDED_INFO, std::move (l));
2977 }
2978#else
2979 static
2980 symbol_type
2982 {
2984 }
2985#endif
2986#if 201103L <= YY_CPLUSPLUS
2987 static
2988 symbol_type
2990 {
2991 return symbol_type (token::TOKEN_SUBNET4, std::move (l));
2992 }
2993#else
2994 static
2995 symbol_type
2997 {
2999 }
3000#endif
3001#if 201103L <= YY_CPLUSPLUS
3002 static
3003 symbol_type
3005 {
3006 return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE, std::move (l));
3007 }
3008#else
3009 static
3010 symbol_type
3012 {
3014 }
3015#endif
3016#if 201103L <= YY_CPLUSPLUS
3017 static
3018 symbol_type
3020 {
3021 return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE_ID, std::move (l));
3022 }
3023#else
3024 static
3025 symbol_type
3027 {
3029 }
3030#endif
3031#if 201103L <= YY_CPLUSPLUS
3032 static
3033 symbol_type
3035 {
3036 return symbol_type (token::TOKEN_SUBNET_4O6_SUBNET, std::move (l));
3037 }
3038#else
3039 static
3040 symbol_type
3042 {
3044 }
3045#endif
3046#if 201103L <= YY_CPLUSPLUS
3047 static
3048 symbol_type
3050 {
3051 return symbol_type (token::TOKEN_OPTION_DEF, std::move (l));
3052 }
3053#else
3054 static
3055 symbol_type
3057 {
3059 }
3060#endif
3061#if 201103L <= YY_CPLUSPLUS
3062 static
3063 symbol_type
3065 {
3066 return symbol_type (token::TOKEN_OPTION_DATA, std::move (l));
3067 }
3068#else
3069 static
3070 symbol_type
3072 {
3074 }
3075#endif
3076#if 201103L <= YY_CPLUSPLUS
3077 static
3078 symbol_type
3080 {
3081 return symbol_type (token::TOKEN_NAME, std::move (l));
3082 }
3083#else
3084 static
3085 symbol_type
3087 {
3088 return symbol_type (token::TOKEN_NAME, l);
3089 }
3090#endif
3091#if 201103L <= YY_CPLUSPLUS
3092 static
3093 symbol_type
3095 {
3096 return symbol_type (token::TOKEN_DATA, std::move (l));
3097 }
3098#else
3099 static
3100 symbol_type
3102 {
3103 return symbol_type (token::TOKEN_DATA, l);
3104 }
3105#endif
3106#if 201103L <= YY_CPLUSPLUS
3107 static
3108 symbol_type
3110 {
3111 return symbol_type (token::TOKEN_CODE, std::move (l));
3112 }
3113#else
3114 static
3115 symbol_type
3117 {
3118 return symbol_type (token::TOKEN_CODE, l);
3119 }
3120#endif
3121#if 201103L <= YY_CPLUSPLUS
3122 static
3123 symbol_type
3125 {
3126 return symbol_type (token::TOKEN_SPACE, std::move (l));
3127 }
3128#else
3129 static
3130 symbol_type
3132 {
3133 return symbol_type (token::TOKEN_SPACE, l);
3134 }
3135#endif
3136#if 201103L <= YY_CPLUSPLUS
3137 static
3138 symbol_type
3140 {
3141 return symbol_type (token::TOKEN_CSV_FORMAT, std::move (l));
3142 }
3143#else
3144 static
3145 symbol_type
3147 {
3149 }
3150#endif
3151#if 201103L <= YY_CPLUSPLUS
3152 static
3153 symbol_type
3155 {
3156 return symbol_type (token::TOKEN_ALWAYS_SEND, std::move (l));
3157 }
3158#else
3159 static
3160 symbol_type
3162 {
3164 }
3165#endif
3166#if 201103L <= YY_CPLUSPLUS
3167 static
3168 symbol_type
3170 {
3171 return symbol_type (token::TOKEN_RECORD_TYPES, std::move (l));
3172 }
3173#else
3174 static
3175 symbol_type
3177 {
3179 }
3180#endif
3181#if 201103L <= YY_CPLUSPLUS
3182 static
3183 symbol_type
3185 {
3186 return symbol_type (token::TOKEN_ENCAPSULATE, std::move (l));
3187 }
3188#else
3189 static
3190 symbol_type
3192 {
3194 }
3195#endif
3196#if 201103L <= YY_CPLUSPLUS
3197 static
3198 symbol_type
3200 {
3201 return symbol_type (token::TOKEN_ARRAY, std::move (l));
3202 }
3203#else
3204 static
3205 symbol_type
3207 {
3208 return symbol_type (token::TOKEN_ARRAY, l);
3209 }
3210#endif
3211#if 201103L <= YY_CPLUSPLUS
3212 static
3213 symbol_type
3215 {
3216 return symbol_type (token::TOKEN_PARKED_PACKET_LIMIT, std::move (l));
3217 }
3218#else
3219 static
3220 symbol_type
3222 {
3224 }
3225#endif
3226#if 201103L <= YY_CPLUSPLUS
3227 static
3228 symbol_type
3230 {
3231 return symbol_type (token::TOKEN_SHARED_NETWORKS, std::move (l));
3232 }
3233#else
3234 static
3235 symbol_type
3237 {
3239 }
3240#endif
3241#if 201103L <= YY_CPLUSPLUS
3242 static
3243 symbol_type
3245 {
3246 return symbol_type (token::TOKEN_POOLS, std::move (l));
3247 }
3248#else
3249 static
3250 symbol_type
3252 {
3253 return symbol_type (token::TOKEN_POOLS, l);
3254 }
3255#endif
3256#if 201103L <= YY_CPLUSPLUS
3257 static
3258 symbol_type
3260 {
3261 return symbol_type (token::TOKEN_POOL, std::move (l));
3262 }
3263#else
3264 static
3265 symbol_type
3267 {
3268 return symbol_type (token::TOKEN_POOL, l);
3269 }
3270#endif
3271#if 201103L <= YY_CPLUSPLUS
3272 static
3273 symbol_type
3275 {
3276 return symbol_type (token::TOKEN_USER_CONTEXT, std::move (l));
3277 }
3278#else
3279 static
3280 symbol_type
3282 {
3284 }
3285#endif
3286#if 201103L <= YY_CPLUSPLUS
3287 static
3288 symbol_type
3290 {
3291 return symbol_type (token::TOKEN_COMMENT, std::move (l));
3292 }
3293#else
3294 static
3295 symbol_type
3297 {
3299 }
3300#endif
3301#if 201103L <= YY_CPLUSPLUS
3302 static
3303 symbol_type
3305 {
3306 return symbol_type (token::TOKEN_SUBNET, std::move (l));
3307 }
3308#else
3309 static
3310 symbol_type
3312 {
3313 return symbol_type (token::TOKEN_SUBNET, l);
3314 }
3315#endif
3316#if 201103L <= YY_CPLUSPLUS
3317 static
3318 symbol_type
3320 {
3321 return symbol_type (token::TOKEN_INTERFACE, std::move (l));
3322 }
3323#else
3324 static
3325 symbol_type
3327 {
3329 }
3330#endif
3331#if 201103L <= YY_CPLUSPLUS
3332 static
3333 symbol_type
3335 {
3336 return symbol_type (token::TOKEN_ID, std::move (l));
3337 }
3338#else
3339 static
3340 symbol_type
3342 {
3343 return symbol_type (token::TOKEN_ID, l);
3344 }
3345#endif
3346#if 201103L <= YY_CPLUSPLUS
3347 static
3348 symbol_type
3350 {
3351 return symbol_type (token::TOKEN_RESERVATION_MODE, std::move (l));
3352 }
3353#else
3354 static
3355 symbol_type
3357 {
3359 }
3360#endif
3361#if 201103L <= YY_CPLUSPLUS
3362 static
3363 symbol_type
3365 {
3366 return symbol_type (token::TOKEN_DISABLED, std::move (l));
3367 }
3368#else
3369 static
3370 symbol_type
3372 {
3374 }
3375#endif
3376#if 201103L <= YY_CPLUSPLUS
3377 static
3378 symbol_type
3380 {
3381 return symbol_type (token::TOKEN_OUT_OF_POOL, std::move (l));
3382 }
3383#else
3384 static
3385 symbol_type
3387 {
3389 }
3390#endif
3391#if 201103L <= YY_CPLUSPLUS
3392 static
3393 symbol_type
3395 {
3396 return symbol_type (token::TOKEN_GLOBAL, std::move (l));
3397 }
3398#else
3399 static
3400 symbol_type
3402 {
3403 return symbol_type (token::TOKEN_GLOBAL, l);
3404 }
3405#endif
3406#if 201103L <= YY_CPLUSPLUS
3407 static
3408 symbol_type
3410 {
3411 return symbol_type (token::TOKEN_ALL, std::move (l));
3412 }
3413#else
3414 static
3415 symbol_type
3417 {
3418 return symbol_type (token::TOKEN_ALL, l);
3419 }
3420#endif
3421#if 201103L <= YY_CPLUSPLUS
3422 static
3423 symbol_type
3425 {
3426 return symbol_type (token::TOKEN_RESERVATIONS_GLOBAL, std::move (l));
3427 }
3428#else
3429 static
3430 symbol_type
3432 {
3434 }
3435#endif
3436#if 201103L <= YY_CPLUSPLUS
3437 static
3438 symbol_type
3440 {
3441 return symbol_type (token::TOKEN_RESERVATIONS_IN_SUBNET, std::move (l));
3442 }
3443#else
3444 static
3445 symbol_type
3447 {
3449 }
3450#endif
3451#if 201103L <= YY_CPLUSPLUS
3452 static
3453 symbol_type
3455 {
3456 return symbol_type (token::TOKEN_RESERVATIONS_OUT_OF_POOL, std::move (l));
3457 }
3458#else
3459 static
3460 symbol_type
3462 {
3464 }
3465#endif
3466#if 201103L <= YY_CPLUSPLUS
3467 static
3468 symbol_type
3470 {
3471 return symbol_type (token::TOKEN_HOST_RESERVATION_IDENTIFIERS, std::move (l));
3472 }
3473#else
3474 static
3475 symbol_type
3477 {
3479 }
3480#endif
3481#if 201103L <= YY_CPLUSPLUS
3482 static
3483 symbol_type
3485 {
3486 return symbol_type (token::TOKEN_CLIENT_CLASSES, std::move (l));
3487 }
3488#else
3489 static
3490 symbol_type
3492 {
3494 }
3495#endif
3496#if 201103L <= YY_CPLUSPLUS
3497 static
3498 symbol_type
3500 {
3501 return symbol_type (token::TOKEN_REQUIRE_CLIENT_CLASSES, std::move (l));
3502 }
3503#else
3504 static
3505 symbol_type
3507 {
3509 }
3510#endif
3511#if 201103L <= YY_CPLUSPLUS
3512 static
3513 symbol_type
3515 {
3516 return symbol_type (token::TOKEN_TEST, std::move (l));
3517 }
3518#else
3519 static
3520 symbol_type
3522 {
3523 return symbol_type (token::TOKEN_TEST, l);
3524 }
3525#endif
3526#if 201103L <= YY_CPLUSPLUS
3527 static
3528 symbol_type
3530 {
3531 return symbol_type (token::TOKEN_ONLY_IF_REQUIRED, std::move (l));
3532 }
3533#else
3534 static
3535 symbol_type
3537 {
3539 }
3540#endif
3541#if 201103L <= YY_CPLUSPLUS
3542 static
3543 symbol_type
3545 {
3546 return symbol_type (token::TOKEN_CLIENT_CLASS, std::move (l));
3547 }
3548#else
3549 static
3550 symbol_type
3552 {
3554 }
3555#endif
3556#if 201103L <= YY_CPLUSPLUS
3557 static
3558 symbol_type
3560 {
3561 return symbol_type (token::TOKEN_RESERVATIONS, std::move (l));
3562 }
3563#else
3564 static
3565 symbol_type
3567 {
3569 }
3570#endif
3571#if 201103L <= YY_CPLUSPLUS
3572 static
3573 symbol_type
3575 {
3576 return symbol_type (token::TOKEN_DUID, std::move (l));
3577 }
3578#else
3579 static
3580 symbol_type
3582 {
3583 return symbol_type (token::TOKEN_DUID, l);
3584 }
3585#endif
3586#if 201103L <= YY_CPLUSPLUS
3587 static
3588 symbol_type
3590 {
3591 return symbol_type (token::TOKEN_HW_ADDRESS, std::move (l));
3592 }
3593#else
3594 static
3595 symbol_type
3597 {
3599 }
3600#endif
3601#if 201103L <= YY_CPLUSPLUS
3602 static
3603 symbol_type
3605 {
3606 return symbol_type (token::TOKEN_CIRCUIT_ID, std::move (l));
3607 }
3608#else
3609 static
3610 symbol_type
3612 {
3614 }
3615#endif
3616#if 201103L <= YY_CPLUSPLUS
3617 static
3618 symbol_type
3620 {
3621 return symbol_type (token::TOKEN_CLIENT_ID, std::move (l));
3622 }
3623#else
3624 static
3625 symbol_type
3627 {
3629 }
3630#endif
3631#if 201103L <= YY_CPLUSPLUS
3632 static
3633 symbol_type
3635 {
3636 return symbol_type (token::TOKEN_HOSTNAME, std::move (l));
3637 }
3638#else
3639 static
3640 symbol_type
3642 {
3644 }
3645#endif
3646#if 201103L <= YY_CPLUSPLUS
3647 static
3648 symbol_type
3650 {
3651 return symbol_type (token::TOKEN_FLEX_ID, std::move (l));
3652 }
3653#else
3654 static
3655 symbol_type
3657 {
3659 }
3660#endif
3661#if 201103L <= YY_CPLUSPLUS
3662 static
3663 symbol_type
3665 {
3666 return symbol_type (token::TOKEN_RELAY, std::move (l));
3667 }
3668#else
3669 static
3670 symbol_type
3672 {
3673 return symbol_type (token::TOKEN_RELAY, l);
3674 }
3675#endif
3676#if 201103L <= YY_CPLUSPLUS
3677 static
3678 symbol_type
3680 {
3681 return symbol_type (token::TOKEN_IP_ADDRESS, std::move (l));
3682 }
3683#else
3684 static
3685 symbol_type
3687 {
3689 }
3690#endif
3691#if 201103L <= YY_CPLUSPLUS
3692 static
3693 symbol_type
3695 {
3696 return symbol_type (token::TOKEN_IP_ADDRESSES, std::move (l));
3697 }
3698#else
3699 static
3700 symbol_type
3702 {
3704 }
3705#endif
3706#if 201103L <= YY_CPLUSPLUS
3707 static
3708 symbol_type
3710 {
3711 return symbol_type (token::TOKEN_HOOKS_LIBRARIES, std::move (l));
3712 }
3713#else
3714 static
3715 symbol_type
3717 {
3719 }
3720#endif
3721#if 201103L <= YY_CPLUSPLUS
3722 static
3723 symbol_type
3725 {
3726 return symbol_type (token::TOKEN_LIBRARY, std::move (l));
3727 }
3728#else
3729 static
3730 symbol_type
3732 {
3734 }
3735#endif
3736#if 201103L <= YY_CPLUSPLUS
3737 static
3738 symbol_type
3740 {
3741 return symbol_type (token::TOKEN_PARAMETERS, std::move (l));
3742 }
3743#else
3744 static
3745 symbol_type
3747 {
3749 }
3750#endif
3751#if 201103L <= YY_CPLUSPLUS
3752 static
3753 symbol_type
3755 {
3756 return symbol_type (token::TOKEN_EXPIRED_LEASES_PROCESSING, std::move (l));
3757 }
3758#else
3759 static
3760 symbol_type
3762 {
3764 }
3765#endif
3766#if 201103L <= YY_CPLUSPLUS
3767 static
3768 symbol_type
3770 {
3771 return symbol_type (token::TOKEN_RECLAIM_TIMER_WAIT_TIME, std::move (l));
3772 }
3773#else
3774 static
3775 symbol_type
3777 {
3779 }
3780#endif
3781#if 201103L <= YY_CPLUSPLUS
3782 static
3783 symbol_type
3785 {
3786 return symbol_type (token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME, std::move (l));
3787 }
3788#else
3789 static
3790 symbol_type
3792 {
3794 }
3795#endif
3796#if 201103L <= YY_CPLUSPLUS
3797 static
3798 symbol_type
3800 {
3801 return symbol_type (token::TOKEN_HOLD_RECLAIMED_TIME, std::move (l));
3802 }
3803#else
3804 static
3805 symbol_type
3807 {
3809 }
3810#endif
3811#if 201103L <= YY_CPLUSPLUS
3812 static
3813 symbol_type
3815 {
3816 return symbol_type (token::TOKEN_MAX_RECLAIM_LEASES, std::move (l));
3817 }
3818#else
3819 static
3820 symbol_type
3822 {
3824 }
3825#endif
3826#if 201103L <= YY_CPLUSPLUS
3827 static
3828 symbol_type
3830 {
3831 return symbol_type (token::TOKEN_MAX_RECLAIM_TIME, std::move (l));
3832 }
3833#else
3834 static
3835 symbol_type
3837 {
3839 }
3840#endif
3841#if 201103L <= YY_CPLUSPLUS
3842 static
3843 symbol_type
3845 {
3846 return symbol_type (token::TOKEN_UNWARNED_RECLAIM_CYCLES, std::move (l));
3847 }
3848#else
3849 static
3850 symbol_type
3852 {
3854 }
3855#endif
3856#if 201103L <= YY_CPLUSPLUS
3857 static
3858 symbol_type
3860 {
3861 return symbol_type (token::TOKEN_DHCP4O6_PORT, std::move (l));
3862 }
3863#else
3864 static
3865 symbol_type
3867 {
3869 }
3870#endif
3871#if 201103L <= YY_CPLUSPLUS
3872 static
3873 symbol_type
3875 {
3876 return symbol_type (token::TOKEN_DHCP_MULTI_THREADING, std::move (l));
3877 }
3878#else
3879 static
3880 symbol_type
3882 {
3884 }
3885#endif
3886#if 201103L <= YY_CPLUSPLUS
3887 static
3888 symbol_type
3890 {
3891 return symbol_type (token::TOKEN_ENABLE_MULTI_THREADING, std::move (l));
3892 }
3893#else
3894 static
3895 symbol_type
3897 {
3899 }
3900#endif
3901#if 201103L <= YY_CPLUSPLUS
3902 static
3903 symbol_type
3905 {
3906 return symbol_type (token::TOKEN_THREAD_POOL_SIZE, std::move (l));
3907 }
3908#else
3909 static
3910 symbol_type
3912 {
3914 }
3915#endif
3916#if 201103L <= YY_CPLUSPLUS
3917 static
3918 symbol_type
3920 {
3921 return symbol_type (token::TOKEN_PACKET_QUEUE_SIZE, std::move (l));
3922 }
3923#else
3924 static
3925 symbol_type
3927 {
3929 }
3930#endif
3931#if 201103L <= YY_CPLUSPLUS
3932 static
3933 symbol_type
3935 {
3936 return symbol_type (token::TOKEN_CONTROL_SOCKET, std::move (l));
3937 }
3938#else
3939 static
3940 symbol_type
3942 {
3944 }
3945#endif
3946#if 201103L <= YY_CPLUSPLUS
3947 static
3948 symbol_type
3950 {
3951 return symbol_type (token::TOKEN_SOCKET_TYPE, std::move (l));
3952 }
3953#else
3954 static
3955 symbol_type
3957 {
3959 }
3960#endif
3961#if 201103L <= YY_CPLUSPLUS
3962 static
3963 symbol_type
3965 {
3966 return symbol_type (token::TOKEN_SOCKET_NAME, std::move (l));
3967 }
3968#else
3969 static
3970 symbol_type
3972 {
3974 }
3975#endif
3976#if 201103L <= YY_CPLUSPLUS
3977 static
3978 symbol_type
3980 {
3981 return symbol_type (token::TOKEN_DHCP_QUEUE_CONTROL, std::move (l));
3982 }
3983#else
3984 static
3985 symbol_type
3987 {
3989 }
3990#endif
3991#if 201103L <= YY_CPLUSPLUS
3992 static
3993 symbol_type
3995 {
3996 return symbol_type (token::TOKEN_ENABLE_QUEUE, std::move (l));
3997 }
3998#else
3999 static
4000 symbol_type
4002 {
4004 }
4005#endif
4006#if 201103L <= YY_CPLUSPLUS
4007 static
4008 symbol_type
4010 {
4011 return symbol_type (token::TOKEN_QUEUE_TYPE, std::move (l));
4012 }
4013#else
4014 static
4015 symbol_type
4017 {
4019 }
4020#endif
4021#if 201103L <= YY_CPLUSPLUS
4022 static
4023 symbol_type
4025 {
4026 return symbol_type (token::TOKEN_CAPACITY, std::move (l));
4027 }
4028#else
4029 static
4030 symbol_type
4032 {
4034 }
4035#endif
4036#if 201103L <= YY_CPLUSPLUS
4037 static
4038 symbol_type
4040 {
4041 return symbol_type (token::TOKEN_DHCP_DDNS, std::move (l));
4042 }
4043#else
4044 static
4045 symbol_type
4047 {
4049 }
4050#endif
4051#if 201103L <= YY_CPLUSPLUS
4052 static
4053 symbol_type
4055 {
4056 return symbol_type (token::TOKEN_ENABLE_UPDATES, std::move (l));
4057 }
4058#else
4059 static
4060 symbol_type
4062 {
4064 }
4065#endif
4066#if 201103L <= YY_CPLUSPLUS
4067 static
4068 symbol_type
4070 {
4071 return symbol_type (token::TOKEN_QUALIFYING_SUFFIX, std::move (l));
4072 }
4073#else
4074 static
4075 symbol_type
4077 {
4079 }
4080#endif
4081#if 201103L <= YY_CPLUSPLUS
4082 static
4083 symbol_type
4085 {
4086 return symbol_type (token::TOKEN_SERVER_IP, std::move (l));
4087 }
4088#else
4089 static
4090 symbol_type
4092 {
4094 }
4095#endif
4096#if 201103L <= YY_CPLUSPLUS
4097 static
4098 symbol_type
4100 {
4101 return symbol_type (token::TOKEN_SERVER_PORT, std::move (l));
4102 }
4103#else
4104 static
4105 symbol_type
4107 {
4109 }
4110#endif
4111#if 201103L <= YY_CPLUSPLUS
4112 static
4113 symbol_type
4115 {
4116 return symbol_type (token::TOKEN_SENDER_IP, std::move (l));
4117 }
4118#else
4119 static
4120 symbol_type
4122 {
4124 }
4125#endif
4126#if 201103L <= YY_CPLUSPLUS
4127 static
4128 symbol_type
4130 {
4131 return symbol_type (token::TOKEN_SENDER_PORT, std::move (l));
4132 }
4133#else
4134 static
4135 symbol_type
4137 {
4139 }
4140#endif
4141#if 201103L <= YY_CPLUSPLUS
4142 static
4143 symbol_type
4145 {
4146 return symbol_type (token::TOKEN_MAX_QUEUE_SIZE, std::move (l));
4147 }
4148#else
4149 static
4150 symbol_type
4152 {
4154 }
4155#endif
4156#if 201103L <= YY_CPLUSPLUS
4157 static
4158 symbol_type
4160 {
4161 return symbol_type (token::TOKEN_NCR_PROTOCOL, std::move (l));
4162 }
4163#else
4164 static
4165 symbol_type
4167 {
4169 }
4170#endif
4171#if 201103L <= YY_CPLUSPLUS
4172 static
4173 symbol_type
4175 {
4176 return symbol_type (token::TOKEN_NCR_FORMAT, std::move (l));
4177 }
4178#else
4179 static
4180 symbol_type
4182 {
4184 }
4185#endif
4186#if 201103L <= YY_CPLUSPLUS
4187 static
4188 symbol_type
4190 {
4191 return symbol_type (token::TOKEN_OVERRIDE_NO_UPDATE, std::move (l));
4192 }
4193#else
4194 static
4195 symbol_type
4197 {
4199 }
4200#endif
4201#if 201103L <= YY_CPLUSPLUS
4202 static
4203 symbol_type
4205 {
4206 return symbol_type (token::TOKEN_OVERRIDE_CLIENT_UPDATE, std::move (l));
4207 }
4208#else
4209 static
4210 symbol_type
4212 {
4214 }
4215#endif
4216#if 201103L <= YY_CPLUSPLUS
4217 static
4218 symbol_type
4220 {
4221 return symbol_type (token::TOKEN_REPLACE_CLIENT_NAME, std::move (l));
4222 }
4223#else
4224 static
4225 symbol_type
4227 {
4229 }
4230#endif
4231#if 201103L <= YY_CPLUSPLUS
4232 static
4233 symbol_type
4235 {
4236 return symbol_type (token::TOKEN_GENERATED_PREFIX, std::move (l));
4237 }
4238#else
4239 static
4240 symbol_type
4242 {
4244 }
4245#endif
4246#if 201103L <= YY_CPLUSPLUS
4247 static
4248 symbol_type
4250 {
4251 return symbol_type (token::TOKEN_TCP, std::move (l));
4252 }
4253#else
4254 static
4255 symbol_type
4257 {
4258 return symbol_type (token::TOKEN_TCP, l);
4259 }
4260#endif
4261#if 201103L <= YY_CPLUSPLUS
4262 static
4263 symbol_type
4265 {
4266 return symbol_type (token::TOKEN_JSON, std::move (l));
4267 }
4268#else
4269 static
4270 symbol_type
4272 {
4273 return symbol_type (token::TOKEN_JSON, l);
4274 }
4275#endif
4276#if 201103L <= YY_CPLUSPLUS
4277 static
4278 symbol_type
4280 {
4281 return symbol_type (token::TOKEN_WHEN_PRESENT, std::move (l));
4282 }
4283#else
4284 static
4285 symbol_type
4287 {
4289 }
4290#endif
4291#if 201103L <= YY_CPLUSPLUS
4292 static
4293 symbol_type
4295 {
4296 return symbol_type (token::TOKEN_NEVER, std::move (l));
4297 }
4298#else
4299 static
4300 symbol_type
4302 {
4303 return symbol_type (token::TOKEN_NEVER, l);
4304 }
4305#endif
4306#if 201103L <= YY_CPLUSPLUS
4307 static
4308 symbol_type
4310 {
4311 return symbol_type (token::TOKEN_ALWAYS, std::move (l));
4312 }
4313#else
4314 static
4315 symbol_type
4317 {
4318 return symbol_type (token::TOKEN_ALWAYS, l);
4319 }
4320#endif
4321#if 201103L <= YY_CPLUSPLUS
4322 static
4323 symbol_type
4325 {
4326 return symbol_type (token::TOKEN_WHEN_NOT_PRESENT, std::move (l));
4327 }
4328#else
4329 static
4330 symbol_type
4332 {
4334 }
4335#endif
4336#if 201103L <= YY_CPLUSPLUS
4337 static
4338 symbol_type
4340 {
4341 return symbol_type (token::TOKEN_HOSTNAME_CHAR_SET, std::move (l));
4342 }
4343#else
4344 static
4345 symbol_type
4347 {
4349 }
4350#endif
4351#if 201103L <= YY_CPLUSPLUS
4352 static
4353 symbol_type
4355 {
4356 return symbol_type (token::TOKEN_HOSTNAME_CHAR_REPLACEMENT, std::move (l));
4357 }
4358#else
4359 static
4360 symbol_type
4362 {
4364 }
4365#endif
4366#if 201103L <= YY_CPLUSPLUS
4367 static
4368 symbol_type
4370 {
4371 return symbol_type (token::TOKEN_IP_RESERVATIONS_UNIQUE, std::move (l));
4372 }
4373#else
4374 static
4375 symbol_type
4377 {
4379 }
4380#endif
4381#if 201103L <= YY_CPLUSPLUS
4382 static
4383 symbol_type
4385 {
4386 return symbol_type (token::TOKEN_LOGGERS, std::move (l));
4387 }
4388#else
4389 static
4390 symbol_type
4392 {
4394 }
4395#endif
4396#if 201103L <= YY_CPLUSPLUS
4397 static
4398 symbol_type
4400 {
4401 return symbol_type (token::TOKEN_OUTPUT_OPTIONS, std::move (l));
4402 }
4403#else
4404 static
4405 symbol_type
4407 {
4409 }
4410#endif
4411#if 201103L <= YY_CPLUSPLUS
4412 static
4413 symbol_type
4415 {
4416 return symbol_type (token::TOKEN_OUTPUT, std::move (l));
4417 }
4418#else
4419 static
4420 symbol_type
4422 {
4423 return symbol_type (token::TOKEN_OUTPUT, l);
4424 }
4425#endif
4426#if 201103L <= YY_CPLUSPLUS
4427 static
4428 symbol_type
4430 {
4431 return symbol_type (token::TOKEN_DEBUGLEVEL, std::move (l));
4432 }
4433#else
4434 static
4435 symbol_type
4437 {
4439 }
4440#endif
4441#if 201103L <= YY_CPLUSPLUS
4442 static
4443 symbol_type
4445 {
4446 return symbol_type (token::TOKEN_SEVERITY, std::move (l));
4447 }
4448#else
4449 static
4450 symbol_type
4452 {
4454 }
4455#endif
4456#if 201103L <= YY_CPLUSPLUS
4457 static
4458 symbol_type
4460 {
4461 return symbol_type (token::TOKEN_FLUSH, std::move (l));
4462 }
4463#else
4464 static
4465 symbol_type
4467 {
4468 return symbol_type (token::TOKEN_FLUSH, l);
4469 }
4470#endif
4471#if 201103L <= YY_CPLUSPLUS
4472 static
4473 symbol_type
4475 {
4476 return symbol_type (token::TOKEN_MAXSIZE, std::move (l));
4477 }
4478#else
4479 static
4480 symbol_type
4482 {
4484 }
4485#endif
4486#if 201103L <= YY_CPLUSPLUS
4487 static
4488 symbol_type
4490 {
4491 return symbol_type (token::TOKEN_MAXVER, std::move (l));
4492 }
4493#else
4494 static
4495 symbol_type
4497 {
4498 return symbol_type (token::TOKEN_MAXVER, l);
4499 }
4500#endif
4501#if 201103L <= YY_CPLUSPLUS
4502 static
4503 symbol_type
4505 {
4506 return symbol_type (token::TOKEN_PATTERN, std::move (l));
4507 }
4508#else
4509 static
4510 symbol_type
4512 {
4514 }
4515#endif
4516#if 201103L <= YY_CPLUSPLUS
4517 static
4518 symbol_type
4520 {
4521 return symbol_type (token::TOKEN_COMPATIBILITY, std::move (l));
4522 }
4523#else
4524 static
4525 symbol_type
4527 {
4529 }
4530#endif
4531#if 201103L <= YY_CPLUSPLUS
4532 static
4533 symbol_type
4535 {
4536 return symbol_type (token::TOKEN_LENIENT_OPTION_PARSING, std::move (l));
4537 }
4538#else
4539 static
4540 symbol_type
4542 {
4544 }
4545#endif
4546#if 201103L <= YY_CPLUSPLUS
4547 static
4548 symbol_type
4550 {
4551 return symbol_type (token::TOKEN_TOPLEVEL_JSON, std::move (l));
4552 }
4553#else
4554 static
4555 symbol_type
4557 {
4559 }
4560#endif
4561#if 201103L <= YY_CPLUSPLUS
4562 static
4563 symbol_type
4565 {
4566 return symbol_type (token::TOKEN_TOPLEVEL_DHCP4, std::move (l));
4567 }
4568#else
4569 static
4570 symbol_type
4572 {
4574 }
4575#endif
4576#if 201103L <= YY_CPLUSPLUS
4577 static
4578 symbol_type
4580 {
4581 return symbol_type (token::TOKEN_SUB_DHCP4, std::move (l));
4582 }
4583#else
4584 static
4585 symbol_type
4587 {
4589 }
4590#endif
4591#if 201103L <= YY_CPLUSPLUS
4592 static
4593 symbol_type
4595 {
4596 return symbol_type (token::TOKEN_SUB_INTERFACES4, std::move (l));
4597 }
4598#else
4599 static
4600 symbol_type
4602 {
4604 }
4605#endif
4606#if 201103L <= YY_CPLUSPLUS
4607 static
4608 symbol_type
4610 {
4611 return symbol_type (token::TOKEN_SUB_SUBNET4, std::move (l));
4612 }
4613#else
4614 static
4615 symbol_type
4617 {
4619 }
4620#endif
4621#if 201103L <= YY_CPLUSPLUS
4622 static
4623 symbol_type
4625 {
4626 return symbol_type (token::TOKEN_SUB_POOL4, std::move (l));
4627 }
4628#else
4629 static
4630 symbol_type
4632 {
4634 }
4635#endif
4636#if 201103L <= YY_CPLUSPLUS
4637 static
4638 symbol_type
4640 {
4641 return symbol_type (token::TOKEN_SUB_RESERVATION, std::move (l));
4642 }
4643#else
4644 static
4645 symbol_type
4647 {
4649 }
4650#endif
4651#if 201103L <= YY_CPLUSPLUS
4652 static
4653 symbol_type
4655 {
4656 return symbol_type (token::TOKEN_SUB_OPTION_DEFS, std::move (l));
4657 }
4658#else
4659 static
4660 symbol_type
4662 {
4664 }
4665#endif
4666#if 201103L <= YY_CPLUSPLUS
4667 static
4668 symbol_type
4670 {
4671 return symbol_type (token::TOKEN_SUB_OPTION_DEF, std::move (l));
4672 }
4673#else
4674 static
4675 symbol_type
4677 {
4679 }
4680#endif
4681#if 201103L <= YY_CPLUSPLUS
4682 static
4683 symbol_type
4685 {
4686 return symbol_type (token::TOKEN_SUB_OPTION_DATA, std::move (l));
4687 }
4688#else
4689 static
4690 symbol_type
4692 {
4694 }
4695#endif
4696#if 201103L <= YY_CPLUSPLUS
4697 static
4698 symbol_type
4700 {
4701 return symbol_type (token::TOKEN_SUB_HOOKS_LIBRARY, std::move (l));
4702 }
4703#else
4704 static
4705 symbol_type
4707 {
4709 }
4710#endif
4711#if 201103L <= YY_CPLUSPLUS
4712 static
4713 symbol_type
4715 {
4716 return symbol_type (token::TOKEN_SUB_DHCP_DDNS, std::move (l));
4717 }
4718#else
4719 static
4720 symbol_type
4722 {
4724 }
4725#endif
4726#if 201103L <= YY_CPLUSPLUS
4727 static
4728 symbol_type
4730 {
4731 return symbol_type (token::TOKEN_SUB_CONFIG_CONTROL, std::move (l));
4732 }
4733#else
4734 static
4735 symbol_type
4737 {
4739 }
4740#endif
4741#if 201103L <= YY_CPLUSPLUS
4742 static
4743 symbol_type
4744 make_STRING (std::string v, location_type l)
4745 {
4746 return symbol_type (token::TOKEN_STRING, std::move (v), std::move (l));
4747 }
4748#else
4749 static
4750 symbol_type
4751 make_STRING (const std::string& v, const location_type& l)
4752 {
4753 return symbol_type (token::TOKEN_STRING, v, l);
4754 }
4755#endif
4756#if 201103L <= YY_CPLUSPLUS
4757 static
4758 symbol_type
4759 make_INTEGER (int64_t v, location_type l)
4760 {
4761 return symbol_type (token::TOKEN_INTEGER, std::move (v), std::move (l));
4762 }
4763#else
4764 static
4765 symbol_type
4766 make_INTEGER (const int64_t& v, const location_type& l)
4767 {
4768 return symbol_type (token::TOKEN_INTEGER, v, l);
4769 }
4770#endif
4771#if 201103L <= YY_CPLUSPLUS
4772 static
4773 symbol_type
4774 make_FLOAT (double v, location_type l)
4775 {
4776 return symbol_type (token::TOKEN_FLOAT, std::move (v), std::move (l));
4777 }
4778#else
4779 static
4780 symbol_type
4781 make_FLOAT (const double& v, const location_type& l)
4782 {
4783 return symbol_type (token::TOKEN_FLOAT, v, l);
4784 }
4785#endif
4786#if 201103L <= YY_CPLUSPLUS
4787 static
4788 symbol_type
4789 make_BOOLEAN (bool v, location_type l)
4790 {
4791 return symbol_type (token::TOKEN_BOOLEAN, std::move (v), std::move (l));
4792 }
4793#else
4794 static
4795 symbol_type
4796 make_BOOLEAN (const bool& v, const location_type& l)
4797 {
4798 return symbol_type (token::TOKEN_BOOLEAN, v, l);
4799 }
4800#endif
4801
4802
4804 {
4805 public:
4806 context (const Dhcp4Parser& yyparser, const symbol_type& yyla);
4807 const symbol_type& lookahead () const YY_NOEXCEPT { return yyla_; }
4808 symbol_kind_type token () const YY_NOEXCEPT { return yyla_.kind (); }
4809 const location_type& location () const YY_NOEXCEPT { return yyla_.location; }
4810
4814 int expected_tokens (symbol_kind_type yyarg[], int yyargn) const;
4815
4816 private:
4817 const Dhcp4Parser& yyparser_;
4818 const symbol_type& yyla_;
4819 };
4820
4821 private:
4822#if YY_CPLUSPLUS < 201103L
4824 Dhcp4Parser (const Dhcp4Parser&);
4826 Dhcp4Parser& operator= (const Dhcp4Parser&);
4827#endif
4828
4829
4831 typedef short state_type;
4832
4834 int yy_syntax_error_arguments_ (const context& yyctx,
4835 symbol_kind_type yyarg[], int yyargn) const;
4836
4839 virtual std::string yysyntax_error_ (const context& yyctx) const;
4843 static state_type yy_lr_goto_state_ (state_type yystate, int yysym);
4844
4847 static bool yy_pact_value_is_default_ (int yyvalue);
4848
4851 static bool yy_table_value_is_error_ (int yyvalue);
4852
4853 static const short yypact_ninf_;
4854 static const signed char yytable_ninf_;
4855
4859 static symbol_kind_type yytranslate_ (int t);
4860
4862 static std::string yytnamerr_ (const char *yystr);
4863
4865 static const char* const yytname_[];
4866
4867
4868 // Tables.
4869 // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
4870 // STATE-NUM.
4871 static const short yypact_[];
4872
4873 // YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
4874 // Performed when YYTABLE does not specify something else to do. Zero
4875 // means the default is an error.
4876 static const short yydefact_[];
4877
4878 // YYPGOTO[NTERM-NUM].
4879 static const short yypgoto_[];
4880
4881 // YYDEFGOTO[NTERM-NUM].
4882 static const short yydefgoto_[];
4883
4884 // YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
4885 // positive, shift that token. If negative, reduce the rule whose
4886 // number is the opposite. If YYTABLE_NINF, syntax error.
4887 static const short yytable_[];
4888
4889 static const short yycheck_[];
4890
4891 // YYSTOS[STATE-NUM] -- The (internal number of the) accessing
4892 // symbol of state STATE-NUM.
4893 static const short yystos_[];
4894
4895 // YYR1[YYN] -- Symbol number of symbol that rule YYN derives.
4896 static const short yyr1_[];
4897
4898 // YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.
4899 static const signed char yyr2_[];
4900
4901
4902#if PARSER4_DEBUG
4903 // YYRLINE[YYN] -- Source line where rule number YYN was defined.
4904 static const short yyrline_[];
4906 virtual void yy_reduce_print_ (int r) const;
4908 virtual void yy_stack_print_ () const;
4909
4911 int yydebug_;
4913 std::ostream* yycdebug_;
4914
4918 template <typename Base>
4919 void yy_print_ (std::ostream& yyo, const basic_symbol<Base>& yysym) const;
4920#endif
4921
4926 template <typename Base>
4927 void yy_destroy_ (const char* yymsg, basic_symbol<Base>& yysym) const;
4928
4929 private:
4931 struct by_state
4932 {
4934 by_state () YY_NOEXCEPT;
4935
4937 typedef state_type kind_type;
4938
4940 by_state (kind_type s) YY_NOEXCEPT;
4941
4943 by_state (const by_state& that) YY_NOEXCEPT;
4944
4946 void clear () YY_NOEXCEPT;
4947
4949 void move (by_state& that);
4950
4953 symbol_kind_type kind () const YY_NOEXCEPT;
4954
4957 enum { empty_state = 0 };
4958
4961 state_type state;
4962 };
4963
4965 struct stack_symbol_type : basic_symbol<by_state>
4966 {
4968 typedef basic_symbol<by_state> super_type;
4970 stack_symbol_type ();
4972 stack_symbol_type (YY_RVREF (stack_symbol_type) that);
4974 stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) sym);
4975#if YY_CPLUSPLUS < 201103L
4978 stack_symbol_type& operator= (stack_symbol_type& that);
4979
4982 stack_symbol_type& operator= (const stack_symbol_type& that);
4983#endif
4984 };
4985
4987 template <typename T, typename S = std::vector<T> >
4988 class stack
4989 {
4990 public:
4991 // Hide our reversed order.
4992 typedef typename S::iterator iterator;
4993 typedef typename S::const_iterator const_iterator;
4994 typedef typename S::size_type size_type;
4995 typedef typename std::ptrdiff_t index_type;
4996
4997 stack (size_type n = 200)
4998 : seq_ (n)
4999 {}
5000
5001#if 201103L <= YY_CPLUSPLUS
5003 stack (const stack&) = delete;
5005 stack& operator= (const stack&) = delete;
5006#endif
5007
5011 const T&
5012 operator[] (index_type i) const
5013 {
5014 return seq_[size_type (size () - 1 - i)];
5015 }
5016
5020 T&
5021 operator[] (index_type i)
5022 {
5023 return seq_[size_type (size () - 1 - i)];
5024 }
5025
5029 void
5030 push (YY_MOVE_REF (T) t)
5031 {
5032 seq_.push_back (T ());
5033 operator[] (0).move (t);
5034 }
5035
5037 void
5038 pop (std::ptrdiff_t n = 1) YY_NOEXCEPT
5039 {
5040 for (; 0 < n; --n)
5041 seq_.pop_back ();
5042 }
5043
5045 void
5046 clear () YY_NOEXCEPT
5047 {
5048 seq_.clear ();
5049 }
5050
5052 index_type
5053 size () const YY_NOEXCEPT
5054 {
5055 return index_type (seq_.size ());
5056 }
5057
5059 const_iterator
5060 begin () const YY_NOEXCEPT
5061 {
5062 return seq_.begin ();
5063 }
5064
5066 const_iterator
5067 end () const YY_NOEXCEPT
5068 {
5069 return seq_.end ();
5070 }
5071
5073 class slice
5074 {
5075 public:
5076 slice (const stack& stack, index_type range)
5077 : stack_ (stack)
5078 , range_ (range)
5079 {}
5080
5081 const T&
5082 operator[] (index_type i) const
5083 {
5084 return stack_[range_ - i];
5085 }
5086
5087 private:
5088 const stack& stack_;
5089 index_type range_;
5090 };
5091
5092 private:
5093#if YY_CPLUSPLUS < 201103L
5095 stack (const stack&);
5097 stack& operator= (const stack&);
5098#endif
5100 S seq_;
5101 };
5102
5103
5105 typedef stack<stack_symbol_type> stack_type;
5106
5108 stack_type yystack_;
5109
5115 void yypush_ (const char* m, YY_MOVE_REF (stack_symbol_type) sym);
5116
5123 void yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym);
5124
5126 void yypop_ (int n = 1);
5127
5129 enum
5130 {
5131 yylast_ = 1429,
5132 yynnts_ = 419,
5133 yyfinal_ = 28
5134 };
5135
5136
5137 // User arguments.
5139
5140 };
5141
5142 inline
5144 Dhcp4Parser::yytranslate_ (int t)
5145 {
5146 // YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to
5147 // TOKEN-NUM as returned by yylex.
5148 static
5149 const unsigned char
5150 translate_table[] =
5151 {
5152 0, 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, 2, 2, 2, 2,
5160 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5161 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5162 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5163 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5164 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5165 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5166 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5167 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5168 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5169 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5170 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5171 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5172 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5173 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5174 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5175 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5176 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5177 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
5178 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
5179 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
5180 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
5181 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
5182 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
5183 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
5184 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
5185 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
5186 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
5187 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
5188 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
5189 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
5190 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
5191 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
5192 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
5193 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
5194 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
5195 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
5196 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
5197 195, 196, 197, 198, 199, 200, 201, 202, 203, 204
5198 };
5199 // Last valid token kind.
5200 const int code_max = 459;
5201
5202 if (t <= 0)
5203 return symbol_kind::S_YYEOF;
5204 else if (t <= code_max)
5205 return YY_CAST (symbol_kind_type, translate_table[t]);
5206 else
5208 }
5209
5210 // basic_symbol.
5211 template <typename Base>
5213 : Base (that)
5214 , value ()
5215 , location (that.location)
5216 {
5217 switch (this->kind ())
5218 {
5219 case symbol_kind::S_value: // value
5220 case symbol_kind::S_map_value: // map_value
5221 case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value
5222 case symbol_kind::S_socket_type: // socket_type
5223 case symbol_kind::S_outbound_interface_value: // outbound_interface_value
5224 case symbol_kind::S_db_type: // db_type
5225 case symbol_kind::S_on_fail_mode: // on_fail_mode
5226 case symbol_kind::S_hr_mode: // hr_mode
5227 case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value
5228 value.copy< ElementPtr > (YY_MOVE (that.value));
5229 break;
5230
5231 case symbol_kind::S_BOOLEAN: // "boolean"
5232 value.copy< bool > (YY_MOVE (that.value));
5233 break;
5234
5235 case symbol_kind::S_FLOAT: // "floating point"
5236 value.copy< double > (YY_MOVE (that.value));
5237 break;
5238
5239 case symbol_kind::S_INTEGER: // "integer"
5240 value.copy< int64_t > (YY_MOVE (that.value));
5241 break;
5242
5243 case symbol_kind::S_STRING: // "constant string"
5244 value.copy< std::string > (YY_MOVE (that.value));
5245 break;
5246
5247 default:
5248 break;
5249 }
5250
5251 }
5252
5253
5254
5255 template <typename Base>
5258 {
5259 return this->kind ();
5260 }
5261
5262 template <typename Base>
5263 bool
5265 {
5266 return this->kind () == symbol_kind::S_YYEMPTY;
5267 }
5268
5269 template <typename Base>
5270 void
5272 {
5273 super_type::move (s);
5274 switch (this->kind ())
5275 {
5276 case symbol_kind::S_value: // value
5277 case symbol_kind::S_map_value: // map_value
5278 case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value
5279 case symbol_kind::S_socket_type: // socket_type
5280 case symbol_kind::S_outbound_interface_value: // outbound_interface_value
5281 case symbol_kind::S_db_type: // db_type
5282 case symbol_kind::S_on_fail_mode: // on_fail_mode
5283 case symbol_kind::S_hr_mode: // hr_mode
5284 case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value
5285 value.move< ElementPtr > (YY_MOVE (s.value));
5286 break;
5287
5288 case symbol_kind::S_BOOLEAN: // "boolean"
5289 value.move< bool > (YY_MOVE (s.value));
5290 break;
5291
5292 case symbol_kind::S_FLOAT: // "floating point"
5293 value.move< double > (YY_MOVE (s.value));
5294 break;
5295
5296 case symbol_kind::S_INTEGER: // "integer"
5297 value.move< int64_t > (YY_MOVE (s.value));
5298 break;
5299
5300 case symbol_kind::S_STRING: // "constant string"
5301 value.move< std::string > (YY_MOVE (s.value));
5302 break;
5303
5304 default:
5305 break;
5306 }
5307
5308 location = YY_MOVE (s.location);
5309 }
5310
5311 // by_kind.
5312 inline
5314 : kind_ (symbol_kind::S_YYEMPTY)
5315 {}
5316
5317#if 201103L <= YY_CPLUSPLUS
5318 inline
5320 : kind_ (that.kind_)
5321 {
5322 that.clear ();
5323 }
5324#endif
5325
5326 inline
5328 : kind_ (that.kind_)
5329 {}
5330
5331 inline
5333 : kind_ (yytranslate_ (t))
5334 {}
5335
5336 inline
5337 void
5339 {
5340 kind_ = symbol_kind::S_YYEMPTY;
5341 }
5342
5343 inline
5344 void
5346 {
5347 kind_ = that.kind_;
5348 that.clear ();
5349 }
5350
5351 inline
5354 {
5355 return kind_;
5356 }
5357
5358 inline
5361 {
5362 return this->kind ();
5363 }
5364
5365#line 14 "dhcp4_parser.yy"
5366} } // isc::dhcp
5367#line 5368 "dhcp4_parser.h"
5368
5369
5370
5371
5372#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:701
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:698
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.
static symbol_type make_PARKED_PACKET_LIMIT(const location_type &l)
void set_debug_level(debug_level_type l)
Set the current debugging level.
static symbol_type make_PACKET_QUEUE_SIZE(const location_type &l)
static symbol_type make_LEASE_DATABASE(const location_type &l)
Evaluation context, an interface to the expression evaluation.
Forward declaration of the ParserContext class.
#define YY_RVREF(Type)
Definition: dhcp4_parser.h:86
#define YY_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:694