Kea 2.2.0
dhcp4_parser.h
Go to the documentation of this file.
1// A Bison parser, made by GNU Bison 3.8.2.
2
3// Skeleton interface for Bison LALR(1) parsers in C++
4
5// Copyright (C) 2002-2015, 2018-2021 Free Software Foundation, Inc.
6
7// This program is free software: you can redistribute it and/or modify
8// it under the terms of the GNU General Public License as published by
9// the Free Software Foundation, either version 3 of the License, or
10// (at your option) any later version.
11
12// This program is distributed in the hope that it will be useful,
13// but WITHOUT ANY WARRANTY; without even the implied warranty of
14// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15// GNU General Public License for more details.
16
17// You should have received a copy of the GNU General Public License
18// along with this program. If not, see <https://www.gnu.org/licenses/>.
19
20// As a special exception, you may create a larger work that contains
21// part or all of the Bison parser skeleton and distribute that work
22// under terms of your choice, so long as that work isn't itself a
23// parser generator using the skeleton or a modified version thereof
24// as a parser skeleton. Alternatively, if you modify or redistribute
25// the parser skeleton itself, you may (at your option) remove this
26// special exception, which will cause the skeleton and the resulting
27// Bison output files to be licensed under the GNU General Public
28// License without this special exception.
29
30// This special exception was added by the Free Software Foundation in
31// version 2.2 of Bison.
32
33
39// C++ LALR(1) parser skeleton written by Akim Demaille.
40
41// DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
42// especially those whose name start with YY_ or yy_. They are
43// private implementation details that can be changed or removed.
44
45#ifndef YY_PARSER4_DHCP4_PARSER_H_INCLUDED
46# define YY_PARSER4_DHCP4_PARSER_H_INCLUDED
47// "%code requires" blocks.
48#line 17 "dhcp4_parser.yy"
49
50#include <string>
51#include <cc/data.h>
52#include <dhcp/option.h>
53#include <boost/lexical_cast.hpp>
55
56using namespace isc::dhcp;
57using namespace isc::data;
58using namespace std;
59
60#line 61 "dhcp4_parser.h"
61
62# include <cassert>
63# include <cstdlib> // std::abort
64# include <iostream>
65# include <stdexcept>
66# include <string>
67# include <vector>
68
69#if defined __cplusplus
70# define YY_CPLUSPLUS __cplusplus
71#else
72# define YY_CPLUSPLUS 199711L
73#endif
74
75// Support move semantics when possible.
76#if 201103L <= YY_CPLUSPLUS
77# define YY_MOVE std::move
78# define YY_MOVE_OR_COPY move
79# define YY_MOVE_REF(Type) Type&&
80# define YY_RVREF(Type) Type&&
81# define YY_COPY(Type) Type
82#else
83# define YY_MOVE
84# define YY_MOVE_OR_COPY copy
85# define YY_MOVE_REF(Type) Type&
86# define YY_RVREF(Type) const Type&
87# define YY_COPY(Type) const Type&
88#endif
89
90// Support noexcept when possible.
91#if 201103L <= YY_CPLUSPLUS
92# define YY_NOEXCEPT noexcept
93# define YY_NOTHROW
94#else
95# define YY_NOEXCEPT
96# define YY_NOTHROW throw ()
97#endif
98
99// Support constexpr when possible.
100#if 201703 <= YY_CPLUSPLUS
101# define YY_CONSTEXPR constexpr
102#else
103# define YY_CONSTEXPR
104#endif
105# include "location.hh"
106#include <typeinfo>
107#ifndef PARSER4__ASSERT
108# include <cassert>
109# define PARSER4__ASSERT assert
110#endif
111
112
113#ifndef YY_ATTRIBUTE_PURE
114# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
115# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
116# else
117# define YY_ATTRIBUTE_PURE
118# endif
119#endif
120
121#ifndef YY_ATTRIBUTE_UNUSED
122# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
123# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
124# else
125# define YY_ATTRIBUTE_UNUSED
126# endif
127#endif
128
129/* Suppress unused-variable warnings by "using" E. */
130#if ! defined lint || defined __GNUC__
131# define YY_USE(E) ((void) (E))
132#else
133# define YY_USE(E) /* empty */
134#endif
135
136/* Suppress an incorrect diagnostic about yylval being uninitialized. */
137#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
138# if __GNUC__ * 100 + __GNUC_MINOR__ < 407
139# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
140 _Pragma ("GCC diagnostic push") \
141 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
142# else
143# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
144 _Pragma ("GCC diagnostic push") \
145 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
146 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
147# endif
148# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
149 _Pragma ("GCC diagnostic pop")
150#else
151# define YY_INITIAL_VALUE(Value) Value
152#endif
153#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
154# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
155# define YY_IGNORE_MAYBE_UNINITIALIZED_END
156#endif
157#ifndef YY_INITIAL_VALUE
158# define YY_INITIAL_VALUE(Value) /* Nothing. */
159#endif
160
161#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
162# define YY_IGNORE_USELESS_CAST_BEGIN \
163 _Pragma ("GCC diagnostic push") \
164 _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
165# define YY_IGNORE_USELESS_CAST_END \
166 _Pragma ("GCC diagnostic pop")
167#endif
168#ifndef YY_IGNORE_USELESS_CAST_BEGIN
169# define YY_IGNORE_USELESS_CAST_BEGIN
170# define YY_IGNORE_USELESS_CAST_END
171#endif
172
173# ifndef YY_CAST
174# ifdef __cplusplus
175# define YY_CAST(Type, Val) static_cast<Type> (Val)
176# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
177# else
178# define YY_CAST(Type, Val) ((Type) (Val))
179# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
180# endif
181# endif
182# ifndef YY_NULLPTR
183# if defined __cplusplus
184# if 201103L <= __cplusplus
185# define YY_NULLPTR nullptr
186# else
187# define YY_NULLPTR 0
188# endif
189# else
190# define YY_NULLPTR ((void*)0)
191# endif
192# endif
193
194/* Debug traces. */
195#ifndef PARSER4_DEBUG
196# if defined YYDEBUG
197#if YYDEBUG
198# define PARSER4_DEBUG 1
199# else
200# define PARSER4_DEBUG 0
201# endif
202# else /* ! defined YYDEBUG */
203# define PARSER4_DEBUG 1
204# endif /* ! defined YYDEBUG */
205#endif /* ! defined PARSER4_DEBUG */
206
207#line 14 "dhcp4_parser.yy"
208namespace isc { namespace dhcp {
209#line 210 "dhcp4_parser.h"
210
211
212
213
216 {
217 public:
218#ifdef PARSER4_STYPE
219# ifdef __GNUC__
220# pragma GCC message "bison: do not #define PARSER4_STYPE in C++, use %define api.value.type"
221# endif
222 typedef PARSER4_STYPE value_type;
223#else
230 {
231 public:
234
237 : yyraw_ ()
238 , yytypeid_ (YY_NULLPTR)
239 {}
240
242 template <typename T>
244 : yytypeid_ (&typeid (T))
245 {
246 PARSER4__ASSERT (sizeof (T) <= size);
247 new (yyas_<T> ()) T (YY_MOVE (t));
248 }
249
250#if 201103L <= YY_CPLUSPLUS
252 value_type (const self_type&) = delete;
254 self_type& operator= (const self_type&) = delete;
255#endif
256
259 {
260 PARSER4__ASSERT (!yytypeid_);
261 }
262
263# if 201103L <= YY_CPLUSPLUS
265 template <typename T, typename... U>
266 T&
267 emplace (U&&... u)
268 {
269 PARSER4__ASSERT (!yytypeid_);
270 PARSER4__ASSERT (sizeof (T) <= size);
271 yytypeid_ = & typeid (T);
272 return *new (yyas_<T> ()) T (std::forward <U>(u)...);
273 }
274# else
276 template <typename T>
277 T&
279 {
280 PARSER4__ASSERT (!yytypeid_);
281 PARSER4__ASSERT (sizeof (T) <= size);
282 yytypeid_ = & typeid (T);
283 return *new (yyas_<T> ()) T ();
284 }
285
287 template <typename T>
288 T&
289 emplace (const T& t)
290 {
291 PARSER4__ASSERT (!yytypeid_);
292 PARSER4__ASSERT (sizeof (T) <= size);
293 yytypeid_ = & typeid (T);
294 return *new (yyas_<T> ()) T (t);
295 }
296# endif
297
300 template <typename T>
301 T&
303 {
304 return emplace<T> ();
305 }
306
309 template <typename T>
310 T&
311 build (const T& t)
312 {
313 return emplace<T> (t);
314 }
315
317 template <typename T>
318 T&
320 {
321 PARSER4__ASSERT (yytypeid_);
322 PARSER4__ASSERT (*yytypeid_ == typeid (T));
323 PARSER4__ASSERT (sizeof (T) <= size);
324 return *yyas_<T> ();
325 }
326
328 template <typename T>
329 const T&
331 {
332 PARSER4__ASSERT (yytypeid_);
333 PARSER4__ASSERT (*yytypeid_ == typeid (T));
334 PARSER4__ASSERT (sizeof (T) <= size);
335 return *yyas_<T> ();
336 }
337
346 template <typename T>
347 void
349 {
350 PARSER4__ASSERT (yytypeid_);
351 PARSER4__ASSERT (*yytypeid_ == *that.yytypeid_);
352 std::swap (as<T> (), that.as<T> ());
353 }
354
358 template <typename T>
359 void
361 {
362# if 201103L <= YY_CPLUSPLUS
363 emplace<T> (std::move (that.as<T> ()));
364# else
365 emplace<T> ();
366 swap<T> (that);
367# endif
368 that.destroy<T> ();
369 }
370
371# if 201103L <= YY_CPLUSPLUS
373 template <typename T>
374 void
375 move (self_type&& that)
376 {
377 emplace<T> (std::move (that.as<T> ()));
378 that.destroy<T> ();
379 }
380#endif
381
383 template <typename T>
384 void
385 copy (const self_type& that)
386 {
387 emplace<T> (that.as<T> ());
388 }
389
391 template <typename T>
392 void
394 {
395 as<T> ().~T ();
396 yytypeid_ = YY_NULLPTR;
397 }
398
399 private:
400#if YY_CPLUSPLUS < 201103L
402 value_type (const self_type&);
404 self_type& operator= (const self_type&);
405#endif
406
408 template <typename T>
409 T*
410 yyas_ () YY_NOEXCEPT
411 {
412 void *yyp = yyraw_;
413 return static_cast<T*> (yyp);
414 }
415
417 template <typename T>
418 const T*
419 yyas_ () const YY_NOEXCEPT
420 {
421 const void *yyp = yyraw_;
422 return static_cast<const T*> (yyp);
423 }
424
426 union union_type
427 {
428 // value
429 // map_value
430 // ddns_replace_client_name_value
431 // socket_type
432 // outbound_interface_value
433 // db_type
434 // on_fail_mode
435 // hr_mode
436 // ncr_protocol_value
437 char dummy1[sizeof (ElementPtr)];
438
439 // "boolean"
440 char dummy2[sizeof (bool)];
441
442 // "floating point"
443 char dummy3[sizeof (double)];
444
445 // "integer"
446 char dummy4[sizeof (int64_t)];
447
448 // "constant string"
449 char dummy5[sizeof (std::string)];
450 };
451
453 enum { size = sizeof (union_type) };
454
456 union
457 {
459 long double yyalign_me_;
461 char yyraw_[size];
462 };
463
465 const std::type_info *yytypeid_;
466 };
467
468#endif
471
473 typedef location location_type;
474
476 struct syntax_error : std::runtime_error
477 {
478 syntax_error (const location_type& l, const std::string& m)
479 : std::runtime_error (m)
480 , location (l)
481 {}
482
484 : std::runtime_error (s.what ())
485 , location (s.location)
486 {}
487
489
491 };
492
494 struct token
495 {
497 {
498 TOKEN_PARSER4_EMPTY = -2,
499 TOKEN_END = 0, // "end of file"
500 TOKEN_PARSER4_error = 256, // error
501 TOKEN_PARSER4_UNDEF = 257, // "invalid token"
502 TOKEN_COMMA = 258, // ","
503 TOKEN_COLON = 259, // ":"
504 TOKEN_LSQUARE_BRACKET = 260, // "["
505 TOKEN_RSQUARE_BRACKET = 261, // "]"
506 TOKEN_LCURLY_BRACKET = 262, // "{"
507 TOKEN_RCURLY_BRACKET = 263, // "}"
508 TOKEN_NULL_TYPE = 264, // "null"
509 TOKEN_DHCP4 = 265, // "Dhcp4"
510 TOKEN_CONFIG_CONTROL = 266, // "config-control"
511 TOKEN_CONFIG_DATABASES = 267, // "config-databases"
512 TOKEN_CONFIG_FETCH_WAIT_TIME = 268, // "config-fetch-wait-time"
513 TOKEN_INTERFACES_CONFIG = 269, // "interfaces-config"
514 TOKEN_INTERFACES = 270, // "interfaces"
515 TOKEN_DHCP_SOCKET_TYPE = 271, // "dhcp-socket-type"
516 TOKEN_RAW = 272, // "raw"
517 TOKEN_UDP = 273, // "udp"
518 TOKEN_OUTBOUND_INTERFACE = 274, // "outbound-interface"
519 TOKEN_SAME_AS_INBOUND = 275, // "same-as-inbound"
520 TOKEN_USE_ROUTING = 276, // "use-routing"
521 TOKEN_RE_DETECT = 277, // "re-detect"
522 TOKEN_SERVICE_SOCKETS_REQUIRE_ALL = 278, // "service-sockets-require-all"
523 TOKEN_SERVICE_SOCKETS_RETRY_WAIT_TIME = 279, // "service-sockets-retry-wait-time"
524 TOKEN_SERVICE_SOCKETS_MAX_RETRIES = 280, // "service-sockets-max-retries"
525 TOKEN_SANITY_CHECKS = 281, // "sanity-checks"
526 TOKEN_LEASE_CHECKS = 282, // "lease-checks"
527 TOKEN_ECHO_CLIENT_ID = 283, // "echo-client-id"
528 TOKEN_MATCH_CLIENT_ID = 284, // "match-client-id"
529 TOKEN_AUTHORITATIVE = 285, // "authoritative"
530 TOKEN_NEXT_SERVER = 286, // "next-server"
531 TOKEN_SERVER_HOSTNAME = 287, // "server-hostname"
532 TOKEN_BOOT_FILE_NAME = 288, // "boot-file-name"
533 TOKEN_LEASE_DATABASE = 289, // "lease-database"
534 TOKEN_HOSTS_DATABASE = 290, // "hosts-database"
535 TOKEN_HOSTS_DATABASES = 291, // "hosts-databases"
536 TOKEN_TYPE = 292, // "type"
537 TOKEN_MEMFILE = 293, // "memfile"
538 TOKEN_MYSQL = 294, // "mysql"
539 TOKEN_POSTGRESQL = 295, // "postgresql"
540 TOKEN_USER = 296, // "user"
541 TOKEN_PASSWORD = 297, // "password"
542 TOKEN_HOST = 298, // "host"
543 TOKEN_PORT = 299, // "port"
544 TOKEN_PERSIST = 300, // "persist"
545 TOKEN_LFC_INTERVAL = 301, // "lfc-interval"
546 TOKEN_READONLY = 302, // "readonly"
547 TOKEN_CONNECT_TIMEOUT = 303, // "connect-timeout"
548 TOKEN_MAX_RECONNECT_TRIES = 304, // "max-reconnect-tries"
549 TOKEN_RECONNECT_WAIT_TIME = 305, // "reconnect-wait-time"
550 TOKEN_ON_FAIL = 306, // "on-fail"
551 TOKEN_STOP_RETRY_EXIT = 307, // "stop-retry-exit"
552 TOKEN_SERVE_RETRY_EXIT = 308, // "serve-retry-exit"
553 TOKEN_SERVE_RETRY_CONTINUE = 309, // "serve-retry-continue"
554 TOKEN_MAX_ROW_ERRORS = 310, // "max-row-errors"
555 TOKEN_TRUST_ANCHOR = 311, // "trust-anchor"
556 TOKEN_CERT_FILE = 312, // "cert-file"
557 TOKEN_KEY_FILE = 313, // "key-file"
558 TOKEN_CIPHER_LIST = 314, // "cipher-list"
559 TOKEN_VALID_LIFETIME = 315, // "valid-lifetime"
560 TOKEN_MIN_VALID_LIFETIME = 316, // "min-valid-lifetime"
561 TOKEN_MAX_VALID_LIFETIME = 317, // "max-valid-lifetime"
562 TOKEN_RENEW_TIMER = 318, // "renew-timer"
563 TOKEN_REBIND_TIMER = 319, // "rebind-timer"
564 TOKEN_CALCULATE_TEE_TIMES = 320, // "calculate-tee-times"
565 TOKEN_T1_PERCENT = 321, // "t1-percent"
566 TOKEN_T2_PERCENT = 322, // "t2-percent"
567 TOKEN_CACHE_THRESHOLD = 323, // "cache-threshold"
568 TOKEN_CACHE_MAX_AGE = 324, // "cache-max-age"
569 TOKEN_DECLINE_PROBATION_PERIOD = 325, // "decline-probation-period"
570 TOKEN_SERVER_TAG = 326, // "server-tag"
571 TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT = 327, // "statistic-default-sample-count"
572 TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE = 328, // "statistic-default-sample-age"
573 TOKEN_DDNS_SEND_UPDATES = 329, // "ddns-send-updates"
574 TOKEN_DDNS_OVERRIDE_NO_UPDATE = 330, // "ddns-override-no-update"
575 TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE = 331, // "ddns-override-client-update"
576 TOKEN_DDNS_REPLACE_CLIENT_NAME = 332, // "ddns-replace-client-name"
577 TOKEN_DDNS_GENERATED_PREFIX = 333, // "ddns-generated-prefix"
578 TOKEN_DDNS_QUALIFYING_SUFFIX = 334, // "ddns-qualifying-suffix"
579 TOKEN_DDNS_UPDATE_ON_RENEW = 335, // "ddns-update-on-renew"
580 TOKEN_DDNS_USE_CONFLICT_RESOLUTION = 336, // "ddns-use-conflict-resolution"
581 TOKEN_STORE_EXTENDED_INFO = 337, // "store-extended-info"
582 TOKEN_SUBNET4 = 338, // "subnet4"
583 TOKEN_SUBNET_4O6_INTERFACE = 339, // "4o6-interface"
584 TOKEN_SUBNET_4O6_INTERFACE_ID = 340, // "4o6-interface-id"
585 TOKEN_SUBNET_4O6_SUBNET = 341, // "4o6-subnet"
586 TOKEN_OPTION_DEF = 342, // "option-def"
587 TOKEN_OPTION_DATA = 343, // "option-data"
588 TOKEN_NAME = 344, // "name"
589 TOKEN_DATA = 345, // "data"
590 TOKEN_CODE = 346, // "code"
591 TOKEN_SPACE = 347, // "space"
592 TOKEN_CSV_FORMAT = 348, // "csv-format"
593 TOKEN_ALWAYS_SEND = 349, // "always-send"
594 TOKEN_RECORD_TYPES = 350, // "record-types"
595 TOKEN_ENCAPSULATE = 351, // "encapsulate"
596 TOKEN_ARRAY = 352, // "array"
597 TOKEN_PARKED_PACKET_LIMIT = 353, // "parked-packet-limit"
598 TOKEN_SHARED_NETWORKS = 354, // "shared-networks"
599 TOKEN_POOLS = 355, // "pools"
600 TOKEN_POOL = 356, // "pool"
601 TOKEN_USER_CONTEXT = 357, // "user-context"
602 TOKEN_COMMENT = 358, // "comment"
603 TOKEN_SUBNET = 359, // "subnet"
604 TOKEN_INTERFACE = 360, // "interface"
605 TOKEN_ID = 361, // "id"
606 TOKEN_RESERVATION_MODE = 362, // "reservation-mode"
607 TOKEN_DISABLED = 363, // "disabled"
608 TOKEN_OUT_OF_POOL = 364, // "out-of-pool"
609 TOKEN_GLOBAL = 365, // "global"
610 TOKEN_ALL = 366, // "all"
611 TOKEN_RESERVATIONS_GLOBAL = 367, // "reservations-global"
612 TOKEN_RESERVATIONS_IN_SUBNET = 368, // "reservations-in-subnet"
613 TOKEN_RESERVATIONS_OUT_OF_POOL = 369, // "reservations-out-of-pool"
614 TOKEN_HOST_RESERVATION_IDENTIFIERS = 370, // "host-reservation-identifiers"
615 TOKEN_CLIENT_CLASSES = 371, // "client-classes"
616 TOKEN_REQUIRE_CLIENT_CLASSES = 372, // "require-client-classes"
617 TOKEN_TEST = 373, // "test"
618 TOKEN_ONLY_IF_REQUIRED = 374, // "only-if-required"
619 TOKEN_CLIENT_CLASS = 375, // "client-class"
620 TOKEN_RESERVATIONS = 376, // "reservations"
621 TOKEN_DUID = 377, // "duid"
622 TOKEN_HW_ADDRESS = 378, // "hw-address"
623 TOKEN_CIRCUIT_ID = 379, // "circuit-id"
624 TOKEN_CLIENT_ID = 380, // "client-id"
625 TOKEN_HOSTNAME = 381, // "hostname"
626 TOKEN_FLEX_ID = 382, // "flex-id"
627 TOKEN_RELAY = 383, // "relay"
628 TOKEN_IP_ADDRESS = 384, // "ip-address"
629 TOKEN_IP_ADDRESSES = 385, // "ip-addresses"
630 TOKEN_HOOKS_LIBRARIES = 386, // "hooks-libraries"
631 TOKEN_LIBRARY = 387, // "library"
632 TOKEN_PARAMETERS = 388, // "parameters"
633 TOKEN_EXPIRED_LEASES_PROCESSING = 389, // "expired-leases-processing"
634 TOKEN_RECLAIM_TIMER_WAIT_TIME = 390, // "reclaim-timer-wait-time"
635 TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 391, // "flush-reclaimed-timer-wait-time"
636 TOKEN_HOLD_RECLAIMED_TIME = 392, // "hold-reclaimed-time"
637 TOKEN_MAX_RECLAIM_LEASES = 393, // "max-reclaim-leases"
638 TOKEN_MAX_RECLAIM_TIME = 394, // "max-reclaim-time"
639 TOKEN_UNWARNED_RECLAIM_CYCLES = 395, // "unwarned-reclaim-cycles"
640 TOKEN_DHCP4O6_PORT = 396, // "dhcp4o6-port"
641 TOKEN_DHCP_MULTI_THREADING = 397, // "multi-threading"
642 TOKEN_ENABLE_MULTI_THREADING = 398, // "enable-multi-threading"
643 TOKEN_THREAD_POOL_SIZE = 399, // "thread-pool-size"
644 TOKEN_PACKET_QUEUE_SIZE = 400, // "packet-queue-size"
645 TOKEN_CONTROL_SOCKET = 401, // "control-socket"
646 TOKEN_SOCKET_TYPE = 402, // "socket-type"
647 TOKEN_SOCKET_NAME = 403, // "socket-name"
648 TOKEN_DHCP_QUEUE_CONTROL = 404, // "dhcp-queue-control"
649 TOKEN_ENABLE_QUEUE = 405, // "enable-queue"
650 TOKEN_QUEUE_TYPE = 406, // "queue-type"
651 TOKEN_CAPACITY = 407, // "capacity"
652 TOKEN_DHCP_DDNS = 408, // "dhcp-ddns"
653 TOKEN_ENABLE_UPDATES = 409, // "enable-updates"
654 TOKEN_QUALIFYING_SUFFIX = 410, // "qualifying-suffix"
655 TOKEN_SERVER_IP = 411, // "server-ip"
656 TOKEN_SERVER_PORT = 412, // "server-port"
657 TOKEN_SENDER_IP = 413, // "sender-ip"
658 TOKEN_SENDER_PORT = 414, // "sender-port"
659 TOKEN_MAX_QUEUE_SIZE = 415, // "max-queue-size"
660 TOKEN_NCR_PROTOCOL = 416, // "ncr-protocol"
661 TOKEN_NCR_FORMAT = 417, // "ncr-format"
662 TOKEN_OVERRIDE_NO_UPDATE = 418, // "override-no-update"
663 TOKEN_OVERRIDE_CLIENT_UPDATE = 419, // "override-client-update"
664 TOKEN_REPLACE_CLIENT_NAME = 420, // "replace-client-name"
665 TOKEN_GENERATED_PREFIX = 421, // "generated-prefix"
666 TOKEN_TCP = 422, // "tcp"
667 TOKEN_JSON = 423, // "JSON"
668 TOKEN_WHEN_PRESENT = 424, // "when-present"
669 TOKEN_NEVER = 425, // "never"
670 TOKEN_ALWAYS = 426, // "always"
671 TOKEN_WHEN_NOT_PRESENT = 427, // "when-not-present"
672 TOKEN_HOSTNAME_CHAR_SET = 428, // "hostname-char-set"
673 TOKEN_HOSTNAME_CHAR_REPLACEMENT = 429, // "hostname-char-replacement"
674 TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 430, // "early-global-reservations-lookup"
675 TOKEN_IP_RESERVATIONS_UNIQUE = 431, // "ip-reservations-unique"
676 TOKEN_RESERVATIONS_LOOKUP_FIRST = 432, // "reservations-lookup-first"
677 TOKEN_LOGGERS = 433, // "loggers"
678 TOKEN_OUTPUT_OPTIONS = 434, // "output_options"
679 TOKEN_OUTPUT = 435, // "output"
680 TOKEN_DEBUGLEVEL = 436, // "debuglevel"
681 TOKEN_SEVERITY = 437, // "severity"
682 TOKEN_FLUSH = 438, // "flush"
683 TOKEN_MAXSIZE = 439, // "maxsize"
684 TOKEN_MAXVER = 440, // "maxver"
685 TOKEN_PATTERN = 441, // "pattern"
686 TOKEN_COMPATIBILITY = 442, // "compatibility"
687 TOKEN_LENIENT_OPTION_PARSING = 443, // "lenient-option-parsing"
688 TOKEN_TOPLEVEL_JSON = 444, // TOPLEVEL_JSON
689 TOKEN_TOPLEVEL_DHCP4 = 445, // TOPLEVEL_DHCP4
690 TOKEN_SUB_DHCP4 = 446, // SUB_DHCP4
691 TOKEN_SUB_INTERFACES4 = 447, // SUB_INTERFACES4
692 TOKEN_SUB_SUBNET4 = 448, // SUB_SUBNET4
693 TOKEN_SUB_POOL4 = 449, // SUB_POOL4
694 TOKEN_SUB_RESERVATION = 450, // SUB_RESERVATION
695 TOKEN_SUB_OPTION_DEFS = 451, // SUB_OPTION_DEFS
696 TOKEN_SUB_OPTION_DEF = 452, // SUB_OPTION_DEF
697 TOKEN_SUB_OPTION_DATA = 453, // SUB_OPTION_DATA
698 TOKEN_SUB_HOOKS_LIBRARY = 454, // SUB_HOOKS_LIBRARY
699 TOKEN_SUB_DHCP_DDNS = 455, // SUB_DHCP_DDNS
700 TOKEN_SUB_CONFIG_CONTROL = 456, // SUB_CONFIG_CONTROL
701 TOKEN_STRING = 457, // "constant string"
702 TOKEN_INTEGER = 458, // "integer"
703 TOKEN_FLOAT = 459, // "floating point"
704 TOKEN_BOOLEAN = 460 // "boolean"
705 };
708 };
709
712
715
718 {
720 {
721 YYNTOKENS = 206,
722 S_YYEMPTY = -2,
723 S_YYEOF = 0, // "end of file"
724 S_YYerror = 1, // error
725 S_YYUNDEF = 2, // "invalid token"
726 S_COMMA = 3, // ","
727 S_COLON = 4, // ":"
728 S_LSQUARE_BRACKET = 5, // "["
729 S_RSQUARE_BRACKET = 6, // "]"
730 S_LCURLY_BRACKET = 7, // "{"
731 S_RCURLY_BRACKET = 8, // "}"
732 S_NULL_TYPE = 9, // "null"
733 S_DHCP4 = 10, // "Dhcp4"
734 S_CONFIG_CONTROL = 11, // "config-control"
735 S_CONFIG_DATABASES = 12, // "config-databases"
736 S_CONFIG_FETCH_WAIT_TIME = 13, // "config-fetch-wait-time"
737 S_INTERFACES_CONFIG = 14, // "interfaces-config"
738 S_INTERFACES = 15, // "interfaces"
739 S_DHCP_SOCKET_TYPE = 16, // "dhcp-socket-type"
740 S_RAW = 17, // "raw"
741 S_UDP = 18, // "udp"
742 S_OUTBOUND_INTERFACE = 19, // "outbound-interface"
743 S_SAME_AS_INBOUND = 20, // "same-as-inbound"
744 S_USE_ROUTING = 21, // "use-routing"
745 S_RE_DETECT = 22, // "re-detect"
746 S_SERVICE_SOCKETS_REQUIRE_ALL = 23, // "service-sockets-require-all"
747 S_SERVICE_SOCKETS_RETRY_WAIT_TIME = 24, // "service-sockets-retry-wait-time"
748 S_SERVICE_SOCKETS_MAX_RETRIES = 25, // "service-sockets-max-retries"
749 S_SANITY_CHECKS = 26, // "sanity-checks"
750 S_LEASE_CHECKS = 27, // "lease-checks"
751 S_ECHO_CLIENT_ID = 28, // "echo-client-id"
752 S_MATCH_CLIENT_ID = 29, // "match-client-id"
753 S_AUTHORITATIVE = 30, // "authoritative"
754 S_NEXT_SERVER = 31, // "next-server"
755 S_SERVER_HOSTNAME = 32, // "server-hostname"
756 S_BOOT_FILE_NAME = 33, // "boot-file-name"
757 S_LEASE_DATABASE = 34, // "lease-database"
758 S_HOSTS_DATABASE = 35, // "hosts-database"
759 S_HOSTS_DATABASES = 36, // "hosts-databases"
760 S_TYPE = 37, // "type"
761 S_MEMFILE = 38, // "memfile"
762 S_MYSQL = 39, // "mysql"
763 S_POSTGRESQL = 40, // "postgresql"
764 S_USER = 41, // "user"
765 S_PASSWORD = 42, // "password"
766 S_HOST = 43, // "host"
767 S_PORT = 44, // "port"
768 S_PERSIST = 45, // "persist"
769 S_LFC_INTERVAL = 46, // "lfc-interval"
770 S_READONLY = 47, // "readonly"
771 S_CONNECT_TIMEOUT = 48, // "connect-timeout"
772 S_MAX_RECONNECT_TRIES = 49, // "max-reconnect-tries"
773 S_RECONNECT_WAIT_TIME = 50, // "reconnect-wait-time"
774 S_ON_FAIL = 51, // "on-fail"
775 S_STOP_RETRY_EXIT = 52, // "stop-retry-exit"
776 S_SERVE_RETRY_EXIT = 53, // "serve-retry-exit"
777 S_SERVE_RETRY_CONTINUE = 54, // "serve-retry-continue"
778 S_MAX_ROW_ERRORS = 55, // "max-row-errors"
779 S_TRUST_ANCHOR = 56, // "trust-anchor"
780 S_CERT_FILE = 57, // "cert-file"
781 S_KEY_FILE = 58, // "key-file"
782 S_CIPHER_LIST = 59, // "cipher-list"
783 S_VALID_LIFETIME = 60, // "valid-lifetime"
784 S_MIN_VALID_LIFETIME = 61, // "min-valid-lifetime"
785 S_MAX_VALID_LIFETIME = 62, // "max-valid-lifetime"
786 S_RENEW_TIMER = 63, // "renew-timer"
787 S_REBIND_TIMER = 64, // "rebind-timer"
788 S_CALCULATE_TEE_TIMES = 65, // "calculate-tee-times"
789 S_T1_PERCENT = 66, // "t1-percent"
790 S_T2_PERCENT = 67, // "t2-percent"
791 S_CACHE_THRESHOLD = 68, // "cache-threshold"
792 S_CACHE_MAX_AGE = 69, // "cache-max-age"
793 S_DECLINE_PROBATION_PERIOD = 70, // "decline-probation-period"
794 S_SERVER_TAG = 71, // "server-tag"
795 S_STATISTIC_DEFAULT_SAMPLE_COUNT = 72, // "statistic-default-sample-count"
796 S_STATISTIC_DEFAULT_SAMPLE_AGE = 73, // "statistic-default-sample-age"
797 S_DDNS_SEND_UPDATES = 74, // "ddns-send-updates"
798 S_DDNS_OVERRIDE_NO_UPDATE = 75, // "ddns-override-no-update"
799 S_DDNS_OVERRIDE_CLIENT_UPDATE = 76, // "ddns-override-client-update"
800 S_DDNS_REPLACE_CLIENT_NAME = 77, // "ddns-replace-client-name"
801 S_DDNS_GENERATED_PREFIX = 78, // "ddns-generated-prefix"
802 S_DDNS_QUALIFYING_SUFFIX = 79, // "ddns-qualifying-suffix"
803 S_DDNS_UPDATE_ON_RENEW = 80, // "ddns-update-on-renew"
804 S_DDNS_USE_CONFLICT_RESOLUTION = 81, // "ddns-use-conflict-resolution"
805 S_STORE_EXTENDED_INFO = 82, // "store-extended-info"
806 S_SUBNET4 = 83, // "subnet4"
807 S_SUBNET_4O6_INTERFACE = 84, // "4o6-interface"
808 S_SUBNET_4O6_INTERFACE_ID = 85, // "4o6-interface-id"
809 S_SUBNET_4O6_SUBNET = 86, // "4o6-subnet"
810 S_OPTION_DEF = 87, // "option-def"
811 S_OPTION_DATA = 88, // "option-data"
812 S_NAME = 89, // "name"
813 S_DATA = 90, // "data"
814 S_CODE = 91, // "code"
815 S_SPACE = 92, // "space"
816 S_CSV_FORMAT = 93, // "csv-format"
817 S_ALWAYS_SEND = 94, // "always-send"
818 S_RECORD_TYPES = 95, // "record-types"
819 S_ENCAPSULATE = 96, // "encapsulate"
820 S_ARRAY = 97, // "array"
821 S_PARKED_PACKET_LIMIT = 98, // "parked-packet-limit"
822 S_SHARED_NETWORKS = 99, // "shared-networks"
823 S_POOLS = 100, // "pools"
824 S_POOL = 101, // "pool"
825 S_USER_CONTEXT = 102, // "user-context"
826 S_COMMENT = 103, // "comment"
827 S_SUBNET = 104, // "subnet"
828 S_INTERFACE = 105, // "interface"
829 S_ID = 106, // "id"
830 S_RESERVATION_MODE = 107, // "reservation-mode"
831 S_DISABLED = 108, // "disabled"
832 S_OUT_OF_POOL = 109, // "out-of-pool"
833 S_GLOBAL = 110, // "global"
834 S_ALL = 111, // "all"
835 S_RESERVATIONS_GLOBAL = 112, // "reservations-global"
836 S_RESERVATIONS_IN_SUBNET = 113, // "reservations-in-subnet"
837 S_RESERVATIONS_OUT_OF_POOL = 114, // "reservations-out-of-pool"
838 S_HOST_RESERVATION_IDENTIFIERS = 115, // "host-reservation-identifiers"
839 S_CLIENT_CLASSES = 116, // "client-classes"
840 S_REQUIRE_CLIENT_CLASSES = 117, // "require-client-classes"
841 S_TEST = 118, // "test"
842 S_ONLY_IF_REQUIRED = 119, // "only-if-required"
843 S_CLIENT_CLASS = 120, // "client-class"
844 S_RESERVATIONS = 121, // "reservations"
845 S_DUID = 122, // "duid"
846 S_HW_ADDRESS = 123, // "hw-address"
847 S_CIRCUIT_ID = 124, // "circuit-id"
848 S_CLIENT_ID = 125, // "client-id"
849 S_HOSTNAME = 126, // "hostname"
850 S_FLEX_ID = 127, // "flex-id"
851 S_RELAY = 128, // "relay"
852 S_IP_ADDRESS = 129, // "ip-address"
853 S_IP_ADDRESSES = 130, // "ip-addresses"
854 S_HOOKS_LIBRARIES = 131, // "hooks-libraries"
855 S_LIBRARY = 132, // "library"
856 S_PARAMETERS = 133, // "parameters"
857 S_EXPIRED_LEASES_PROCESSING = 134, // "expired-leases-processing"
858 S_RECLAIM_TIMER_WAIT_TIME = 135, // "reclaim-timer-wait-time"
859 S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 136, // "flush-reclaimed-timer-wait-time"
860 S_HOLD_RECLAIMED_TIME = 137, // "hold-reclaimed-time"
861 S_MAX_RECLAIM_LEASES = 138, // "max-reclaim-leases"
862 S_MAX_RECLAIM_TIME = 139, // "max-reclaim-time"
863 S_UNWARNED_RECLAIM_CYCLES = 140, // "unwarned-reclaim-cycles"
864 S_DHCP4O6_PORT = 141, // "dhcp4o6-port"
865 S_DHCP_MULTI_THREADING = 142, // "multi-threading"
866 S_ENABLE_MULTI_THREADING = 143, // "enable-multi-threading"
867 S_THREAD_POOL_SIZE = 144, // "thread-pool-size"
868 S_PACKET_QUEUE_SIZE = 145, // "packet-queue-size"
869 S_CONTROL_SOCKET = 146, // "control-socket"
870 S_SOCKET_TYPE = 147, // "socket-type"
871 S_SOCKET_NAME = 148, // "socket-name"
872 S_DHCP_QUEUE_CONTROL = 149, // "dhcp-queue-control"
873 S_ENABLE_QUEUE = 150, // "enable-queue"
874 S_QUEUE_TYPE = 151, // "queue-type"
875 S_CAPACITY = 152, // "capacity"
876 S_DHCP_DDNS = 153, // "dhcp-ddns"
877 S_ENABLE_UPDATES = 154, // "enable-updates"
878 S_QUALIFYING_SUFFIX = 155, // "qualifying-suffix"
879 S_SERVER_IP = 156, // "server-ip"
880 S_SERVER_PORT = 157, // "server-port"
881 S_SENDER_IP = 158, // "sender-ip"
882 S_SENDER_PORT = 159, // "sender-port"
883 S_MAX_QUEUE_SIZE = 160, // "max-queue-size"
884 S_NCR_PROTOCOL = 161, // "ncr-protocol"
885 S_NCR_FORMAT = 162, // "ncr-format"
886 S_OVERRIDE_NO_UPDATE = 163, // "override-no-update"
887 S_OVERRIDE_CLIENT_UPDATE = 164, // "override-client-update"
888 S_REPLACE_CLIENT_NAME = 165, // "replace-client-name"
889 S_GENERATED_PREFIX = 166, // "generated-prefix"
890 S_TCP = 167, // "tcp"
891 S_JSON = 168, // "JSON"
892 S_WHEN_PRESENT = 169, // "when-present"
893 S_NEVER = 170, // "never"
894 S_ALWAYS = 171, // "always"
895 S_WHEN_NOT_PRESENT = 172, // "when-not-present"
896 S_HOSTNAME_CHAR_SET = 173, // "hostname-char-set"
897 S_HOSTNAME_CHAR_REPLACEMENT = 174, // "hostname-char-replacement"
898 S_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 175, // "early-global-reservations-lookup"
899 S_IP_RESERVATIONS_UNIQUE = 176, // "ip-reservations-unique"
900 S_RESERVATIONS_LOOKUP_FIRST = 177, // "reservations-lookup-first"
901 S_LOGGERS = 178, // "loggers"
902 S_OUTPUT_OPTIONS = 179, // "output_options"
903 S_OUTPUT = 180, // "output"
904 S_DEBUGLEVEL = 181, // "debuglevel"
905 S_SEVERITY = 182, // "severity"
906 S_FLUSH = 183, // "flush"
907 S_MAXSIZE = 184, // "maxsize"
908 S_MAXVER = 185, // "maxver"
909 S_PATTERN = 186, // "pattern"
910 S_COMPATIBILITY = 187, // "compatibility"
911 S_LENIENT_OPTION_PARSING = 188, // "lenient-option-parsing"
912 S_TOPLEVEL_JSON = 189, // TOPLEVEL_JSON
913 S_TOPLEVEL_DHCP4 = 190, // TOPLEVEL_DHCP4
914 S_SUB_DHCP4 = 191, // SUB_DHCP4
915 S_SUB_INTERFACES4 = 192, // SUB_INTERFACES4
916 S_SUB_SUBNET4 = 193, // SUB_SUBNET4
917 S_SUB_POOL4 = 194, // SUB_POOL4
918 S_SUB_RESERVATION = 195, // SUB_RESERVATION
919 S_SUB_OPTION_DEFS = 196, // SUB_OPTION_DEFS
920 S_SUB_OPTION_DEF = 197, // SUB_OPTION_DEF
921 S_SUB_OPTION_DATA = 198, // SUB_OPTION_DATA
922 S_SUB_HOOKS_LIBRARY = 199, // SUB_HOOKS_LIBRARY
923 S_SUB_DHCP_DDNS = 200, // SUB_DHCP_DDNS
924 S_SUB_CONFIG_CONTROL = 201, // SUB_CONFIG_CONTROL
925 S_STRING = 202, // "constant string"
926 S_INTEGER = 203, // "integer"
927 S_FLOAT = 204, // "floating point"
928 S_BOOLEAN = 205, // "boolean"
929 S_YYACCEPT = 206, // $accept
930 S_start = 207, // start
931 S_208_1 = 208, // $@1
932 S_209_2 = 209, // $@2
933 S_210_3 = 210, // $@3
934 S_211_4 = 211, // $@4
935 S_212_5 = 212, // $@5
936 S_213_6 = 213, // $@6
937 S_214_7 = 214, // $@7
938 S_215_8 = 215, // $@8
939 S_216_9 = 216, // $@9
940 S_217_10 = 217, // $@10
941 S_218_11 = 218, // $@11
942 S_219_12 = 219, // $@12
943 S_220_13 = 220, // $@13
944 S_value = 221, // value
945 S_sub_json = 222, // sub_json
946 S_map2 = 223, // map2
947 S_224_14 = 224, // $@14
948 S_map_value = 225, // map_value
949 S_map_content = 226, // map_content
950 S_not_empty_map = 227, // not_empty_map
951 S_list_generic = 228, // list_generic
952 S_229_15 = 229, // $@15
953 S_list_content = 230, // list_content
954 S_not_empty_list = 231, // not_empty_list
955 S_list_strings = 232, // list_strings
956 S_233_16 = 233, // $@16
957 S_list_strings_content = 234, // list_strings_content
958 S_not_empty_list_strings = 235, // not_empty_list_strings
959 S_unknown_map_entry = 236, // unknown_map_entry
960 S_syntax_map = 237, // syntax_map
961 S_238_17 = 238, // $@17
962 S_global_object = 239, // global_object
963 S_240_18 = 240, // $@18
964 S_global_object_comma = 241, // global_object_comma
965 S_sub_dhcp4 = 242, // sub_dhcp4
966 S_243_19 = 243, // $@19
967 S_global_params = 244, // global_params
968 S_global_param = 245, // global_param
969 S_valid_lifetime = 246, // valid_lifetime
970 S_min_valid_lifetime = 247, // min_valid_lifetime
971 S_max_valid_lifetime = 248, // max_valid_lifetime
972 S_renew_timer = 249, // renew_timer
973 S_rebind_timer = 250, // rebind_timer
974 S_calculate_tee_times = 251, // calculate_tee_times
975 S_t1_percent = 252, // t1_percent
976 S_t2_percent = 253, // t2_percent
977 S_cache_threshold = 254, // cache_threshold
978 S_cache_max_age = 255, // cache_max_age
979 S_decline_probation_period = 256, // decline_probation_period
980 S_server_tag = 257, // server_tag
981 S_258_20 = 258, // $@20
982 S_parked_packet_limit = 259, // parked_packet_limit
983 S_echo_client_id = 260, // echo_client_id
984 S_match_client_id = 261, // match_client_id
985 S_authoritative = 262, // authoritative
986 S_ddns_send_updates = 263, // ddns_send_updates
987 S_ddns_override_no_update = 264, // ddns_override_no_update
988 S_ddns_override_client_update = 265, // ddns_override_client_update
989 S_ddns_replace_client_name = 266, // ddns_replace_client_name
990 S_267_21 = 267, // $@21
991 S_ddns_replace_client_name_value = 268, // ddns_replace_client_name_value
992 S_ddns_generated_prefix = 269, // ddns_generated_prefix
993 S_270_22 = 270, // $@22
994 S_ddns_qualifying_suffix = 271, // ddns_qualifying_suffix
995 S_272_23 = 272, // $@23
996 S_ddns_update_on_renew = 273, // ddns_update_on_renew
997 S_ddns_use_conflict_resolution = 274, // ddns_use_conflict_resolution
998 S_hostname_char_set = 275, // hostname_char_set
999 S_276_24 = 276, // $@24
1000 S_hostname_char_replacement = 277, // hostname_char_replacement
1001 S_278_25 = 278, // $@25
1002 S_store_extended_info = 279, // store_extended_info
1003 S_statistic_default_sample_count = 280, // statistic_default_sample_count
1004 S_statistic_default_sample_age = 281, // statistic_default_sample_age
1005 S_early_global_reservations_lookup = 282, // early_global_reservations_lookup
1006 S_ip_reservations_unique = 283, // ip_reservations_unique
1007 S_reservations_lookup_first = 284, // reservations_lookup_first
1008 S_interfaces_config = 285, // interfaces_config
1009 S_286_26 = 286, // $@26
1010 S_interfaces_config_params = 287, // interfaces_config_params
1011 S_interfaces_config_param = 288, // interfaces_config_param
1012 S_sub_interfaces4 = 289, // sub_interfaces4
1013 S_290_27 = 290, // $@27
1014 S_interfaces_list = 291, // interfaces_list
1015 S_292_28 = 292, // $@28
1016 S_dhcp_socket_type = 293, // dhcp_socket_type
1017 S_294_29 = 294, // $@29
1018 S_socket_type = 295, // socket_type
1019 S_outbound_interface = 296, // outbound_interface
1020 S_297_30 = 297, // $@30
1021 S_outbound_interface_value = 298, // outbound_interface_value
1022 S_re_detect = 299, // re_detect
1023 S_service_sockets_require_all = 300, // service_sockets_require_all
1024 S_service_sockets_retry_wait_time = 301, // service_sockets_retry_wait_time
1025 S_service_sockets_max_retries = 302, // service_sockets_max_retries
1026 S_lease_database = 303, // lease_database
1027 S_304_31 = 304, // $@31
1028 S_sanity_checks = 305, // sanity_checks
1029 S_306_32 = 306, // $@32
1030 S_sanity_checks_params = 307, // sanity_checks_params
1031 S_sanity_checks_param = 308, // sanity_checks_param
1032 S_lease_checks = 309, // lease_checks
1033 S_310_33 = 310, // $@33
1034 S_hosts_database = 311, // hosts_database
1035 S_312_34 = 312, // $@34
1036 S_hosts_databases = 313, // hosts_databases
1037 S_314_35 = 314, // $@35
1038 S_database_list = 315, // database_list
1039 S_not_empty_database_list = 316, // not_empty_database_list
1040 S_database = 317, // database
1041 S_318_36 = 318, // $@36
1042 S_database_map_params = 319, // database_map_params
1043 S_database_map_param = 320, // database_map_param
1044 S_database_type = 321, // database_type
1045 S_322_37 = 322, // $@37
1046 S_db_type = 323, // db_type
1047 S_user = 324, // user
1048 S_325_38 = 325, // $@38
1049 S_password = 326, // password
1050 S_327_39 = 327, // $@39
1051 S_host = 328, // host
1052 S_329_40 = 329, // $@40
1053 S_port = 330, // port
1054 S_name = 331, // name
1055 S_332_41 = 332, // $@41
1056 S_persist = 333, // persist
1057 S_lfc_interval = 334, // lfc_interval
1058 S_readonly = 335, // readonly
1059 S_connect_timeout = 336, // connect_timeout
1060 S_max_reconnect_tries = 337, // max_reconnect_tries
1061 S_reconnect_wait_time = 338, // reconnect_wait_time
1062 S_on_fail = 339, // on_fail
1063 S_340_42 = 340, // $@42
1064 S_on_fail_mode = 341, // on_fail_mode
1065 S_max_row_errors = 342, // max_row_errors
1066 S_trust_anchor = 343, // trust_anchor
1067 S_344_43 = 344, // $@43
1068 S_cert_file = 345, // cert_file
1069 S_346_44 = 346, // $@44
1070 S_key_file = 347, // key_file
1071 S_348_45 = 348, // $@45
1072 S_cipher_list = 349, // cipher_list
1073 S_350_46 = 350, // $@46
1074 S_host_reservation_identifiers = 351, // host_reservation_identifiers
1075 S_352_47 = 352, // $@47
1076 S_host_reservation_identifiers_list = 353, // host_reservation_identifiers_list
1077 S_host_reservation_identifier = 354, // host_reservation_identifier
1078 S_duid_id = 355, // duid_id
1079 S_hw_address_id = 356, // hw_address_id
1080 S_circuit_id = 357, // circuit_id
1081 S_client_id = 358, // client_id
1082 S_flex_id = 359, // flex_id
1083 S_dhcp_multi_threading = 360, // dhcp_multi_threading
1084 S_361_48 = 361, // $@48
1085 S_multi_threading_params = 362, // multi_threading_params
1086 S_multi_threading_param = 363, // multi_threading_param
1087 S_enable_multi_threading = 364, // enable_multi_threading
1088 S_thread_pool_size = 365, // thread_pool_size
1089 S_packet_queue_size = 366, // packet_queue_size
1090 S_hooks_libraries = 367, // hooks_libraries
1091 S_368_49 = 368, // $@49
1092 S_hooks_libraries_list = 369, // hooks_libraries_list
1093 S_not_empty_hooks_libraries_list = 370, // not_empty_hooks_libraries_list
1094 S_hooks_library = 371, // hooks_library
1095 S_372_50 = 372, // $@50
1096 S_sub_hooks_library = 373, // sub_hooks_library
1097 S_374_51 = 374, // $@51
1098 S_hooks_params = 375, // hooks_params
1099 S_hooks_param = 376, // hooks_param
1100 S_library = 377, // library
1101 S_378_52 = 378, // $@52
1102 S_parameters = 379, // parameters
1103 S_380_53 = 380, // $@53
1104 S_expired_leases_processing = 381, // expired_leases_processing
1105 S_382_54 = 382, // $@54
1106 S_expired_leases_params = 383, // expired_leases_params
1107 S_expired_leases_param = 384, // expired_leases_param
1108 S_reclaim_timer_wait_time = 385, // reclaim_timer_wait_time
1109 S_flush_reclaimed_timer_wait_time = 386, // flush_reclaimed_timer_wait_time
1110 S_hold_reclaimed_time = 387, // hold_reclaimed_time
1111 S_max_reclaim_leases = 388, // max_reclaim_leases
1112 S_max_reclaim_time = 389, // max_reclaim_time
1113 S_unwarned_reclaim_cycles = 390, // unwarned_reclaim_cycles
1114 S_subnet4_list = 391, // subnet4_list
1115 S_392_55 = 392, // $@55
1116 S_subnet4_list_content = 393, // subnet4_list_content
1117 S_not_empty_subnet4_list = 394, // not_empty_subnet4_list
1118 S_subnet4 = 395, // subnet4
1119 S_396_56 = 396, // $@56
1120 S_sub_subnet4 = 397, // sub_subnet4
1121 S_398_57 = 398, // $@57
1122 S_subnet4_params = 399, // subnet4_params
1123 S_subnet4_param = 400, // subnet4_param
1124 S_subnet = 401, // subnet
1125 S_402_58 = 402, // $@58
1126 S_subnet_4o6_interface = 403, // subnet_4o6_interface
1127 S_404_59 = 404, // $@59
1128 S_subnet_4o6_interface_id = 405, // subnet_4o6_interface_id
1129 S_406_60 = 406, // $@60
1130 S_subnet_4o6_subnet = 407, // subnet_4o6_subnet
1131 S_408_61 = 408, // $@61
1132 S_interface = 409, // interface
1133 S_410_62 = 410, // $@62
1134 S_client_class = 411, // client_class
1135 S_412_63 = 412, // $@63
1136 S_require_client_classes = 413, // require_client_classes
1137 S_414_64 = 414, // $@64
1138 S_reservations_global = 415, // reservations_global
1139 S_reservations_in_subnet = 416, // reservations_in_subnet
1140 S_reservations_out_of_pool = 417, // reservations_out_of_pool
1141 S_reservation_mode = 418, // reservation_mode
1142 S_419_65 = 419, // $@65
1143 S_hr_mode = 420, // hr_mode
1144 S_id = 421, // id
1145 S_shared_networks = 422, // shared_networks
1146 S_423_66 = 423, // $@66
1147 S_shared_networks_content = 424, // shared_networks_content
1148 S_shared_networks_list = 425, // shared_networks_list
1149 S_shared_network = 426, // shared_network
1150 S_427_67 = 427, // $@67
1151 S_shared_network_params = 428, // shared_network_params
1152 S_shared_network_param = 429, // shared_network_param
1153 S_option_def_list = 430, // option_def_list
1154 S_431_68 = 431, // $@68
1155 S_sub_option_def_list = 432, // sub_option_def_list
1156 S_433_69 = 433, // $@69
1157 S_option_def_list_content = 434, // option_def_list_content
1158 S_not_empty_option_def_list = 435, // not_empty_option_def_list
1159 S_option_def_entry = 436, // option_def_entry
1160 S_437_70 = 437, // $@70
1161 S_sub_option_def = 438, // sub_option_def
1162 S_439_71 = 439, // $@71
1163 S_option_def_params = 440, // option_def_params
1164 S_not_empty_option_def_params = 441, // not_empty_option_def_params
1165 S_option_def_param = 442, // option_def_param
1166 S_option_def_name = 443, // option_def_name
1167 S_code = 444, // code
1168 S_option_def_code = 445, // option_def_code
1169 S_option_def_type = 446, // option_def_type
1170 S_447_72 = 447, // $@72
1171 S_option_def_record_types = 448, // option_def_record_types
1172 S_449_73 = 449, // $@73
1173 S_space = 450, // space
1174 S_451_74 = 451, // $@74
1175 S_option_def_space = 452, // option_def_space
1176 S_option_def_encapsulate = 453, // option_def_encapsulate
1177 S_454_75 = 454, // $@75
1178 S_option_def_array = 455, // option_def_array
1179 S_option_data_list = 456, // option_data_list
1180 S_457_76 = 457, // $@76
1181 S_option_data_list_content = 458, // option_data_list_content
1182 S_not_empty_option_data_list = 459, // not_empty_option_data_list
1183 S_option_data_entry = 460, // option_data_entry
1184 S_461_77 = 461, // $@77
1185 S_sub_option_data = 462, // sub_option_data
1186 S_463_78 = 463, // $@78
1187 S_option_data_params = 464, // option_data_params
1188 S_not_empty_option_data_params = 465, // not_empty_option_data_params
1189 S_option_data_param = 466, // option_data_param
1190 S_option_data_name = 467, // option_data_name
1191 S_option_data_data = 468, // option_data_data
1192 S_469_79 = 469, // $@79
1193 S_option_data_code = 470, // option_data_code
1194 S_option_data_space = 471, // option_data_space
1195 S_option_data_csv_format = 472, // option_data_csv_format
1196 S_option_data_always_send = 473, // option_data_always_send
1197 S_pools_list = 474, // pools_list
1198 S_475_80 = 475, // $@80
1199 S_pools_list_content = 476, // pools_list_content
1200 S_not_empty_pools_list = 477, // not_empty_pools_list
1201 S_pool_list_entry = 478, // pool_list_entry
1202 S_479_81 = 479, // $@81
1203 S_sub_pool4 = 480, // sub_pool4
1204 S_481_82 = 481, // $@82
1205 S_pool_params = 482, // pool_params
1206 S_pool_param = 483, // pool_param
1207 S_pool_entry = 484, // pool_entry
1208 S_485_83 = 485, // $@83
1209 S_user_context = 486, // user_context
1210 S_487_84 = 487, // $@84
1211 S_comment = 488, // comment
1212 S_489_85 = 489, // $@85
1213 S_reservations = 490, // reservations
1214 S_491_86 = 491, // $@86
1215 S_reservations_list = 492, // reservations_list
1216 S_not_empty_reservations_list = 493, // not_empty_reservations_list
1217 S_reservation = 494, // reservation
1218 S_495_87 = 495, // $@87
1219 S_sub_reservation = 496, // sub_reservation
1220 S_497_88 = 497, // $@88
1221 S_reservation_params = 498, // reservation_params
1222 S_not_empty_reservation_params = 499, // not_empty_reservation_params
1223 S_reservation_param = 500, // reservation_param
1224 S_next_server = 501, // next_server
1225 S_502_89 = 502, // $@89
1226 S_server_hostname = 503, // server_hostname
1227 S_504_90 = 504, // $@90
1228 S_boot_file_name = 505, // boot_file_name
1229 S_506_91 = 506, // $@91
1230 S_ip_address = 507, // ip_address
1231 S_508_92 = 508, // $@92
1232 S_ip_addresses = 509, // ip_addresses
1233 S_510_93 = 510, // $@93
1234 S_duid = 511, // duid
1235 S_512_94 = 512, // $@94
1236 S_hw_address = 513, // hw_address
1237 S_514_95 = 514, // $@95
1238 S_client_id_value = 515, // client_id_value
1239 S_516_96 = 516, // $@96
1240 S_circuit_id_value = 517, // circuit_id_value
1241 S_518_97 = 518, // $@97
1242 S_flex_id_value = 519, // flex_id_value
1243 S_520_98 = 520, // $@98
1244 S_hostname = 521, // hostname
1245 S_522_99 = 522, // $@99
1246 S_reservation_client_classes = 523, // reservation_client_classes
1247 S_524_100 = 524, // $@100
1248 S_relay = 525, // relay
1249 S_526_101 = 526, // $@101
1250 S_relay_map = 527, // relay_map
1251 S_client_classes = 528, // client_classes
1252 S_529_102 = 529, // $@102
1253 S_client_classes_list = 530, // client_classes_list
1254 S_client_class_entry = 531, // client_class_entry
1255 S_532_103 = 532, // $@103
1256 S_client_class_params = 533, // client_class_params
1257 S_not_empty_client_class_params = 534, // not_empty_client_class_params
1258 S_client_class_param = 535, // client_class_param
1259 S_client_class_name = 536, // client_class_name
1260 S_client_class_test = 537, // client_class_test
1261 S_538_104 = 538, // $@104
1262 S_only_if_required = 539, // only_if_required
1263 S_dhcp4o6_port = 540, // dhcp4o6_port
1264 S_control_socket = 541, // control_socket
1265 S_542_105 = 542, // $@105
1266 S_control_socket_params = 543, // control_socket_params
1267 S_control_socket_param = 544, // control_socket_param
1268 S_control_socket_type = 545, // control_socket_type
1269 S_546_106 = 546, // $@106
1270 S_control_socket_name = 547, // control_socket_name
1271 S_548_107 = 548, // $@107
1272 S_dhcp_queue_control = 549, // dhcp_queue_control
1273 S_550_108 = 550, // $@108
1274 S_queue_control_params = 551, // queue_control_params
1275 S_queue_control_param = 552, // queue_control_param
1276 S_enable_queue = 553, // enable_queue
1277 S_queue_type = 554, // queue_type
1278 S_555_109 = 555, // $@109
1279 S_capacity = 556, // capacity
1280 S_arbitrary_map_entry = 557, // arbitrary_map_entry
1281 S_558_110 = 558, // $@110
1282 S_dhcp_ddns = 559, // dhcp_ddns
1283 S_560_111 = 560, // $@111
1284 S_sub_dhcp_ddns = 561, // sub_dhcp_ddns
1285 S_562_112 = 562, // $@112
1286 S_dhcp_ddns_params = 563, // dhcp_ddns_params
1287 S_dhcp_ddns_param = 564, // dhcp_ddns_param
1288 S_enable_updates = 565, // enable_updates
1289 S_server_ip = 566, // server_ip
1290 S_567_113 = 567, // $@113
1291 S_server_port = 568, // server_port
1292 S_sender_ip = 569, // sender_ip
1293 S_570_114 = 570, // $@114
1294 S_sender_port = 571, // sender_port
1295 S_max_queue_size = 572, // max_queue_size
1296 S_ncr_protocol = 573, // ncr_protocol
1297 S_574_115 = 574, // $@115
1298 S_ncr_protocol_value = 575, // ncr_protocol_value
1299 S_ncr_format = 576, // ncr_format
1300 S_577_116 = 577, // $@116
1301 S_dep_qualifying_suffix = 578, // dep_qualifying_suffix
1302 S_579_117 = 579, // $@117
1303 S_dep_override_no_update = 580, // dep_override_no_update
1304 S_dep_override_client_update = 581, // dep_override_client_update
1305 S_dep_replace_client_name = 582, // dep_replace_client_name
1306 S_583_118 = 583, // $@118
1307 S_dep_generated_prefix = 584, // dep_generated_prefix
1308 S_585_119 = 585, // $@119
1309 S_dep_hostname_char_set = 586, // dep_hostname_char_set
1310 S_587_120 = 587, // $@120
1311 S_dep_hostname_char_replacement = 588, // dep_hostname_char_replacement
1312 S_589_121 = 589, // $@121
1313 S_config_control = 590, // config_control
1314 S_591_122 = 591, // $@122
1315 S_sub_config_control = 592, // sub_config_control
1316 S_593_123 = 593, // $@123
1317 S_config_control_params = 594, // config_control_params
1318 S_config_control_param = 595, // config_control_param
1319 S_config_databases = 596, // config_databases
1320 S_597_124 = 597, // $@124
1321 S_config_fetch_wait_time = 598, // config_fetch_wait_time
1322 S_loggers = 599, // loggers
1323 S_600_125 = 600, // $@125
1324 S_loggers_entries = 601, // loggers_entries
1325 S_logger_entry = 602, // logger_entry
1326 S_603_126 = 603, // $@126
1327 S_logger_params = 604, // logger_params
1328 S_logger_param = 605, // logger_param
1329 S_debuglevel = 606, // debuglevel
1330 S_severity = 607, // severity
1331 S_608_127 = 608, // $@127
1332 S_output_options_list = 609, // output_options_list
1333 S_610_128 = 610, // $@128
1334 S_output_options_list_content = 611, // output_options_list_content
1335 S_output_entry = 612, // output_entry
1336 S_613_129 = 613, // $@129
1337 S_output_params_list = 614, // output_params_list
1338 S_output_params = 615, // output_params
1339 S_output = 616, // output
1340 S_617_130 = 617, // $@130
1341 S_flush = 618, // flush
1342 S_maxsize = 619, // maxsize
1343 S_maxver = 620, // maxver
1344 S_pattern = 621, // pattern
1345 S_622_131 = 622, // $@131
1346 S_compatibility = 623, // compatibility
1347 S_624_132 = 624, // $@132
1348 S_compatibility_params = 625, // compatibility_params
1349 S_compatibility_param = 626, // compatibility_param
1350 S_lenient_option_parsing = 627 // lenient_option_parsing
1352 };
1353
1356
1359
1366 template <typename Base>
1367 struct basic_symbol : Base
1368 {
1370 typedef Base super_type;
1371
1374 : value ()
1375 , location ()
1376 {}
1377
1378#if 201103L <= YY_CPLUSPLUS
1380 basic_symbol (basic_symbol&& that)
1381 : Base (std::move (that))
1382 , value ()
1383 , location (std::move (that.location))
1384 {
1385 switch (this->kind ())
1386 {
1387 case symbol_kind::S_value: // value
1388 case symbol_kind::S_map_value: // map_value
1389 case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value
1390 case symbol_kind::S_socket_type: // socket_type
1391 case symbol_kind::S_outbound_interface_value: // outbound_interface_value
1392 case symbol_kind::S_db_type: // db_type
1393 case symbol_kind::S_on_fail_mode: // on_fail_mode
1394 case symbol_kind::S_hr_mode: // hr_mode
1395 case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value
1396 value.move< ElementPtr > (std::move (that.value));
1397 break;
1398
1399 case symbol_kind::S_BOOLEAN: // "boolean"
1400 value.move< bool > (std::move (that.value));
1401 break;
1402
1403 case symbol_kind::S_FLOAT: // "floating point"
1404 value.move< double > (std::move (that.value));
1405 break;
1406
1407 case symbol_kind::S_INTEGER: // "integer"
1408 value.move< int64_t > (std::move (that.value));
1409 break;
1410
1411 case symbol_kind::S_STRING: // "constant string"
1412 value.move< std::string > (std::move (that.value));
1413 break;
1414
1415 default:
1416 break;
1417 }
1418
1419 }
1420#endif
1421
1423 basic_symbol (const basic_symbol& that);
1424
1426#if 201103L <= YY_CPLUSPLUS
1427 basic_symbol (typename Base::kind_type t, location_type&& l)
1428 : Base (t)
1429 , location (std::move (l))
1430 {}
1431#else
1432 basic_symbol (typename Base::kind_type t, const location_type& l)
1433 : Base (t)
1434 , location (l)
1435 {}
1436#endif
1437
1438#if 201103L <= YY_CPLUSPLUS
1439 basic_symbol (typename Base::kind_type t, ElementPtr&& v, location_type&& l)
1440 : Base (t)
1441 , value (std::move (v))
1442 , location (std::move (l))
1443 {}
1444#else
1445 basic_symbol (typename Base::kind_type t, const ElementPtr& v, const location_type& l)
1446 : Base (t)
1447 , value (v)
1448 , location (l)
1449 {}
1450#endif
1451
1452#if 201103L <= YY_CPLUSPLUS
1453 basic_symbol (typename Base::kind_type t, bool&& v, location_type&& l)
1454 : Base (t)
1455 , value (std::move (v))
1456 , location (std::move (l))
1457 {}
1458#else
1459 basic_symbol (typename Base::kind_type t, const bool& v, const location_type& l)
1460 : Base (t)
1461 , value (v)
1462 , location (l)
1463 {}
1464#endif
1465
1466#if 201103L <= YY_CPLUSPLUS
1467 basic_symbol (typename Base::kind_type t, double&& v, location_type&& l)
1468 : Base (t)
1469 , value (std::move (v))
1470 , location (std::move (l))
1471 {}
1472#else
1473 basic_symbol (typename Base::kind_type t, const double& v, const location_type& l)
1474 : Base (t)
1475 , value (v)
1476 , location (l)
1477 {}
1478#endif
1479
1480#if 201103L <= YY_CPLUSPLUS
1481 basic_symbol (typename Base::kind_type t, int64_t&& v, location_type&& l)
1482 : Base (t)
1483 , value (std::move (v))
1484 , location (std::move (l))
1485 {}
1486#else
1487 basic_symbol (typename Base::kind_type t, const int64_t& v, const location_type& l)
1488 : Base (t)
1489 , value (v)
1490 , location (l)
1491 {}
1492#endif
1493
1494#if 201103L <= YY_CPLUSPLUS
1495 basic_symbol (typename Base::kind_type t, std::string&& v, location_type&& l)
1496 : Base (t)
1497 , value (std::move (v))
1498 , location (std::move (l))
1499 {}
1500#else
1501 basic_symbol (typename Base::kind_type t, const std::string& v, const location_type& l)
1502 : Base (t)
1503 , value (v)
1504 , location (l)
1505 {}
1506#endif
1507
1510 {
1511 clear ();
1512 }
1513
1514
1515
1518 {
1519 // User destructor.
1520 symbol_kind_type yykind = this->kind ();
1521 basic_symbol<Base>& yysym = *this;
1522 (void) yysym;
1523 switch (yykind)
1524 {
1525 default:
1526 break;
1527 }
1528
1529 // Value type destructor.
1530switch (yykind)
1531 {
1532 case symbol_kind::S_value: // value
1533 case symbol_kind::S_map_value: // map_value
1534 case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value
1535 case symbol_kind::S_socket_type: // socket_type
1536 case symbol_kind::S_outbound_interface_value: // outbound_interface_value
1537 case symbol_kind::S_db_type: // db_type
1538 case symbol_kind::S_on_fail_mode: // on_fail_mode
1539 case symbol_kind::S_hr_mode: // hr_mode
1540 case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value
1541 value.template destroy< ElementPtr > ();
1542 break;
1543
1544 case symbol_kind::S_BOOLEAN: // "boolean"
1545 value.template destroy< bool > ();
1546 break;
1547
1548 case symbol_kind::S_FLOAT: // "floating point"
1549 value.template destroy< double > ();
1550 break;
1551
1552 case symbol_kind::S_INTEGER: // "integer"
1553 value.template destroy< int64_t > ();
1554 break;
1555
1556 case symbol_kind::S_STRING: // "constant string"
1557 value.template destroy< std::string > ();
1558 break;
1559
1560 default:
1561 break;
1562 }
1563
1564 Base::clear ();
1565 }
1566
1568 std::string name () const YY_NOEXCEPT
1569 {
1570 return Dhcp4Parser::symbol_name (this->kind ());
1571 }
1572
1574 symbol_kind_type type_get () const YY_NOEXCEPT;
1575
1577 bool empty () const YY_NOEXCEPT;
1578
1580 void move (basic_symbol& s);
1581
1584
1587
1588 private:
1589#if YY_CPLUSPLUS < 201103L
1591 basic_symbol& operator= (const basic_symbol& that);
1592#endif
1593 };
1594
1596 struct by_kind
1597 {
1600
1603
1604#if 201103L <= YY_CPLUSPLUS
1606 by_kind (by_kind&& that) YY_NOEXCEPT;
1607#endif
1608
1610 by_kind (const by_kind& that) YY_NOEXCEPT;
1611
1614
1615
1616
1618 void clear () YY_NOEXCEPT;
1619
1621 void move (by_kind& that);
1622
1625 symbol_kind_type kind () const YY_NOEXCEPT;
1626
1628 symbol_kind_type type_get () const YY_NOEXCEPT;
1629
1633 };
1634
1637
1640 {
1643
1646
1648#if 201103L <= YY_CPLUSPLUS
1649 symbol_type (int tok, location_type l)
1650 : super_type (token_kind_type (tok), std::move (l))
1651#else
1652 symbol_type (int tok, const location_type& l)
1653 : super_type (token_kind_type (tok), l)
1654#endif
1655 {
1656#if !defined _MSC_VER || defined __clang__
1659#endif
1660 }
1661#if 201103L <= YY_CPLUSPLUS
1662 symbol_type (int tok, bool v, location_type l)
1663 : super_type (token_kind_type (tok), std::move (v), std::move (l))
1664#else
1665 symbol_type (int tok, const bool& v, const location_type& l)
1666 : super_type (token_kind_type (tok), v, l)
1667#endif
1668 {
1669#if !defined _MSC_VER || defined __clang__
1671#endif
1672 }
1673#if 201103L <= YY_CPLUSPLUS
1674 symbol_type (int tok, double v, location_type l)
1675 : super_type (token_kind_type (tok), std::move (v), std::move (l))
1676#else
1677 symbol_type (int tok, const double& v, const location_type& l)
1678 : super_type (token_kind_type (tok), v, l)
1679#endif
1680 {
1681#if !defined _MSC_VER || defined __clang__
1683#endif
1684 }
1685#if 201103L <= YY_CPLUSPLUS
1686 symbol_type (int tok, int64_t v, location_type l)
1687 : super_type (token_kind_type (tok), std::move (v), std::move (l))
1688#else
1689 symbol_type (int tok, const int64_t& v, const location_type& l)
1690 : super_type (token_kind_type (tok), v, l)
1691#endif
1692 {
1693#if !defined _MSC_VER || defined __clang__
1695#endif
1696 }
1697#if 201103L <= YY_CPLUSPLUS
1698 symbol_type (int tok, std::string v, location_type l)
1699 : super_type (token_kind_type (tok), std::move (v), std::move (l))
1700#else
1701 symbol_type (int tok, const std::string& v, const location_type& l)
1702 : super_type (token_kind_type (tok), v, l)
1703#endif
1704 {
1705#if !defined _MSC_VER || defined __clang__
1707#endif
1708 }
1709 };
1710
1713 virtual ~Dhcp4Parser ();
1714
1715#if 201103L <= YY_CPLUSPLUS
1717 Dhcp4Parser (const Dhcp4Parser&) = delete;
1719 Dhcp4Parser& operator= (const Dhcp4Parser&) = delete;
1720#endif
1721
1724 int operator() ();
1725
1728 virtual int parse ();
1729
1730#if PARSER4_DEBUG
1732 std::ostream& debug_stream () const YY_ATTRIBUTE_PURE;
1734 void set_debug_stream (std::ostream &);
1735
1737 typedef int debug_level_type;
1742#endif
1743
1747 virtual void error (const location_type& loc, const std::string& msg);
1748
1750 void error (const syntax_error& err);
1751
1754 static std::string symbol_name (symbol_kind_type yysymbol);
1755
1756 // Implementation of make_symbol for each token kind.
1757#if 201103L <= YY_CPLUSPLUS
1758 static
1761 {
1762 return symbol_type (token::TOKEN_END, std::move (l));
1763 }
1764#else
1765 static
1766 symbol_type
1768 {
1769 return symbol_type (token::TOKEN_END, l);
1770 }
1771#endif
1772#if 201103L <= YY_CPLUSPLUS
1773 static
1774 symbol_type
1776 {
1777 return symbol_type (token::TOKEN_PARSER4_error, std::move (l));
1778 }
1779#else
1780 static
1781 symbol_type
1783 {
1785 }
1786#endif
1787#if 201103L <= YY_CPLUSPLUS
1788 static
1789 symbol_type
1791 {
1792 return symbol_type (token::TOKEN_PARSER4_UNDEF, std::move (l));
1793 }
1794#else
1795 static
1796 symbol_type
1798 {
1800 }
1801#endif
1802#if 201103L <= YY_CPLUSPLUS
1803 static
1804 symbol_type
1806 {
1807 return symbol_type (token::TOKEN_COMMA, std::move (l));
1808 }
1809#else
1810 static
1811 symbol_type
1813 {
1814 return symbol_type (token::TOKEN_COMMA, l);
1815 }
1816#endif
1817#if 201103L <= YY_CPLUSPLUS
1818 static
1819 symbol_type
1821 {
1822 return symbol_type (token::TOKEN_COLON, std::move (l));
1823 }
1824#else
1825 static
1826 symbol_type
1828 {
1829 return symbol_type (token::TOKEN_COLON, l);
1830 }
1831#endif
1832#if 201103L <= YY_CPLUSPLUS
1833 static
1834 symbol_type
1836 {
1837 return symbol_type (token::TOKEN_LSQUARE_BRACKET, std::move (l));
1838 }
1839#else
1840 static
1841 symbol_type
1843 {
1845 }
1846#endif
1847#if 201103L <= YY_CPLUSPLUS
1848 static
1849 symbol_type
1851 {
1852 return symbol_type (token::TOKEN_RSQUARE_BRACKET, std::move (l));
1853 }
1854#else
1855 static
1856 symbol_type
1858 {
1860 }
1861#endif
1862#if 201103L <= YY_CPLUSPLUS
1863 static
1864 symbol_type
1866 {
1867 return symbol_type (token::TOKEN_LCURLY_BRACKET, std::move (l));
1868 }
1869#else
1870 static
1871 symbol_type
1873 {
1875 }
1876#endif
1877#if 201103L <= YY_CPLUSPLUS
1878 static
1879 symbol_type
1881 {
1882 return symbol_type (token::TOKEN_RCURLY_BRACKET, std::move (l));
1883 }
1884#else
1885 static
1886 symbol_type
1888 {
1890 }
1891#endif
1892#if 201103L <= YY_CPLUSPLUS
1893 static
1894 symbol_type
1896 {
1897 return symbol_type (token::TOKEN_NULL_TYPE, std::move (l));
1898 }
1899#else
1900 static
1901 symbol_type
1903 {
1905 }
1906#endif
1907#if 201103L <= YY_CPLUSPLUS
1908 static
1909 symbol_type
1911 {
1912 return symbol_type (token::TOKEN_DHCP4, std::move (l));
1913 }
1914#else
1915 static
1916 symbol_type
1918 {
1919 return symbol_type (token::TOKEN_DHCP4, l);
1920 }
1921#endif
1922#if 201103L <= YY_CPLUSPLUS
1923 static
1924 symbol_type
1926 {
1927 return symbol_type (token::TOKEN_CONFIG_CONTROL, std::move (l));
1928 }
1929#else
1930 static
1931 symbol_type
1933 {
1935 }
1936#endif
1937#if 201103L <= YY_CPLUSPLUS
1938 static
1939 symbol_type
1941 {
1942 return symbol_type (token::TOKEN_CONFIG_DATABASES, std::move (l));
1943 }
1944#else
1945 static
1946 symbol_type
1948 {
1950 }
1951#endif
1952#if 201103L <= YY_CPLUSPLUS
1953 static
1954 symbol_type
1956 {
1957 return symbol_type (token::TOKEN_CONFIG_FETCH_WAIT_TIME, std::move (l));
1958 }
1959#else
1960 static
1961 symbol_type
1963 {
1965 }
1966#endif
1967#if 201103L <= YY_CPLUSPLUS
1968 static
1969 symbol_type
1971 {
1972 return symbol_type (token::TOKEN_INTERFACES_CONFIG, std::move (l));
1973 }
1974#else
1975 static
1976 symbol_type
1978 {
1980 }
1981#endif
1982#if 201103L <= YY_CPLUSPLUS
1983 static
1984 symbol_type
1986 {
1987 return symbol_type (token::TOKEN_INTERFACES, std::move (l));
1988 }
1989#else
1990 static
1991 symbol_type
1993 {
1995 }
1996#endif
1997#if 201103L <= YY_CPLUSPLUS
1998 static
1999 symbol_type
2001 {
2002 return symbol_type (token::TOKEN_DHCP_SOCKET_TYPE, std::move (l));
2003 }
2004#else
2005 static
2006 symbol_type
2008 {
2010 }
2011#endif
2012#if 201103L <= YY_CPLUSPLUS
2013 static
2014 symbol_type
2016 {
2017 return symbol_type (token::TOKEN_RAW, std::move (l));
2018 }
2019#else
2020 static
2021 symbol_type
2023 {
2024 return symbol_type (token::TOKEN_RAW, l);
2025 }
2026#endif
2027#if 201103L <= YY_CPLUSPLUS
2028 static
2029 symbol_type
2031 {
2032 return symbol_type (token::TOKEN_UDP, std::move (l));
2033 }
2034#else
2035 static
2036 symbol_type
2038 {
2039 return symbol_type (token::TOKEN_UDP, l);
2040 }
2041#endif
2042#if 201103L <= YY_CPLUSPLUS
2043 static
2044 symbol_type
2046 {
2047 return symbol_type (token::TOKEN_OUTBOUND_INTERFACE, std::move (l));
2048 }
2049#else
2050 static
2051 symbol_type
2053 {
2055 }
2056#endif
2057#if 201103L <= YY_CPLUSPLUS
2058 static
2059 symbol_type
2061 {
2062 return symbol_type (token::TOKEN_SAME_AS_INBOUND, std::move (l));
2063 }
2064#else
2065 static
2066 symbol_type
2068 {
2070 }
2071#endif
2072#if 201103L <= YY_CPLUSPLUS
2073 static
2074 symbol_type
2076 {
2077 return symbol_type (token::TOKEN_USE_ROUTING, std::move (l));
2078 }
2079#else
2080 static
2081 symbol_type
2083 {
2085 }
2086#endif
2087#if 201103L <= YY_CPLUSPLUS
2088 static
2089 symbol_type
2091 {
2092 return symbol_type (token::TOKEN_RE_DETECT, std::move (l));
2093 }
2094#else
2095 static
2096 symbol_type
2098 {
2100 }
2101#endif
2102#if 201103L <= YY_CPLUSPLUS
2103 static
2104 symbol_type
2106 {
2107 return symbol_type (token::TOKEN_SERVICE_SOCKETS_REQUIRE_ALL, std::move (l));
2108 }
2109#else
2110 static
2111 symbol_type
2113 {
2115 }
2116#endif
2117#if 201103L <= YY_CPLUSPLUS
2118 static
2119 symbol_type
2121 {
2122 return symbol_type (token::TOKEN_SERVICE_SOCKETS_RETRY_WAIT_TIME, std::move (l));
2123 }
2124#else
2125 static
2126 symbol_type
2128 {
2130 }
2131#endif
2132#if 201103L <= YY_CPLUSPLUS
2133 static
2134 symbol_type
2136 {
2137 return symbol_type (token::TOKEN_SERVICE_SOCKETS_MAX_RETRIES, std::move (l));
2138 }
2139#else
2140 static
2141 symbol_type
2143 {
2145 }
2146#endif
2147#if 201103L <= YY_CPLUSPLUS
2148 static
2149 symbol_type
2151 {
2152 return symbol_type (token::TOKEN_SANITY_CHECKS, std::move (l));
2153 }
2154#else
2155 static
2156 symbol_type
2158 {
2160 }
2161#endif
2162#if 201103L <= YY_CPLUSPLUS
2163 static
2164 symbol_type
2166 {
2167 return symbol_type (token::TOKEN_LEASE_CHECKS, std::move (l));
2168 }
2169#else
2170 static
2171 symbol_type
2173 {
2175 }
2176#endif
2177#if 201103L <= YY_CPLUSPLUS
2178 static
2179 symbol_type
2181 {
2182 return symbol_type (token::TOKEN_ECHO_CLIENT_ID, std::move (l));
2183 }
2184#else
2185 static
2186 symbol_type
2188 {
2190 }
2191#endif
2192#if 201103L <= YY_CPLUSPLUS
2193 static
2194 symbol_type
2196 {
2197 return symbol_type (token::TOKEN_MATCH_CLIENT_ID, std::move (l));
2198 }
2199#else
2200 static
2201 symbol_type
2203 {
2205 }
2206#endif
2207#if 201103L <= YY_CPLUSPLUS
2208 static
2209 symbol_type
2211 {
2212 return symbol_type (token::TOKEN_AUTHORITATIVE, std::move (l));
2213 }
2214#else
2215 static
2216 symbol_type
2218 {
2220 }
2221#endif
2222#if 201103L <= YY_CPLUSPLUS
2223 static
2224 symbol_type
2226 {
2227 return symbol_type (token::TOKEN_NEXT_SERVER, std::move (l));
2228 }
2229#else
2230 static
2231 symbol_type
2233 {
2235 }
2236#endif
2237#if 201103L <= YY_CPLUSPLUS
2238 static
2239 symbol_type
2241 {
2242 return symbol_type (token::TOKEN_SERVER_HOSTNAME, std::move (l));
2243 }
2244#else
2245 static
2246 symbol_type
2248 {
2250 }
2251#endif
2252#if 201103L <= YY_CPLUSPLUS
2253 static
2254 symbol_type
2256 {
2257 return symbol_type (token::TOKEN_BOOT_FILE_NAME, std::move (l));
2258 }
2259#else
2260 static
2261 symbol_type
2263 {
2265 }
2266#endif
2267#if 201103L <= YY_CPLUSPLUS
2268 static
2269 symbol_type
2271 {
2272 return symbol_type (token::TOKEN_LEASE_DATABASE, std::move (l));
2273 }
2274#else
2275 static
2276 symbol_type
2278 {
2280 }
2281#endif
2282#if 201103L <= YY_CPLUSPLUS
2283 static
2284 symbol_type
2286 {
2287 return symbol_type (token::TOKEN_HOSTS_DATABASE, std::move (l));
2288 }
2289#else
2290 static
2291 symbol_type
2293 {
2295 }
2296#endif
2297#if 201103L <= YY_CPLUSPLUS
2298 static
2299 symbol_type
2301 {
2302 return symbol_type (token::TOKEN_HOSTS_DATABASES, std::move (l));
2303 }
2304#else
2305 static
2306 symbol_type
2308 {
2310 }
2311#endif
2312#if 201103L <= YY_CPLUSPLUS
2313 static
2314 symbol_type
2316 {
2317 return symbol_type (token::TOKEN_TYPE, std::move (l));
2318 }
2319#else
2320 static
2321 symbol_type
2323 {
2324 return symbol_type (token::TOKEN_TYPE, l);
2325 }
2326#endif
2327#if 201103L <= YY_CPLUSPLUS
2328 static
2329 symbol_type
2331 {
2332 return symbol_type (token::TOKEN_MEMFILE, std::move (l));
2333 }
2334#else
2335 static
2336 symbol_type
2338 {
2340 }
2341#endif
2342#if 201103L <= YY_CPLUSPLUS
2343 static
2344 symbol_type
2346 {
2347 return symbol_type (token::TOKEN_MYSQL, std::move (l));
2348 }
2349#else
2350 static
2351 symbol_type
2353 {
2354 return symbol_type (token::TOKEN_MYSQL, l);
2355 }
2356#endif
2357#if 201103L <= YY_CPLUSPLUS
2358 static
2359 symbol_type
2361 {
2362 return symbol_type (token::TOKEN_POSTGRESQL, std::move (l));
2363 }
2364#else
2365 static
2366 symbol_type
2368 {
2370 }
2371#endif
2372#if 201103L <= YY_CPLUSPLUS
2373 static
2374 symbol_type
2376 {
2377 return symbol_type (token::TOKEN_USER, std::move (l));
2378 }
2379#else
2380 static
2381 symbol_type
2383 {
2384 return symbol_type (token::TOKEN_USER, l);
2385 }
2386#endif
2387#if 201103L <= YY_CPLUSPLUS
2388 static
2389 symbol_type
2391 {
2392 return symbol_type (token::TOKEN_PASSWORD, std::move (l));
2393 }
2394#else
2395 static
2396 symbol_type
2398 {
2400 }
2401#endif
2402#if 201103L <= YY_CPLUSPLUS
2403 static
2404 symbol_type
2406 {
2407 return symbol_type (token::TOKEN_HOST, std::move (l));
2408 }
2409#else
2410 static
2411 symbol_type
2413 {
2414 return symbol_type (token::TOKEN_HOST, l);
2415 }
2416#endif
2417#if 201103L <= YY_CPLUSPLUS
2418 static
2419 symbol_type
2421 {
2422 return symbol_type (token::TOKEN_PORT, std::move (l));
2423 }
2424#else
2425 static
2426 symbol_type
2428 {
2429 return symbol_type (token::TOKEN_PORT, l);
2430 }
2431#endif
2432#if 201103L <= YY_CPLUSPLUS
2433 static
2434 symbol_type
2436 {
2437 return symbol_type (token::TOKEN_PERSIST, std::move (l));
2438 }
2439#else
2440 static
2441 symbol_type
2443 {
2445 }
2446#endif
2447#if 201103L <= YY_CPLUSPLUS
2448 static
2449 symbol_type
2451 {
2452 return symbol_type (token::TOKEN_LFC_INTERVAL, std::move (l));
2453 }
2454#else
2455 static
2456 symbol_type
2458 {
2460 }
2461#endif
2462#if 201103L <= YY_CPLUSPLUS
2463 static
2464 symbol_type
2466 {
2467 return symbol_type (token::TOKEN_READONLY, std::move (l));
2468 }
2469#else
2470 static
2471 symbol_type
2473 {
2475 }
2476#endif
2477#if 201103L <= YY_CPLUSPLUS
2478 static
2479 symbol_type
2481 {
2482 return symbol_type (token::TOKEN_CONNECT_TIMEOUT, std::move (l));
2483 }
2484#else
2485 static
2486 symbol_type
2488 {
2490 }
2491#endif
2492#if 201103L <= YY_CPLUSPLUS
2493 static
2494 symbol_type
2496 {
2497 return symbol_type (token::TOKEN_MAX_RECONNECT_TRIES, std::move (l));
2498 }
2499#else
2500 static
2501 symbol_type
2503 {
2505 }
2506#endif
2507#if 201103L <= YY_CPLUSPLUS
2508 static
2509 symbol_type
2511 {
2512 return symbol_type (token::TOKEN_RECONNECT_WAIT_TIME, std::move (l));
2513 }
2514#else
2515 static
2516 symbol_type
2518 {
2520 }
2521#endif
2522#if 201103L <= YY_CPLUSPLUS
2523 static
2524 symbol_type
2526 {
2527 return symbol_type (token::TOKEN_ON_FAIL, std::move (l));
2528 }
2529#else
2530 static
2531 symbol_type
2533 {
2535 }
2536#endif
2537#if 201103L <= YY_CPLUSPLUS
2538 static
2539 symbol_type
2541 {
2542 return symbol_type (token::TOKEN_STOP_RETRY_EXIT, std::move (l));
2543 }
2544#else
2545 static
2546 symbol_type
2548 {
2550 }
2551#endif
2552#if 201103L <= YY_CPLUSPLUS
2553 static
2554 symbol_type
2556 {
2557 return symbol_type (token::TOKEN_SERVE_RETRY_EXIT, std::move (l));
2558 }
2559#else
2560 static
2561 symbol_type
2563 {
2565 }
2566#endif
2567#if 201103L <= YY_CPLUSPLUS
2568 static
2569 symbol_type
2571 {
2572 return symbol_type (token::TOKEN_SERVE_RETRY_CONTINUE, std::move (l));
2573 }
2574#else
2575 static
2576 symbol_type
2578 {
2580 }
2581#endif
2582#if 201103L <= YY_CPLUSPLUS
2583 static
2584 symbol_type
2586 {
2587 return symbol_type (token::TOKEN_MAX_ROW_ERRORS, std::move (l));
2588 }
2589#else
2590 static
2591 symbol_type
2593 {
2595 }
2596#endif
2597#if 201103L <= YY_CPLUSPLUS
2598 static
2599 symbol_type
2601 {
2602 return symbol_type (token::TOKEN_TRUST_ANCHOR, std::move (l));
2603 }
2604#else
2605 static
2606 symbol_type
2608 {
2610 }
2611#endif
2612#if 201103L <= YY_CPLUSPLUS
2613 static
2614 symbol_type
2616 {
2617 return symbol_type (token::TOKEN_CERT_FILE, std::move (l));
2618 }
2619#else
2620 static
2621 symbol_type
2623 {
2625 }
2626#endif
2627#if 201103L <= YY_CPLUSPLUS
2628 static
2629 symbol_type
2631 {
2632 return symbol_type (token::TOKEN_KEY_FILE, std::move (l));
2633 }
2634#else
2635 static
2636 symbol_type
2638 {
2640 }
2641#endif
2642#if 201103L <= YY_CPLUSPLUS
2643 static
2644 symbol_type
2646 {
2647 return symbol_type (token::TOKEN_CIPHER_LIST, std::move (l));
2648 }
2649#else
2650 static
2651 symbol_type
2653 {
2655 }
2656#endif
2657#if 201103L <= YY_CPLUSPLUS
2658 static
2659 symbol_type
2661 {
2662 return symbol_type (token::TOKEN_VALID_LIFETIME, std::move (l));
2663 }
2664#else
2665 static
2666 symbol_type
2668 {
2670 }
2671#endif
2672#if 201103L <= YY_CPLUSPLUS
2673 static
2674 symbol_type
2676 {
2677 return symbol_type (token::TOKEN_MIN_VALID_LIFETIME, std::move (l));
2678 }
2679#else
2680 static
2681 symbol_type
2683 {
2685 }
2686#endif
2687#if 201103L <= YY_CPLUSPLUS
2688 static
2689 symbol_type
2691 {
2692 return symbol_type (token::TOKEN_MAX_VALID_LIFETIME, std::move (l));
2693 }
2694#else
2695 static
2696 symbol_type
2698 {
2700 }
2701#endif
2702#if 201103L <= YY_CPLUSPLUS
2703 static
2704 symbol_type
2706 {
2707 return symbol_type (token::TOKEN_RENEW_TIMER, std::move (l));
2708 }
2709#else
2710 static
2711 symbol_type
2713 {
2715 }
2716#endif
2717#if 201103L <= YY_CPLUSPLUS
2718 static
2719 symbol_type
2721 {
2722 return symbol_type (token::TOKEN_REBIND_TIMER, std::move (l));
2723 }
2724#else
2725 static
2726 symbol_type
2728 {
2730 }
2731#endif
2732#if 201103L <= YY_CPLUSPLUS
2733 static
2734 symbol_type
2736 {
2737 return symbol_type (token::TOKEN_CALCULATE_TEE_TIMES, std::move (l));
2738 }
2739#else
2740 static
2741 symbol_type
2743 {
2745 }
2746#endif
2747#if 201103L <= YY_CPLUSPLUS
2748 static
2749 symbol_type
2751 {
2752 return symbol_type (token::TOKEN_T1_PERCENT, std::move (l));
2753 }
2754#else
2755 static
2756 symbol_type
2758 {
2760 }
2761#endif
2762#if 201103L <= YY_CPLUSPLUS
2763 static
2764 symbol_type
2766 {
2767 return symbol_type (token::TOKEN_T2_PERCENT, std::move (l));
2768 }
2769#else
2770 static
2771 symbol_type
2773 {
2775 }
2776#endif
2777#if 201103L <= YY_CPLUSPLUS
2778 static
2779 symbol_type
2781 {
2782 return symbol_type (token::TOKEN_CACHE_THRESHOLD, std::move (l));
2783 }
2784#else
2785 static
2786 symbol_type
2788 {
2790 }
2791#endif
2792#if 201103L <= YY_CPLUSPLUS
2793 static
2794 symbol_type
2796 {
2797 return symbol_type (token::TOKEN_CACHE_MAX_AGE, std::move (l));
2798 }
2799#else
2800 static
2801 symbol_type
2803 {
2805 }
2806#endif
2807#if 201103L <= YY_CPLUSPLUS
2808 static
2809 symbol_type
2811 {
2812 return symbol_type (token::TOKEN_DECLINE_PROBATION_PERIOD, std::move (l));
2813 }
2814#else
2815 static
2816 symbol_type
2818 {
2820 }
2821#endif
2822#if 201103L <= YY_CPLUSPLUS
2823 static
2824 symbol_type
2826 {
2827 return symbol_type (token::TOKEN_SERVER_TAG, std::move (l));
2828 }
2829#else
2830 static
2831 symbol_type
2833 {
2835 }
2836#endif
2837#if 201103L <= YY_CPLUSPLUS
2838 static
2839 symbol_type
2841 {
2842 return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT, std::move (l));
2843 }
2844#else
2845 static
2846 symbol_type
2848 {
2850 }
2851#endif
2852#if 201103L <= YY_CPLUSPLUS
2853 static
2854 symbol_type
2856 {
2857 return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE, std::move (l));
2858 }
2859#else
2860 static
2861 symbol_type
2863 {
2865 }
2866#endif
2867#if 201103L <= YY_CPLUSPLUS
2868 static
2869 symbol_type
2871 {
2872 return symbol_type (token::TOKEN_DDNS_SEND_UPDATES, std::move (l));
2873 }
2874#else
2875 static
2876 symbol_type
2878 {
2880 }
2881#endif
2882#if 201103L <= YY_CPLUSPLUS
2883 static
2884 symbol_type
2886 {
2887 return symbol_type (token::TOKEN_DDNS_OVERRIDE_NO_UPDATE, std::move (l));
2888 }
2889#else
2890 static
2891 symbol_type
2893 {
2895 }
2896#endif
2897#if 201103L <= YY_CPLUSPLUS
2898 static
2899 symbol_type
2901 {
2902 return symbol_type (token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE, std::move (l));
2903 }
2904#else
2905 static
2906 symbol_type
2908 {
2910 }
2911#endif
2912#if 201103L <= YY_CPLUSPLUS
2913 static
2914 symbol_type
2916 {
2917 return symbol_type (token::TOKEN_DDNS_REPLACE_CLIENT_NAME, std::move (l));
2918 }
2919#else
2920 static
2921 symbol_type
2923 {
2925 }
2926#endif
2927#if 201103L <= YY_CPLUSPLUS
2928 static
2929 symbol_type
2931 {
2932 return symbol_type (token::TOKEN_DDNS_GENERATED_PREFIX, std::move (l));
2933 }
2934#else
2935 static
2936 symbol_type
2938 {
2940 }
2941#endif
2942#if 201103L <= YY_CPLUSPLUS
2943 static
2944 symbol_type
2946 {
2947 return symbol_type (token::TOKEN_DDNS_QUALIFYING_SUFFIX, std::move (l));
2948 }
2949#else
2950 static
2951 symbol_type
2953 {
2955 }
2956#endif
2957#if 201103L <= YY_CPLUSPLUS
2958 static
2959 symbol_type
2961 {
2962 return symbol_type (token::TOKEN_DDNS_UPDATE_ON_RENEW, std::move (l));
2963 }
2964#else
2965 static
2966 symbol_type
2968 {
2970 }
2971#endif
2972#if 201103L <= YY_CPLUSPLUS
2973 static
2974 symbol_type
2976 {
2977 return symbol_type (token::TOKEN_DDNS_USE_CONFLICT_RESOLUTION, std::move (l));
2978 }
2979#else
2980 static
2981 symbol_type
2983 {
2985 }
2986#endif
2987#if 201103L <= YY_CPLUSPLUS
2988 static
2989 symbol_type
2991 {
2992 return symbol_type (token::TOKEN_STORE_EXTENDED_INFO, std::move (l));
2993 }
2994#else
2995 static
2996 symbol_type
2998 {
3000 }
3001#endif
3002#if 201103L <= YY_CPLUSPLUS
3003 static
3004 symbol_type
3006 {
3007 return symbol_type (token::TOKEN_SUBNET4, std::move (l));
3008 }
3009#else
3010 static
3011 symbol_type
3013 {
3015 }
3016#endif
3017#if 201103L <= YY_CPLUSPLUS
3018 static
3019 symbol_type
3021 {
3022 return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE, std::move (l));
3023 }
3024#else
3025 static
3026 symbol_type
3028 {
3030 }
3031#endif
3032#if 201103L <= YY_CPLUSPLUS
3033 static
3034 symbol_type
3036 {
3037 return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE_ID, std::move (l));
3038 }
3039#else
3040 static
3041 symbol_type
3043 {
3045 }
3046#endif
3047#if 201103L <= YY_CPLUSPLUS
3048 static
3049 symbol_type
3051 {
3052 return symbol_type (token::TOKEN_SUBNET_4O6_SUBNET, std::move (l));
3053 }
3054#else
3055 static
3056 symbol_type
3058 {
3060 }
3061#endif
3062#if 201103L <= YY_CPLUSPLUS
3063 static
3064 symbol_type
3066 {
3067 return symbol_type (token::TOKEN_OPTION_DEF, std::move (l));
3068 }
3069#else
3070 static
3071 symbol_type
3073 {
3075 }
3076#endif
3077#if 201103L <= YY_CPLUSPLUS
3078 static
3079 symbol_type
3081 {
3082 return symbol_type (token::TOKEN_OPTION_DATA, std::move (l));
3083 }
3084#else
3085 static
3086 symbol_type
3088 {
3090 }
3091#endif
3092#if 201103L <= YY_CPLUSPLUS
3093 static
3094 symbol_type
3096 {
3097 return symbol_type (token::TOKEN_NAME, std::move (l));
3098 }
3099#else
3100 static
3101 symbol_type
3103 {
3104 return symbol_type (token::TOKEN_NAME, l);
3105 }
3106#endif
3107#if 201103L <= YY_CPLUSPLUS
3108 static
3109 symbol_type
3111 {
3112 return symbol_type (token::TOKEN_DATA, std::move (l));
3113 }
3114#else
3115 static
3116 symbol_type
3118 {
3119 return symbol_type (token::TOKEN_DATA, l);
3120 }
3121#endif
3122#if 201103L <= YY_CPLUSPLUS
3123 static
3124 symbol_type
3126 {
3127 return symbol_type (token::TOKEN_CODE, std::move (l));
3128 }
3129#else
3130 static
3131 symbol_type
3133 {
3134 return symbol_type (token::TOKEN_CODE, l);
3135 }
3136#endif
3137#if 201103L <= YY_CPLUSPLUS
3138 static
3139 symbol_type
3141 {
3142 return symbol_type (token::TOKEN_SPACE, std::move (l));
3143 }
3144#else
3145 static
3146 symbol_type
3148 {
3149 return symbol_type (token::TOKEN_SPACE, l);
3150 }
3151#endif
3152#if 201103L <= YY_CPLUSPLUS
3153 static
3154 symbol_type
3156 {
3157 return symbol_type (token::TOKEN_CSV_FORMAT, std::move (l));
3158 }
3159#else
3160 static
3161 symbol_type
3163 {
3165 }
3166#endif
3167#if 201103L <= YY_CPLUSPLUS
3168 static
3169 symbol_type
3171 {
3172 return symbol_type (token::TOKEN_ALWAYS_SEND, std::move (l));
3173 }
3174#else
3175 static
3176 symbol_type
3178 {
3180 }
3181#endif
3182#if 201103L <= YY_CPLUSPLUS
3183 static
3184 symbol_type
3186 {
3187 return symbol_type (token::TOKEN_RECORD_TYPES, std::move (l));
3188 }
3189#else
3190 static
3191 symbol_type
3193 {
3195 }
3196#endif
3197#if 201103L <= YY_CPLUSPLUS
3198 static
3199 symbol_type
3201 {
3202 return symbol_type (token::TOKEN_ENCAPSULATE, std::move (l));
3203 }
3204#else
3205 static
3206 symbol_type
3208 {
3210 }
3211#endif
3212#if 201103L <= YY_CPLUSPLUS
3213 static
3214 symbol_type
3216 {
3217 return symbol_type (token::TOKEN_ARRAY, std::move (l));
3218 }
3219#else
3220 static
3221 symbol_type
3223 {
3224 return symbol_type (token::TOKEN_ARRAY, l);
3225 }
3226#endif
3227#if 201103L <= YY_CPLUSPLUS
3228 static
3229 symbol_type
3231 {
3232 return symbol_type (token::TOKEN_PARKED_PACKET_LIMIT, std::move (l));
3233 }
3234#else
3235 static
3236 symbol_type
3238 {
3240 }
3241#endif
3242#if 201103L <= YY_CPLUSPLUS
3243 static
3244 symbol_type
3246 {
3247 return symbol_type (token::TOKEN_SHARED_NETWORKS, std::move (l));
3248 }
3249#else
3250 static
3251 symbol_type
3253 {
3255 }
3256#endif
3257#if 201103L <= YY_CPLUSPLUS
3258 static
3259 symbol_type
3261 {
3262 return symbol_type (token::TOKEN_POOLS, std::move (l));
3263 }
3264#else
3265 static
3266 symbol_type
3268 {
3269 return symbol_type (token::TOKEN_POOLS, l);
3270 }
3271#endif
3272#if 201103L <= YY_CPLUSPLUS
3273 static
3274 symbol_type
3276 {
3277 return symbol_type (token::TOKEN_POOL, std::move (l));
3278 }
3279#else
3280 static
3281 symbol_type
3283 {
3284 return symbol_type (token::TOKEN_POOL, l);
3285 }
3286#endif
3287#if 201103L <= YY_CPLUSPLUS
3288 static
3289 symbol_type
3291 {
3292 return symbol_type (token::TOKEN_USER_CONTEXT, std::move (l));
3293 }
3294#else
3295 static
3296 symbol_type
3298 {
3300 }
3301#endif
3302#if 201103L <= YY_CPLUSPLUS
3303 static
3304 symbol_type
3306 {
3307 return symbol_type (token::TOKEN_COMMENT, std::move (l));
3308 }
3309#else
3310 static
3311 symbol_type
3313 {
3315 }
3316#endif
3317#if 201103L <= YY_CPLUSPLUS
3318 static
3319 symbol_type
3321 {
3322 return symbol_type (token::TOKEN_SUBNET, std::move (l));
3323 }
3324#else
3325 static
3326 symbol_type
3328 {
3329 return symbol_type (token::TOKEN_SUBNET, l);
3330 }
3331#endif
3332#if 201103L <= YY_CPLUSPLUS
3333 static
3334 symbol_type
3336 {
3337 return symbol_type (token::TOKEN_INTERFACE, std::move (l));
3338 }
3339#else
3340 static
3341 symbol_type
3343 {
3345 }
3346#endif
3347#if 201103L <= YY_CPLUSPLUS
3348 static
3349 symbol_type
3351 {
3352 return symbol_type (token::TOKEN_ID, std::move (l));
3353 }
3354#else
3355 static
3356 symbol_type
3358 {
3359 return symbol_type (token::TOKEN_ID, l);
3360 }
3361#endif
3362#if 201103L <= YY_CPLUSPLUS
3363 static
3364 symbol_type
3366 {
3367 return symbol_type (token::TOKEN_RESERVATION_MODE, std::move (l));
3368 }
3369#else
3370 static
3371 symbol_type
3373 {
3375 }
3376#endif
3377#if 201103L <= YY_CPLUSPLUS
3378 static
3379 symbol_type
3381 {
3382 return symbol_type (token::TOKEN_DISABLED, std::move (l));
3383 }
3384#else
3385 static
3386 symbol_type
3388 {
3390 }
3391#endif
3392#if 201103L <= YY_CPLUSPLUS
3393 static
3394 symbol_type
3396 {
3397 return symbol_type (token::TOKEN_OUT_OF_POOL, std::move (l));
3398 }
3399#else
3400 static
3401 symbol_type
3403 {
3405 }
3406#endif
3407#if 201103L <= YY_CPLUSPLUS
3408 static
3409 symbol_type
3411 {
3412 return symbol_type (token::TOKEN_GLOBAL, std::move (l));
3413 }
3414#else
3415 static
3416 symbol_type
3418 {
3419 return symbol_type (token::TOKEN_GLOBAL, l);
3420 }
3421#endif
3422#if 201103L <= YY_CPLUSPLUS
3423 static
3424 symbol_type
3426 {
3427 return symbol_type (token::TOKEN_ALL, std::move (l));
3428 }
3429#else
3430 static
3431 symbol_type
3433 {
3434 return symbol_type (token::TOKEN_ALL, l);
3435 }
3436#endif
3437#if 201103L <= YY_CPLUSPLUS
3438 static
3439 symbol_type
3441 {
3442 return symbol_type (token::TOKEN_RESERVATIONS_GLOBAL, std::move (l));
3443 }
3444#else
3445 static
3446 symbol_type
3448 {
3450 }
3451#endif
3452#if 201103L <= YY_CPLUSPLUS
3453 static
3454 symbol_type
3456 {
3457 return symbol_type (token::TOKEN_RESERVATIONS_IN_SUBNET, std::move (l));
3458 }
3459#else
3460 static
3461 symbol_type
3463 {
3465 }
3466#endif
3467#if 201103L <= YY_CPLUSPLUS
3468 static
3469 symbol_type
3471 {
3472 return symbol_type (token::TOKEN_RESERVATIONS_OUT_OF_POOL, std::move (l));
3473 }
3474#else
3475 static
3476 symbol_type
3478 {
3480 }
3481#endif
3482#if 201103L <= YY_CPLUSPLUS
3483 static
3484 symbol_type
3486 {
3487 return symbol_type (token::TOKEN_HOST_RESERVATION_IDENTIFIERS, std::move (l));
3488 }
3489#else
3490 static
3491 symbol_type
3493 {
3495 }
3496#endif
3497#if 201103L <= YY_CPLUSPLUS
3498 static
3499 symbol_type
3501 {
3502 return symbol_type (token::TOKEN_CLIENT_CLASSES, std::move (l));
3503 }
3504#else
3505 static
3506 symbol_type
3508 {
3510 }
3511#endif
3512#if 201103L <= YY_CPLUSPLUS
3513 static
3514 symbol_type
3516 {
3517 return symbol_type (token::TOKEN_REQUIRE_CLIENT_CLASSES, std::move (l));
3518 }
3519#else
3520 static
3521 symbol_type
3523 {
3525 }
3526#endif
3527#if 201103L <= YY_CPLUSPLUS
3528 static
3529 symbol_type
3531 {
3532 return symbol_type (token::TOKEN_TEST, std::move (l));
3533 }
3534#else
3535 static
3536 symbol_type
3538 {
3539 return symbol_type (token::TOKEN_TEST, l);
3540 }
3541#endif
3542#if 201103L <= YY_CPLUSPLUS
3543 static
3544 symbol_type
3546 {
3547 return symbol_type (token::TOKEN_ONLY_IF_REQUIRED, std::move (l));
3548 }
3549#else
3550 static
3551 symbol_type
3553 {
3555 }
3556#endif
3557#if 201103L <= YY_CPLUSPLUS
3558 static
3559 symbol_type
3561 {
3562 return symbol_type (token::TOKEN_CLIENT_CLASS, std::move (l));
3563 }
3564#else
3565 static
3566 symbol_type
3568 {
3570 }
3571#endif
3572#if 201103L <= YY_CPLUSPLUS
3573 static
3574 symbol_type
3576 {
3577 return symbol_type (token::TOKEN_RESERVATIONS, std::move (l));
3578 }
3579#else
3580 static
3581 symbol_type
3583 {
3585 }
3586#endif
3587#if 201103L <= YY_CPLUSPLUS
3588 static
3589 symbol_type
3591 {
3592 return symbol_type (token::TOKEN_DUID, std::move (l));
3593 }
3594#else
3595 static
3596 symbol_type
3598 {
3599 return symbol_type (token::TOKEN_DUID, l);
3600 }
3601#endif
3602#if 201103L <= YY_CPLUSPLUS
3603 static
3604 symbol_type
3606 {
3607 return symbol_type (token::TOKEN_HW_ADDRESS, std::move (l));
3608 }
3609#else
3610 static
3611 symbol_type
3613 {
3615 }
3616#endif
3617#if 201103L <= YY_CPLUSPLUS
3618 static
3619 symbol_type
3621 {
3622 return symbol_type (token::TOKEN_CIRCUIT_ID, std::move (l));
3623 }
3624#else
3625 static
3626 symbol_type
3628 {
3630 }
3631#endif
3632#if 201103L <= YY_CPLUSPLUS
3633 static
3634 symbol_type
3636 {
3637 return symbol_type (token::TOKEN_CLIENT_ID, std::move (l));
3638 }
3639#else
3640 static
3641 symbol_type
3643 {
3645 }
3646#endif
3647#if 201103L <= YY_CPLUSPLUS
3648 static
3649 symbol_type
3651 {
3652 return symbol_type (token::TOKEN_HOSTNAME, std::move (l));
3653 }
3654#else
3655 static
3656 symbol_type
3658 {
3660 }
3661#endif
3662#if 201103L <= YY_CPLUSPLUS
3663 static
3664 symbol_type
3666 {
3667 return symbol_type (token::TOKEN_FLEX_ID, std::move (l));
3668 }
3669#else
3670 static
3671 symbol_type
3673 {
3675 }
3676#endif
3677#if 201103L <= YY_CPLUSPLUS
3678 static
3679 symbol_type
3681 {
3682 return symbol_type (token::TOKEN_RELAY, std::move (l));
3683 }
3684#else
3685 static
3686 symbol_type
3688 {
3689 return symbol_type (token::TOKEN_RELAY, l);
3690 }
3691#endif
3692#if 201103L <= YY_CPLUSPLUS
3693 static
3694 symbol_type
3696 {
3697 return symbol_type (token::TOKEN_IP_ADDRESS, std::move (l));
3698 }
3699#else
3700 static
3701 symbol_type
3703 {
3705 }
3706#endif
3707#if 201103L <= YY_CPLUSPLUS
3708 static
3709 symbol_type
3711 {
3712 return symbol_type (token::TOKEN_IP_ADDRESSES, std::move (l));
3713 }
3714#else
3715 static
3716 symbol_type
3718 {
3720 }
3721#endif
3722#if 201103L <= YY_CPLUSPLUS
3723 static
3724 symbol_type
3726 {
3727 return symbol_type (token::TOKEN_HOOKS_LIBRARIES, std::move (l));
3728 }
3729#else
3730 static
3731 symbol_type
3733 {
3735 }
3736#endif
3737#if 201103L <= YY_CPLUSPLUS
3738 static
3739 symbol_type
3741 {
3742 return symbol_type (token::TOKEN_LIBRARY, std::move (l));
3743 }
3744#else
3745 static
3746 symbol_type
3748 {
3750 }
3751#endif
3752#if 201103L <= YY_CPLUSPLUS
3753 static
3754 symbol_type
3756 {
3757 return symbol_type (token::TOKEN_PARAMETERS, std::move (l));
3758 }
3759#else
3760 static
3761 symbol_type
3763 {
3765 }
3766#endif
3767#if 201103L <= YY_CPLUSPLUS
3768 static
3769 symbol_type
3771 {
3772 return symbol_type (token::TOKEN_EXPIRED_LEASES_PROCESSING, std::move (l));
3773 }
3774#else
3775 static
3776 symbol_type
3778 {
3780 }
3781#endif
3782#if 201103L <= YY_CPLUSPLUS
3783 static
3784 symbol_type
3786 {
3787 return symbol_type (token::TOKEN_RECLAIM_TIMER_WAIT_TIME, std::move (l));
3788 }
3789#else
3790 static
3791 symbol_type
3793 {
3795 }
3796#endif
3797#if 201103L <= YY_CPLUSPLUS
3798 static
3799 symbol_type
3801 {
3802 return symbol_type (token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME, std::move (l));
3803 }
3804#else
3805 static
3806 symbol_type
3808 {
3810 }
3811#endif
3812#if 201103L <= YY_CPLUSPLUS
3813 static
3814 symbol_type
3816 {
3817 return symbol_type (token::TOKEN_HOLD_RECLAIMED_TIME, std::move (l));
3818 }
3819#else
3820 static
3821 symbol_type
3823 {
3825 }
3826#endif
3827#if 201103L <= YY_CPLUSPLUS
3828 static
3829 symbol_type
3831 {
3832 return symbol_type (token::TOKEN_MAX_RECLAIM_LEASES, std::move (l));
3833 }
3834#else
3835 static
3836 symbol_type
3838 {
3840 }
3841#endif
3842#if 201103L <= YY_CPLUSPLUS
3843 static
3844 symbol_type
3846 {
3847 return symbol_type (token::TOKEN_MAX_RECLAIM_TIME, std::move (l));
3848 }
3849#else
3850 static
3851 symbol_type
3853 {
3855 }
3856#endif
3857#if 201103L <= YY_CPLUSPLUS
3858 static
3859 symbol_type
3861 {
3862 return symbol_type (token::TOKEN_UNWARNED_RECLAIM_CYCLES, std::move (l));
3863 }
3864#else
3865 static
3866 symbol_type
3868 {
3870 }
3871#endif
3872#if 201103L <= YY_CPLUSPLUS
3873 static
3874 symbol_type
3876 {
3877 return symbol_type (token::TOKEN_DHCP4O6_PORT, std::move (l));
3878 }
3879#else
3880 static
3881 symbol_type
3883 {
3885 }
3886#endif
3887#if 201103L <= YY_CPLUSPLUS
3888 static
3889 symbol_type
3891 {
3892 return symbol_type (token::TOKEN_DHCP_MULTI_THREADING, std::move (l));
3893 }
3894#else
3895 static
3896 symbol_type
3898 {
3900 }
3901#endif
3902#if 201103L <= YY_CPLUSPLUS
3903 static
3904 symbol_type
3906 {
3907 return symbol_type (token::TOKEN_ENABLE_MULTI_THREADING, std::move (l));
3908 }
3909#else
3910 static
3911 symbol_type
3913 {
3915 }
3916#endif
3917#if 201103L <= YY_CPLUSPLUS
3918 static
3919 symbol_type
3921 {
3922 return symbol_type (token::TOKEN_THREAD_POOL_SIZE, std::move (l));
3923 }
3924#else
3925 static
3926 symbol_type
3928 {
3930 }
3931#endif
3932#if 201103L <= YY_CPLUSPLUS
3933 static
3934 symbol_type
3936 {
3937 return symbol_type (token::TOKEN_PACKET_QUEUE_SIZE, std::move (l));
3938 }
3939#else
3940 static
3941 symbol_type
3943 {
3945 }
3946#endif
3947#if 201103L <= YY_CPLUSPLUS
3948 static
3949 symbol_type
3951 {
3952 return symbol_type (token::TOKEN_CONTROL_SOCKET, std::move (l));
3953 }
3954#else
3955 static
3956 symbol_type
3958 {
3960 }
3961#endif
3962#if 201103L <= YY_CPLUSPLUS
3963 static
3964 symbol_type
3966 {
3967 return symbol_type (token::TOKEN_SOCKET_TYPE, std::move (l));
3968 }
3969#else
3970 static
3971 symbol_type
3973 {
3975 }
3976#endif
3977#if 201103L <= YY_CPLUSPLUS
3978 static
3979 symbol_type
3981 {
3982 return symbol_type (token::TOKEN_SOCKET_NAME, std::move (l));
3983 }
3984#else
3985 static
3986 symbol_type
3988 {
3990 }
3991#endif
3992#if 201103L <= YY_CPLUSPLUS
3993 static
3994 symbol_type
3996 {
3997 return symbol_type (token::TOKEN_DHCP_QUEUE_CONTROL, std::move (l));
3998 }
3999#else
4000 static
4001 symbol_type
4003 {
4005 }
4006#endif
4007#if 201103L <= YY_CPLUSPLUS
4008 static
4009 symbol_type
4011 {
4012 return symbol_type (token::TOKEN_ENABLE_QUEUE, std::move (l));
4013 }
4014#else
4015 static
4016 symbol_type
4018 {
4020 }
4021#endif
4022#if 201103L <= YY_CPLUSPLUS
4023 static
4024 symbol_type
4026 {
4027 return symbol_type (token::TOKEN_QUEUE_TYPE, std::move (l));
4028 }
4029#else
4030 static
4031 symbol_type
4033 {
4035 }
4036#endif
4037#if 201103L <= YY_CPLUSPLUS
4038 static
4039 symbol_type
4041 {
4042 return symbol_type (token::TOKEN_CAPACITY, std::move (l));
4043 }
4044#else
4045 static
4046 symbol_type
4048 {
4050 }
4051#endif
4052#if 201103L <= YY_CPLUSPLUS
4053 static
4054 symbol_type
4056 {
4057 return symbol_type (token::TOKEN_DHCP_DDNS, std::move (l));
4058 }
4059#else
4060 static
4061 symbol_type
4063 {
4065 }
4066#endif
4067#if 201103L <= YY_CPLUSPLUS
4068 static
4069 symbol_type
4071 {
4072 return symbol_type (token::TOKEN_ENABLE_UPDATES, std::move (l));
4073 }
4074#else
4075 static
4076 symbol_type
4078 {
4080 }
4081#endif
4082#if 201103L <= YY_CPLUSPLUS
4083 static
4084 symbol_type
4086 {
4087 return symbol_type (token::TOKEN_QUALIFYING_SUFFIX, std::move (l));
4088 }
4089#else
4090 static
4091 symbol_type
4093 {
4095 }
4096#endif
4097#if 201103L <= YY_CPLUSPLUS
4098 static
4099 symbol_type
4101 {
4102 return symbol_type (token::TOKEN_SERVER_IP, std::move (l));
4103 }
4104#else
4105 static
4106 symbol_type
4108 {
4110 }
4111#endif
4112#if 201103L <= YY_CPLUSPLUS
4113 static
4114 symbol_type
4116 {
4117 return symbol_type (token::TOKEN_SERVER_PORT, std::move (l));
4118 }
4119#else
4120 static
4121 symbol_type
4123 {
4125 }
4126#endif
4127#if 201103L <= YY_CPLUSPLUS
4128 static
4129 symbol_type
4131 {
4132 return symbol_type (token::TOKEN_SENDER_IP, std::move (l));
4133 }
4134#else
4135 static
4136 symbol_type
4138 {
4140 }
4141#endif
4142#if 201103L <= YY_CPLUSPLUS
4143 static
4144 symbol_type
4146 {
4147 return symbol_type (token::TOKEN_SENDER_PORT, std::move (l));
4148 }
4149#else
4150 static
4151 symbol_type
4153 {
4155 }
4156#endif
4157#if 201103L <= YY_CPLUSPLUS
4158 static
4159 symbol_type
4161 {
4162 return symbol_type (token::TOKEN_MAX_QUEUE_SIZE, std::move (l));
4163 }
4164#else
4165 static
4166 symbol_type
4168 {
4170 }
4171#endif
4172#if 201103L <= YY_CPLUSPLUS
4173 static
4174 symbol_type
4176 {
4177 return symbol_type (token::TOKEN_NCR_PROTOCOL, std::move (l));
4178 }
4179#else
4180 static
4181 symbol_type
4183 {
4185 }
4186#endif
4187#if 201103L <= YY_CPLUSPLUS
4188 static
4189 symbol_type
4191 {
4192 return symbol_type (token::TOKEN_NCR_FORMAT, std::move (l));
4193 }
4194#else
4195 static
4196 symbol_type
4198 {
4200 }
4201#endif
4202#if 201103L <= YY_CPLUSPLUS
4203 static
4204 symbol_type
4206 {
4207 return symbol_type (token::TOKEN_OVERRIDE_NO_UPDATE, std::move (l));
4208 }
4209#else
4210 static
4211 symbol_type
4213 {
4215 }
4216#endif
4217#if 201103L <= YY_CPLUSPLUS
4218 static
4219 symbol_type
4221 {
4222 return symbol_type (token::TOKEN_OVERRIDE_CLIENT_UPDATE, std::move (l));
4223 }
4224#else
4225 static
4226 symbol_type
4228 {
4230 }
4231#endif
4232#if 201103L <= YY_CPLUSPLUS
4233 static
4234 symbol_type
4236 {
4237 return symbol_type (token::TOKEN_REPLACE_CLIENT_NAME, std::move (l));
4238 }
4239#else
4240 static
4241 symbol_type
4243 {
4245 }
4246#endif
4247#if 201103L <= YY_CPLUSPLUS
4248 static
4249 symbol_type
4251 {
4252 return symbol_type (token::TOKEN_GENERATED_PREFIX, std::move (l));
4253 }
4254#else
4255 static
4256 symbol_type
4258 {
4260 }
4261#endif
4262#if 201103L <= YY_CPLUSPLUS
4263 static
4264 symbol_type
4266 {
4267 return symbol_type (token::TOKEN_TCP, std::move (l));
4268 }
4269#else
4270 static
4271 symbol_type
4273 {
4274 return symbol_type (token::TOKEN_TCP, l);
4275 }
4276#endif
4277#if 201103L <= YY_CPLUSPLUS
4278 static
4279 symbol_type
4281 {
4282 return symbol_type (token::TOKEN_JSON, std::move (l));
4283 }
4284#else
4285 static
4286 symbol_type
4288 {
4289 return symbol_type (token::TOKEN_JSON, l);
4290 }
4291#endif
4292#if 201103L <= YY_CPLUSPLUS
4293 static
4294 symbol_type
4296 {
4297 return symbol_type (token::TOKEN_WHEN_PRESENT, std::move (l));
4298 }
4299#else
4300 static
4301 symbol_type
4303 {
4305 }
4306#endif
4307#if 201103L <= YY_CPLUSPLUS
4308 static
4309 symbol_type
4311 {
4312 return symbol_type (token::TOKEN_NEVER, std::move (l));
4313 }
4314#else
4315 static
4316 symbol_type
4318 {
4319 return symbol_type (token::TOKEN_NEVER, l);
4320 }
4321#endif
4322#if 201103L <= YY_CPLUSPLUS
4323 static
4324 symbol_type
4326 {
4327 return symbol_type (token::TOKEN_ALWAYS, std::move (l));
4328 }
4329#else
4330 static
4331 symbol_type
4333 {
4334 return symbol_type (token::TOKEN_ALWAYS, l);
4335 }
4336#endif
4337#if 201103L <= YY_CPLUSPLUS
4338 static
4339 symbol_type
4341 {
4342 return symbol_type (token::TOKEN_WHEN_NOT_PRESENT, std::move (l));
4343 }
4344#else
4345 static
4346 symbol_type
4348 {
4350 }
4351#endif
4352#if 201103L <= YY_CPLUSPLUS
4353 static
4354 symbol_type
4356 {
4357 return symbol_type (token::TOKEN_HOSTNAME_CHAR_SET, std::move (l));
4358 }
4359#else
4360 static
4361 symbol_type
4363 {
4365 }
4366#endif
4367#if 201103L <= YY_CPLUSPLUS
4368 static
4369 symbol_type
4371 {
4372 return symbol_type (token::TOKEN_HOSTNAME_CHAR_REPLACEMENT, std::move (l));
4373 }
4374#else
4375 static
4376 symbol_type
4378 {
4380 }
4381#endif
4382#if 201103L <= YY_CPLUSPLUS
4383 static
4384 symbol_type
4386 {
4387 return symbol_type (token::TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP, std::move (l));
4388 }
4389#else
4390 static
4391 symbol_type
4393 {
4395 }
4396#endif
4397#if 201103L <= YY_CPLUSPLUS
4398 static
4399 symbol_type
4401 {
4402 return symbol_type (token::TOKEN_IP_RESERVATIONS_UNIQUE, std::move (l));
4403 }
4404#else
4405 static
4406 symbol_type
4408 {
4410 }
4411#endif
4412#if 201103L <= YY_CPLUSPLUS
4413 static
4414 symbol_type
4416 {
4417 return symbol_type (token::TOKEN_RESERVATIONS_LOOKUP_FIRST, std::move (l));
4418 }
4419#else
4420 static
4421 symbol_type
4423 {
4425 }
4426#endif
4427#if 201103L <= YY_CPLUSPLUS
4428 static
4429 symbol_type
4431 {
4432 return symbol_type (token::TOKEN_LOGGERS, std::move (l));
4433 }
4434#else
4435 static
4436 symbol_type
4438 {
4440 }
4441#endif
4442#if 201103L <= YY_CPLUSPLUS
4443 static
4444 symbol_type
4446 {
4447 return symbol_type (token::TOKEN_OUTPUT_OPTIONS, std::move (l));
4448 }
4449#else
4450 static
4451 symbol_type
4453 {
4455 }
4456#endif
4457#if 201103L <= YY_CPLUSPLUS
4458 static
4459 symbol_type
4461 {
4462 return symbol_type (token::TOKEN_OUTPUT, std::move (l));
4463 }
4464#else
4465 static
4466 symbol_type
4468 {
4469 return symbol_type (token::TOKEN_OUTPUT, l);
4470 }
4471#endif
4472#if 201103L <= YY_CPLUSPLUS
4473 static
4474 symbol_type
4476 {
4477 return symbol_type (token::TOKEN_DEBUGLEVEL, std::move (l));
4478 }
4479#else
4480 static
4481 symbol_type
4483 {
4485 }
4486#endif
4487#if 201103L <= YY_CPLUSPLUS
4488 static
4489 symbol_type
4491 {
4492 return symbol_type (token::TOKEN_SEVERITY, std::move (l));
4493 }
4494#else
4495 static
4496 symbol_type
4498 {
4500 }
4501#endif
4502#if 201103L <= YY_CPLUSPLUS
4503 static
4504 symbol_type
4506 {
4507 return symbol_type (token::TOKEN_FLUSH, std::move (l));
4508 }
4509#else
4510 static
4511 symbol_type
4513 {
4514 return symbol_type (token::TOKEN_FLUSH, l);
4515 }
4516#endif
4517#if 201103L <= YY_CPLUSPLUS
4518 static
4519 symbol_type
4521 {
4522 return symbol_type (token::TOKEN_MAXSIZE, std::move (l));
4523 }
4524#else
4525 static
4526 symbol_type
4528 {
4530 }
4531#endif
4532#if 201103L <= YY_CPLUSPLUS
4533 static
4534 symbol_type
4536 {
4537 return symbol_type (token::TOKEN_MAXVER, std::move (l));
4538 }
4539#else
4540 static
4541 symbol_type
4543 {
4544 return symbol_type (token::TOKEN_MAXVER, l);
4545 }
4546#endif
4547#if 201103L <= YY_CPLUSPLUS
4548 static
4549 symbol_type
4551 {
4552 return symbol_type (token::TOKEN_PATTERN, std::move (l));
4553 }
4554#else
4555 static
4556 symbol_type
4558 {
4560 }
4561#endif
4562#if 201103L <= YY_CPLUSPLUS
4563 static
4564 symbol_type
4566 {
4567 return symbol_type (token::TOKEN_COMPATIBILITY, std::move (l));
4568 }
4569#else
4570 static
4571 symbol_type
4573 {
4575 }
4576#endif
4577#if 201103L <= YY_CPLUSPLUS
4578 static
4579 symbol_type
4581 {
4582 return symbol_type (token::TOKEN_LENIENT_OPTION_PARSING, std::move (l));
4583 }
4584#else
4585 static
4586 symbol_type
4588 {
4590 }
4591#endif
4592#if 201103L <= YY_CPLUSPLUS
4593 static
4594 symbol_type
4596 {
4597 return symbol_type (token::TOKEN_TOPLEVEL_JSON, std::move (l));
4598 }
4599#else
4600 static
4601 symbol_type
4603 {
4605 }
4606#endif
4607#if 201103L <= YY_CPLUSPLUS
4608 static
4609 symbol_type
4611 {
4612 return symbol_type (token::TOKEN_TOPLEVEL_DHCP4, std::move (l));
4613 }
4614#else
4615 static
4616 symbol_type
4618 {
4620 }
4621#endif
4622#if 201103L <= YY_CPLUSPLUS
4623 static
4624 symbol_type
4626 {
4627 return symbol_type (token::TOKEN_SUB_DHCP4, std::move (l));
4628 }
4629#else
4630 static
4631 symbol_type
4633 {
4635 }
4636#endif
4637#if 201103L <= YY_CPLUSPLUS
4638 static
4639 symbol_type
4641 {
4642 return symbol_type (token::TOKEN_SUB_INTERFACES4, std::move (l));
4643 }
4644#else
4645 static
4646 symbol_type
4648 {
4650 }
4651#endif
4652#if 201103L <= YY_CPLUSPLUS
4653 static
4654 symbol_type
4656 {
4657 return symbol_type (token::TOKEN_SUB_SUBNET4, std::move (l));
4658 }
4659#else
4660 static
4661 symbol_type
4663 {
4665 }
4666#endif
4667#if 201103L <= YY_CPLUSPLUS
4668 static
4669 symbol_type
4671 {
4672 return symbol_type (token::TOKEN_SUB_POOL4, std::move (l));
4673 }
4674#else
4675 static
4676 symbol_type
4678 {
4680 }
4681#endif
4682#if 201103L <= YY_CPLUSPLUS
4683 static
4684 symbol_type
4686 {
4687 return symbol_type (token::TOKEN_SUB_RESERVATION, std::move (l));
4688 }
4689#else
4690 static
4691 symbol_type
4693 {
4695 }
4696#endif
4697#if 201103L <= YY_CPLUSPLUS
4698 static
4699 symbol_type
4701 {
4702 return symbol_type (token::TOKEN_SUB_OPTION_DEFS, std::move (l));
4703 }
4704#else
4705 static
4706 symbol_type
4708 {
4710 }
4711#endif
4712#if 201103L <= YY_CPLUSPLUS
4713 static
4714 symbol_type
4716 {
4717 return symbol_type (token::TOKEN_SUB_OPTION_DEF, std::move (l));
4718 }
4719#else
4720 static
4721 symbol_type
4723 {
4725 }
4726#endif
4727#if 201103L <= YY_CPLUSPLUS
4728 static
4729 symbol_type
4731 {
4732 return symbol_type (token::TOKEN_SUB_OPTION_DATA, std::move (l));
4733 }
4734#else
4735 static
4736 symbol_type
4738 {
4740 }
4741#endif
4742#if 201103L <= YY_CPLUSPLUS
4743 static
4744 symbol_type
4746 {
4747 return symbol_type (token::TOKEN_SUB_HOOKS_LIBRARY, std::move (l));
4748 }
4749#else
4750 static
4751 symbol_type
4753 {
4755 }
4756#endif
4757#if 201103L <= YY_CPLUSPLUS
4758 static
4759 symbol_type
4761 {
4762 return symbol_type (token::TOKEN_SUB_DHCP_DDNS, std::move (l));
4763 }
4764#else
4765 static
4766 symbol_type
4768 {
4770 }
4771#endif
4772#if 201103L <= YY_CPLUSPLUS
4773 static
4774 symbol_type
4776 {
4777 return symbol_type (token::TOKEN_SUB_CONFIG_CONTROL, std::move (l));
4778 }
4779#else
4780 static
4781 symbol_type
4783 {
4785 }
4786#endif
4787#if 201103L <= YY_CPLUSPLUS
4788 static
4789 symbol_type
4790 make_STRING (std::string v, location_type l)
4791 {
4792 return symbol_type (token::TOKEN_STRING, std::move (v), std::move (l));
4793 }
4794#else
4795 static
4796 symbol_type
4797 make_STRING (const std::string& v, const location_type& l)
4798 {
4799 return symbol_type (token::TOKEN_STRING, v, l);
4800 }
4801#endif
4802#if 201103L <= YY_CPLUSPLUS
4803 static
4804 symbol_type
4805 make_INTEGER (int64_t v, location_type l)
4806 {
4807 return symbol_type (token::TOKEN_INTEGER, std::move (v), std::move (l));
4808 }
4809#else
4810 static
4811 symbol_type
4812 make_INTEGER (const int64_t& v, const location_type& l)
4813 {
4814 return symbol_type (token::TOKEN_INTEGER, v, l);
4815 }
4816#endif
4817#if 201103L <= YY_CPLUSPLUS
4818 static
4819 symbol_type
4820 make_FLOAT (double v, location_type l)
4821 {
4822 return symbol_type (token::TOKEN_FLOAT, std::move (v), std::move (l));
4823 }
4824#else
4825 static
4826 symbol_type
4827 make_FLOAT (const double& v, const location_type& l)
4828 {
4829 return symbol_type (token::TOKEN_FLOAT, v, l);
4830 }
4831#endif
4832#if 201103L <= YY_CPLUSPLUS
4833 static
4834 symbol_type
4835 make_BOOLEAN (bool v, location_type l)
4836 {
4837 return symbol_type (token::TOKEN_BOOLEAN, std::move (v), std::move (l));
4838 }
4839#else
4840 static
4841 symbol_type
4842 make_BOOLEAN (const bool& v, const location_type& l)
4843 {
4844 return symbol_type (token::TOKEN_BOOLEAN, v, l);
4845 }
4846#endif
4847
4848
4850 {
4851 public:
4852 context (const Dhcp4Parser& yyparser, const symbol_type& yyla);
4853 const symbol_type& lookahead () const YY_NOEXCEPT { return yyla_; }
4854 symbol_kind_type token () const YY_NOEXCEPT { return yyla_.kind (); }
4855 const location_type& location () const YY_NOEXCEPT { return yyla_.location; }
4856
4860 int expected_tokens (symbol_kind_type yyarg[], int yyargn) const;
4861
4862 private:
4863 const Dhcp4Parser& yyparser_;
4864 const symbol_type& yyla_;
4865 };
4866
4867 private:
4868#if YY_CPLUSPLUS < 201103L
4870 Dhcp4Parser (const Dhcp4Parser&);
4872 Dhcp4Parser& operator= (const Dhcp4Parser&);
4873#endif
4874
4875
4877 typedef short state_type;
4878
4880 int yy_syntax_error_arguments_ (const context& yyctx,
4881 symbol_kind_type yyarg[], int yyargn) const;
4882
4885 virtual std::string yysyntax_error_ (const context& yyctx) const;
4889 static state_type yy_lr_goto_state_ (state_type yystate, int yysym);
4890
4893 static bool yy_pact_value_is_default_ (int yyvalue) YY_NOEXCEPT;
4894
4897 static bool yy_table_value_is_error_ (int yyvalue) YY_NOEXCEPT;
4898
4899 static const short yypact_ninf_;
4900 static const signed char yytable_ninf_;
4901
4905 static symbol_kind_type yytranslate_ (int t) YY_NOEXCEPT;
4906
4908 static std::string yytnamerr_ (const char *yystr);
4909
4911 static const char* const yytname_[];
4912
4913
4914 // Tables.
4915 // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
4916 // STATE-NUM.
4917 static const short yypact_[];
4918
4919 // YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
4920 // Performed when YYTABLE does not specify something else to do. Zero
4921 // means the default is an error.
4922 static const short yydefact_[];
4923
4924 // YYPGOTO[NTERM-NUM].
4925 static const short yypgoto_[];
4926
4927 // YYDEFGOTO[NTERM-NUM].
4928 static const short yydefgoto_[];
4929
4930 // YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
4931 // positive, shift that token. If negative, reduce the rule whose
4932 // number is the opposite. If YYTABLE_NINF, syntax error.
4933 static const short yytable_[];
4934
4935 static const short yycheck_[];
4936
4937 // YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
4938 // state STATE-NUM.
4939 static const short yystos_[];
4940
4941 // YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.
4942 static const short yyr1_[];
4943
4944 // YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.
4945 static const signed char yyr2_[];
4946
4947
4948#if PARSER4_DEBUG
4949 // YYRLINE[YYN] -- Source line where rule number YYN was defined.
4950 static const short yyrline_[];
4952 virtual void yy_reduce_print_ (int r) const;
4954 virtual void yy_stack_print_ () const;
4955
4957 int yydebug_;
4959 std::ostream* yycdebug_;
4960
4964 template <typename Base>
4965 void yy_print_ (std::ostream& yyo, const basic_symbol<Base>& yysym) const;
4966#endif
4967
4972 template <typename Base>
4973 void yy_destroy_ (const char* yymsg, basic_symbol<Base>& yysym) const;
4974
4975 private:
4977 struct by_state
4978 {
4980 by_state () YY_NOEXCEPT;
4981
4983 typedef state_type kind_type;
4984
4986 by_state (kind_type s) YY_NOEXCEPT;
4987
4989 by_state (const by_state& that) YY_NOEXCEPT;
4990
4992 void clear () YY_NOEXCEPT;
4993
4995 void move (by_state& that);
4996
4999 symbol_kind_type kind () const YY_NOEXCEPT;
5000
5003 enum { empty_state = 0 };
5004
5007 state_type state;
5008 };
5009
5011 struct stack_symbol_type : basic_symbol<by_state>
5012 {
5014 typedef basic_symbol<by_state> super_type;
5016 stack_symbol_type ();
5018 stack_symbol_type (YY_RVREF (stack_symbol_type) that);
5020 stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) sym);
5021#if YY_CPLUSPLUS < 201103L
5024 stack_symbol_type& operator= (stack_symbol_type& that);
5025
5028 stack_symbol_type& operator= (const stack_symbol_type& that);
5029#endif
5030 };
5031
5033 template <typename T, typename S = std::vector<T> >
5034 class stack
5035 {
5036 public:
5037 // Hide our reversed order.
5038 typedef typename S::iterator iterator;
5039 typedef typename S::const_iterator const_iterator;
5040 typedef typename S::size_type size_type;
5041 typedef typename std::ptrdiff_t index_type;
5042
5043 stack (size_type n = 200) YY_NOEXCEPT
5044 : seq_ (n)
5045 {}
5046
5047#if 201103L <= YY_CPLUSPLUS
5049 stack (const stack&) = delete;
5051 stack& operator= (const stack&) = delete;
5052#endif
5053
5057 const T&
5058 operator[] (index_type i) const
5059 {
5060 return seq_[size_type (size () - 1 - i)];
5061 }
5062
5066 T&
5067 operator[] (index_type i)
5068 {
5069 return seq_[size_type (size () - 1 - i)];
5070 }
5071
5075 void
5076 push (YY_MOVE_REF (T) t)
5077 {
5078 seq_.push_back (T ());
5079 operator[] (0).move (t);
5080 }
5081
5083 void
5084 pop (std::ptrdiff_t n = 1) YY_NOEXCEPT
5085 {
5086 for (; 0 < n; --n)
5087 seq_.pop_back ();
5088 }
5089
5091 void
5092 clear () YY_NOEXCEPT
5093 {
5094 seq_.clear ();
5095 }
5096
5098 index_type
5099 size () const YY_NOEXCEPT
5100 {
5101 return index_type (seq_.size ());
5102 }
5103
5105 const_iterator
5106 begin () const YY_NOEXCEPT
5107 {
5108 return seq_.begin ();
5109 }
5110
5112 const_iterator
5113 end () const YY_NOEXCEPT
5114 {
5115 return seq_.end ();
5116 }
5117
5119 class slice
5120 {
5121 public:
5122 slice (const stack& stack, index_type range) YY_NOEXCEPT
5123 : stack_ (stack)
5124 , range_ (range)
5125 {}
5126
5127 const T&
5128 operator[] (index_type i) const
5129 {
5130 return stack_[range_ - i];
5131 }
5132
5133 private:
5134 const stack& stack_;
5135 index_type range_;
5136 };
5137
5138 private:
5139#if YY_CPLUSPLUS < 201103L
5141 stack (const stack&);
5143 stack& operator= (const stack&);
5144#endif
5146 S seq_;
5147 };
5148
5149
5151 typedef stack<stack_symbol_type> stack_type;
5152
5154 stack_type yystack_;
5155
5161 void yypush_ (const char* m, YY_MOVE_REF (stack_symbol_type) sym);
5162
5169 void yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym);
5170
5172 void yypop_ (int n = 1) YY_NOEXCEPT;
5173
5175 enum
5176 {
5177 yylast_ = 1262,
5178 yynnts_ = 422,
5179 yyfinal_ = 28
5180 };
5181
5182
5183 // User arguments.
5185
5186 };
5187
5188 inline
5190 Dhcp4Parser::yytranslate_ (int t) YY_NOEXCEPT
5191 {
5192 // YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to
5193 // TOKEN-NUM as returned by yylex.
5194 static
5195 const unsigned char
5196 translate_table[] =
5197 {
5198 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5199 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5200 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5201 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5202 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5203 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5204 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5205 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5206 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5207 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5208 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5209 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5210 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5211 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5212 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5213 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5214 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5215 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5216 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5217 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5218 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5219 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5220 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5221 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5222 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5223 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
5224 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
5225 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
5226 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
5227 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
5228 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
5229 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
5230 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
5231 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
5232 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
5233 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
5234 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
5235 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
5236 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
5237 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
5238 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
5239 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
5240 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
5241 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
5242 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
5243 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
5244 205
5245 };
5246 // Last valid token kind.
5247 const int code_max = 460;
5248
5249 if (t <= 0)
5250 return symbol_kind::S_YYEOF;
5251 else if (t <= code_max)
5252 return static_cast <symbol_kind_type> (translate_table[t]);
5253 else
5255 }
5256
5257 // basic_symbol.
5258 template <typename Base>
5260 : Base (that)
5261 , value ()
5262 , location (that.location)
5263 {
5264 switch (this->kind ())
5265 {
5266 case symbol_kind::S_value: // value
5267 case symbol_kind::S_map_value: // map_value
5268 case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value
5269 case symbol_kind::S_socket_type: // socket_type
5270 case symbol_kind::S_outbound_interface_value: // outbound_interface_value
5271 case symbol_kind::S_db_type: // db_type
5272 case symbol_kind::S_on_fail_mode: // on_fail_mode
5273 case symbol_kind::S_hr_mode: // hr_mode
5274 case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value
5275 value.copy< ElementPtr > (YY_MOVE (that.value));
5276 break;
5277
5278 case symbol_kind::S_BOOLEAN: // "boolean"
5279 value.copy< bool > (YY_MOVE (that.value));
5280 break;
5281
5282 case symbol_kind::S_FLOAT: // "floating point"
5283 value.copy< double > (YY_MOVE (that.value));
5284 break;
5285
5286 case symbol_kind::S_INTEGER: // "integer"
5287 value.copy< int64_t > (YY_MOVE (that.value));
5288 break;
5289
5290 case symbol_kind::S_STRING: // "constant string"
5291 value.copy< std::string > (YY_MOVE (that.value));
5292 break;
5293
5294 default:
5295 break;
5296 }
5297
5298 }
5299
5300
5301
5302
5303 template <typename Base>
5306 {
5307 return this->kind ();
5308 }
5309
5310
5311 template <typename Base>
5312 bool
5314 {
5315 return this->kind () == symbol_kind::S_YYEMPTY;
5316 }
5317
5318 template <typename Base>
5319 void
5321 {
5322 super_type::move (s);
5323 switch (this->kind ())
5324 {
5325 case symbol_kind::S_value: // value
5326 case symbol_kind::S_map_value: // map_value
5327 case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value
5328 case symbol_kind::S_socket_type: // socket_type
5329 case symbol_kind::S_outbound_interface_value: // outbound_interface_value
5330 case symbol_kind::S_db_type: // db_type
5331 case symbol_kind::S_on_fail_mode: // on_fail_mode
5332 case symbol_kind::S_hr_mode: // hr_mode
5333 case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value
5334 value.move< ElementPtr > (YY_MOVE (s.value));
5335 break;
5336
5337 case symbol_kind::S_BOOLEAN: // "boolean"
5338 value.move< bool > (YY_MOVE (s.value));
5339 break;
5340
5341 case symbol_kind::S_FLOAT: // "floating point"
5342 value.move< double > (YY_MOVE (s.value));
5343 break;
5344
5345 case symbol_kind::S_INTEGER: // "integer"
5346 value.move< int64_t > (YY_MOVE (s.value));
5347 break;
5348
5349 case symbol_kind::S_STRING: // "constant string"
5350 value.move< std::string > (YY_MOVE (s.value));
5351 break;
5352
5353 default:
5354 break;
5355 }
5356
5357 location = YY_MOVE (s.location);
5358 }
5359
5360 // by_kind.
5361 inline
5363 : kind_ (symbol_kind::S_YYEMPTY)
5364 {}
5365
5366#if 201103L <= YY_CPLUSPLUS
5367 inline
5369 : kind_ (that.kind_)
5370 {
5371 that.clear ();
5372 }
5373#endif
5374
5375 inline
5377 : kind_ (that.kind_)
5378 {}
5379
5380 inline
5382 : kind_ (yytranslate_ (t))
5383 {}
5384
5385
5386
5387 inline
5388 void
5390 {
5391 kind_ = symbol_kind::S_YYEMPTY;
5392 }
5393
5394 inline
5395 void
5397 {
5398 kind_ = that.kind_;
5399 that.clear ();
5400 }
5401
5402 inline
5405 {
5406 return kind_;
5407 }
5408
5409
5410 inline
5413 {
5414 return this->kind ();
5415 }
5416
5417
5418#line 14 "dhcp4_parser.yy"
5419} } // isc::dhcp
5420#line 5421 "dhcp4_parser.h"
5421
5422
5423
5424
5425#endif // !YY_PARSER4_DHCP4_PARSER_H_INCLUDED
symbol_kind_type token() const YY_NOEXCEPT
const symbol_type & lookahead() const YY_NOEXCEPT
const location_type & location() const YY_NOEXCEPT
Present a slice of the top of a stack.
slice(const stack &stack, index_type range) YY_NOEXCEPT
A buffer to store and retrieve objects.
Definition: dhcp4_parser.h:230
const T & as() const YY_NOEXCEPT
Const accessor to a built T (for printer).
Definition: dhcp4_parser.h:330
void swap(self_type &that) YY_NOEXCEPT
Swap the content with that, of same type.
Definition: dhcp4_parser.h:348
void move(self_type &that)
Move the content of that to this.
Definition: dhcp4_parser.h:360
T & emplace(const T &t)
Instantiate a T in here from t.
Definition: dhcp4_parser.h:289
void destroy()
Destroy the stored T.
Definition: dhcp4_parser.h:393
value_type() YY_NOEXCEPT
Empty construction.
Definition: dhcp4_parser.h:236
void copy(const self_type &that)
Copy the content of that to this.
Definition: dhcp4_parser.h:385
T & emplace()
Instantiate an empty T in here.
Definition: dhcp4_parser.h:278
value_type(YY_RVREF(T) t)
Construct and fill.
Definition: dhcp4_parser.h:243
T & build(const T &t)
Instantiate a T in here from t.
Definition: dhcp4_parser.h:311
T & as() YY_NOEXCEPT
Accessor to a built T.
Definition: dhcp4_parser.h:319
value_type self_type
Type of *this.
Definition: dhcp4_parser.h:233
char yyraw_[size]
A buffer large enough to store any of the semantic values.
Definition: dhcp4_parser.h:461
T & build()
Instantiate an empty T in here.
Definition: dhcp4_parser.h:302
long double yyalign_me_
Strongest alignment constraints.
Definition: dhcp4_parser.h:459
~value_type() YY_NOEXCEPT
Destruction, allowed only if empty.
Definition: dhcp4_parser.h:258
A Bison parser.
Definition: dhcp4_parser.h:216
static symbol_type make_SAME_AS_INBOUND(const location_type &l)
static symbol_type make_SOCKET_NAME(const location_type &l)
static symbol_type make_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_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_SERVICE_SOCKETS_MAX_RETRIES(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_SERVICE_SOCKETS_REQUIRE_ALL(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_KEY_FILE(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_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:714
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_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_EARLY_GLOBAL_RESERVATIONS_LOOKUP(const location_type &l)
static symbol_type make_POSTGRESQL(const location_type &l)
static symbol_type make_LOGGERS(const location_type &l)
std::ostream & debug_stream() const YY_ATTRIBUTE_PURE
The current debugging stream.
static symbol_type make_MYSQL(const location_type &l)
static symbol_type make_UNWARNED_RECLAIM_CYCLES(const location_type &l)
void set_debug_stream(std::ostream &)
Set the current debugging stream.
static symbol_type make_LEASE_CHECKS(const location_type &l)
static symbol_type make_USER(const location_type &l)
static symbol_type make_GLOBAL(const location_type &l)
token::token_kind_type token_kind_type
Token kind, as returned by yylex.
Definition: dhcp4_parser.h:711
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_CERT_FILE(const location_type &l)
static symbol_type make_ECHO_CLIENT_ID(const location_type &l)
static symbol_type make_CIPHER_LIST(const location_type &l)
static symbol_type make_POOL(const location_type &l)
static symbol_type make_DATA(const location_type &l)
location location_type
Symbol locations.
Definition: dhcp4_parser.h:473
static symbol_type make_ENABLE_MULTI_THREADING(const location_type &l)
static symbol_type make_CSV_FORMAT(const location_type &l)
static symbol_type make_SERVER_PORT(const location_type &l)
static symbol_type make_SUB_SUBNET4(const location_type &l)
static symbol_type make_WHEN_NOT_PRESENT(const location_type &l)
static symbol_type make_LIBRARY(const location_type &l)
static symbol_type make_ON_FAIL(const location_type &l)
static symbol_type make_JSON(const location_type &l)
static symbol_type make_LCURLY_BRACKET(const location_type &l)
static symbol_type make_RECORD_TYPES(const location_type &l)
static symbol_type make_INTEGER(const int64_t &v, const location_type &l)
static symbol_type make_DUID(const location_type &l)
static symbol_type make_PARAMETERS(const location_type &l)
static symbol_type make_SUBNET_4O6_INTERFACE(const location_type &l)
static symbol_type make_DHCP4(const location_type &l)
static symbol_type make_CAPACITY(const location_type &l)
static symbol_type make_STRING(const std::string &v, const location_type &l)
value_type semantic_type
Backward compatibility (Bison 3.8).
Definition: dhcp4_parser.h:470
static symbol_type make_SUB_OPTION_DEF(const location_type &l)
static symbol_type make_PARSER4_error(const location_type &l)
static symbol_type make_TYPE(const location_type &l)
static symbol_type make_ONLY_IF_REQUIRED(const location_type &l)
static symbol_type make_PASSWORD(const location_type &l)
static symbol_type make_CONFIG_DATABASES(const location_type &l)
static symbol_type make_AUTHORITATIVE(const location_type &l)
static symbol_type make_HOST_RESERVATION_IDENTIFIERS(const location_type &l)
static symbol_type make_RESERVATION_MODE(const location_type &l)
static symbol_type make_MAX_ROW_ERRORS(const location_type &l)
static symbol_type make_INTERFACES(const location_type &l)
static symbol_type make_T2_PERCENT(const location_type &l)
static symbol_type make_READONLY(const location_type &l)
static symbol_type make_DDNS_USE_CONFLICT_RESOLUTION(const location_type &l)
static symbol_type make_LSQUARE_BRACKET(const location_type &l)
static symbol_type make_ENABLE_UPDATES(const location_type &l)
static symbol_type make_SERVER_TAG(const location_type &l)
static symbol_type make_DEBUGLEVEL(const location_type &l)
symbol_kind::symbol_kind_type symbol_kind_type
(Internal) symbol kind.
static symbol_type make_DHCP_QUEUE_CONTROL(const location_type &l)
static symbol_type make_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_TRUST_ANCHOR(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_RESERVATIONS_LOOKUP_FIRST(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_SERVICE_SOCKETS_RETRY_WAIT_TIME(const location_type &l)
static symbol_type make_LEASE_DATABASE(const location_type &l)
Evaluation context, an interface to the expression evaluation.
Forward declaration of the ParserContext class.
#define YY_RVREF(Type)
Definition: dhcp4_parser.h:86
#define YY_MOVE_REF(Type)
Definition: dhcp4_parser.h:85
#define PARSER4__ASSERT
Definition: dhcp4_parser.h:109
#define YY_NOEXCEPT
Definition: dhcp4_parser.h:95
#define YY_ATTRIBUTE_PURE
Definition: dhcp4_parser.h:117
#define YY_MOVE
Definition: dhcp4_parser.h:83
#define YY_NOTHROW
Definition: dhcp4_parser.h:96
boost::shared_ptr< Element > ElementPtr
Definition: data.h:24
Defines the logger used by the top-level component of kea-lfc.
location_type location
The location.
basic_symbol(typename Base::kind_type t, const std::string &v, const location_type &l)
value_type value
The semantic value.
bool empty() const YY_NOEXCEPT
Whether empty.
basic_symbol(typename Base::kind_type t, const ElementPtr &v, const location_type &l)
basic_symbol(typename Base::kind_type t, const location_type &l)
Constructors for typed symbols.
void move(basic_symbol &s)
Destructive move, s is emptied into this.
basic_symbol(typename Base::kind_type t, const int64_t &v, const location_type &l)
basic_symbol() YY_NOEXCEPT
Default constructor.
symbol_kind_type type_get() const YY_NOEXCEPT
Backward compatibility (Bison 3.6).
basic_symbol(typename Base::kind_type t, const bool &v, const location_type &l)
basic_symbol(typename Base::kind_type t, const double &v, const location_type &l)
std::string name() const YY_NOEXCEPT
The user-facing name of this symbol.
void clear() YY_NOEXCEPT
Destroy contents, and record that is empty.
Type access provider for token (enum) based symbols.
void move(by_kind &that)
Steal the symbol kind from that.
symbol_kind_type kind() const YY_NOEXCEPT
The (internal) type number (corresponding to type).
symbol_kind_type kind_
The symbol kind.
void clear() YY_NOEXCEPT
Record that this symbol is empty.
token_kind_type kind_type
The symbol kind as needed by the constructor.
by_kind() YY_NOEXCEPT
Default constructor.
symbol_kind_type type_get() const YY_NOEXCEPT
Backward compatibility (Bison 3.6).
"External" symbols: returned by the scanner.
basic_symbol< by_kind > super_type
Superclass.
symbol_type() YY_NOEXCEPT
Empty symbol.
Syntax errors thrown from user actions.
Definition: dhcp4_parser.h:477
~syntax_error() YY_NOEXCEPT YY_NOTHROW
syntax_error(const syntax_error &s)
Definition: dhcp4_parser.h:483
syntax_error(const location_type &l, const std::string &m)
Definition: dhcp4_parser.h:478
token_kind_type yytokentype
Backward compatibility alias (Bison 3.6).
Definition: dhcp4_parser.h:707