Kea  2.5.3
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 
56 using namespace isc::dhcp;
57 using namespace isc::data;
58 using 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"
208 namespace 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&
302  build ()
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&
330  as () const YY_NOEXCEPT
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
360  move (self_type& that)
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  // ddns_conflict_resolution_mode_value
432  // socket_type
433  // outbound_interface_value
434  // db_type
435  // on_fail_mode
436  // hr_mode
437  // ncr_protocol_value
438  char dummy1[sizeof (ElementPtr)];
439 
440  // "boolean"
441  char dummy2[sizeof (bool)];
442 
443  // "floating point"
444  char dummy3[sizeof (double)];
445 
446  // "integer"
447  char dummy4[sizeof (int64_t)];
448 
449  // "constant string"
450  char dummy5[sizeof (std::string)];
451  };
452 
454  enum { size = sizeof (union_type) };
455 
457  union
458  {
460  long double yyalign_me_;
462  char yyraw_[size];
463  };
464 
466  const std::type_info *yytypeid_;
467  };
468 
469 #endif
472 
474  typedef location location_type;
475 
477  struct syntax_error : std::runtime_error
478  {
479  syntax_error (const location_type& l, const std::string& m)
480  : std::runtime_error (m)
481  , location (l)
482  {}
483 
485  : std::runtime_error (s.what ())
486  , location (s.location)
487  {}
488 
490 
491  location_type location;
492  };
493 
495  struct token
496  {
498  {
499  TOKEN_PARSER4_EMPTY = -2,
500  TOKEN_END = 0, // "end of file"
501  TOKEN_PARSER4_error = 256, // error
502  TOKEN_PARSER4_UNDEF = 257, // "invalid token"
503  TOKEN_COMMA = 258, // ","
504  TOKEN_COLON = 259, // ":"
505  TOKEN_LSQUARE_BRACKET = 260, // "["
506  TOKEN_RSQUARE_BRACKET = 261, // "]"
507  TOKEN_LCURLY_BRACKET = 262, // "{"
508  TOKEN_RCURLY_BRACKET = 263, // "}"
509  TOKEN_NULL_TYPE = 264, // "null"
510  TOKEN_DHCP4 = 265, // "Dhcp4"
511  TOKEN_CONFIG_CONTROL = 266, // "config-control"
512  TOKEN_CONFIG_DATABASES = 267, // "config-databases"
513  TOKEN_CONFIG_FETCH_WAIT_TIME = 268, // "config-fetch-wait-time"
514  TOKEN_INTERFACES_CONFIG = 269, // "interfaces-config"
515  TOKEN_INTERFACES = 270, // "interfaces"
516  TOKEN_DHCP_SOCKET_TYPE = 271, // "dhcp-socket-type"
517  TOKEN_RAW = 272, // "raw"
518  TOKEN_UDP = 273, // "udp"
519  TOKEN_OUTBOUND_INTERFACE = 274, // "outbound-interface"
520  TOKEN_SAME_AS_INBOUND = 275, // "same-as-inbound"
521  TOKEN_USE_ROUTING = 276, // "use-routing"
522  TOKEN_RE_DETECT = 277, // "re-detect"
523  TOKEN_SERVICE_SOCKETS_REQUIRE_ALL = 278, // "service-sockets-require-all"
524  TOKEN_SERVICE_SOCKETS_RETRY_WAIT_TIME = 279, // "service-sockets-retry-wait-time"
525  TOKEN_SERVICE_SOCKETS_MAX_RETRIES = 280, // "service-sockets-max-retries"
526  TOKEN_SANITY_CHECKS = 281, // "sanity-checks"
527  TOKEN_LEASE_CHECKS = 282, // "lease-checks"
528  TOKEN_EXTENDED_INFO_CHECKS = 283, // "extended-info-checks"
529  TOKEN_ECHO_CLIENT_ID = 284, // "echo-client-id"
530  TOKEN_MATCH_CLIENT_ID = 285, // "match-client-id"
531  TOKEN_AUTHORITATIVE = 286, // "authoritative"
532  TOKEN_NEXT_SERVER = 287, // "next-server"
533  TOKEN_SERVER_HOSTNAME = 288, // "server-hostname"
534  TOKEN_BOOT_FILE_NAME = 289, // "boot-file-name"
535  TOKEN_OFFER_LFT = 290, // "offer-lifetime"
536  TOKEN_LEASE_DATABASE = 291, // "lease-database"
537  TOKEN_HOSTS_DATABASE = 292, // "hosts-database"
538  TOKEN_HOSTS_DATABASES = 293, // "hosts-databases"
539  TOKEN_TYPE = 294, // "type"
540  TOKEN_MEMFILE = 295, // "memfile"
541  TOKEN_MYSQL = 296, // "mysql"
542  TOKEN_POSTGRESQL = 297, // "postgresql"
543  TOKEN_USER = 298, // "user"
544  TOKEN_PASSWORD = 299, // "password"
545  TOKEN_HOST = 300, // "host"
546  TOKEN_PORT = 301, // "port"
547  TOKEN_PERSIST = 302, // "persist"
548  TOKEN_LFC_INTERVAL = 303, // "lfc-interval"
549  TOKEN_READONLY = 304, // "readonly"
550  TOKEN_CONNECT_TIMEOUT = 305, // "connect-timeout"
551  TOKEN_READ_TIMEOUT = 306, // "read-timeout"
552  TOKEN_WRITE_TIMEOUT = 307, // "write-timeout"
553  TOKEN_TCP_USER_TIMEOUT = 308, // "tcp-user-timeout"
554  TOKEN_MAX_RECONNECT_TRIES = 309, // "max-reconnect-tries"
555  TOKEN_RECONNECT_WAIT_TIME = 310, // "reconnect-wait-time"
556  TOKEN_ON_FAIL = 311, // "on-fail"
557  TOKEN_STOP_RETRY_EXIT = 312, // "stop-retry-exit"
558  TOKEN_SERVE_RETRY_EXIT = 313, // "serve-retry-exit"
559  TOKEN_SERVE_RETRY_CONTINUE = 314, // "serve-retry-continue"
560  TOKEN_MAX_ROW_ERRORS = 315, // "max-row-errors"
561  TOKEN_TRUST_ANCHOR = 316, // "trust-anchor"
562  TOKEN_CERT_FILE = 317, // "cert-file"
563  TOKEN_KEY_FILE = 318, // "key-file"
564  TOKEN_CIPHER_LIST = 319, // "cipher-list"
565  TOKEN_VALID_LIFETIME = 320, // "valid-lifetime"
566  TOKEN_MIN_VALID_LIFETIME = 321, // "min-valid-lifetime"
567  TOKEN_MAX_VALID_LIFETIME = 322, // "max-valid-lifetime"
568  TOKEN_RENEW_TIMER = 323, // "renew-timer"
569  TOKEN_REBIND_TIMER = 324, // "rebind-timer"
570  TOKEN_CALCULATE_TEE_TIMES = 325, // "calculate-tee-times"
571  TOKEN_T1_PERCENT = 326, // "t1-percent"
572  TOKEN_T2_PERCENT = 327, // "t2-percent"
573  TOKEN_CACHE_THRESHOLD = 328, // "cache-threshold"
574  TOKEN_CACHE_MAX_AGE = 329, // "cache-max-age"
575  TOKEN_DECLINE_PROBATION_PERIOD = 330, // "decline-probation-period"
576  TOKEN_SERVER_TAG = 331, // "server-tag"
577  TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT = 332, // "statistic-default-sample-count"
578  TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE = 333, // "statistic-default-sample-age"
579  TOKEN_DDNS_SEND_UPDATES = 334, // "ddns-send-updates"
580  TOKEN_DDNS_OVERRIDE_NO_UPDATE = 335, // "ddns-override-no-update"
581  TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE = 336, // "ddns-override-client-update"
582  TOKEN_DDNS_REPLACE_CLIENT_NAME = 337, // "ddns-replace-client-name"
583  TOKEN_DDNS_GENERATED_PREFIX = 338, // "ddns-generated-prefix"
584  TOKEN_DDNS_QUALIFYING_SUFFIX = 339, // "ddns-qualifying-suffix"
585  TOKEN_DDNS_UPDATE_ON_RENEW = 340, // "ddns-update-on-renew"
586  TOKEN_DDNS_USE_CONFLICT_RESOLUTION = 341, // "ddns-use-conflict-resolution"
587  TOKEN_DDNS_TTL_PERCENT = 342, // "ddns-ttl-percent"
588  TOKEN_STORE_EXTENDED_INFO = 343, // "store-extended-info"
589  TOKEN_SUBNET4 = 344, // "subnet4"
590  TOKEN_SUBNET_4O6_INTERFACE = 345, // "4o6-interface"
591  TOKEN_SUBNET_4O6_INTERFACE_ID = 346, // "4o6-interface-id"
592  TOKEN_SUBNET_4O6_SUBNET = 347, // "4o6-subnet"
593  TOKEN_OPTION_DEF = 348, // "option-def"
594  TOKEN_OPTION_DATA = 349, // "option-data"
595  TOKEN_NAME = 350, // "name"
596  TOKEN_DATA = 351, // "data"
597  TOKEN_CODE = 352, // "code"
598  TOKEN_SPACE = 353, // "space"
599  TOKEN_CSV_FORMAT = 354, // "csv-format"
600  TOKEN_ALWAYS_SEND = 355, // "always-send"
601  TOKEN_NEVER_SEND = 356, // "never-send"
602  TOKEN_RECORD_TYPES = 357, // "record-types"
603  TOKEN_ENCAPSULATE = 358, // "encapsulate"
604  TOKEN_ARRAY = 359, // "array"
605  TOKEN_PARKED_PACKET_LIMIT = 360, // "parked-packet-limit"
606  TOKEN_ALLOCATOR = 361, // "allocator"
607  TOKEN_DDNS_CONFLICT_RESOLUTION_MODE = 362, // "ddns-conflict-resolution-mode"
608  TOKEN_CHECK_WITH_DHCID = 363, // "check-with-dhcid"
609  TOKEN_NO_CHECK_WITH_DHCID = 364, // "no-check-with-dhcid"
610  TOKEN_CHECK_EXISTS_WITH_DHCID = 365, // "check-exists-with-dhcid"
611  TOKEN_NO_CHECK_WITHOUT_DHCID = 366, // "no-check-without-dhcid"
612  TOKEN_SHARED_NETWORKS = 367, // "shared-networks"
613  TOKEN_POOLS = 368, // "pools"
614  TOKEN_POOL = 369, // "pool"
615  TOKEN_USER_CONTEXT = 370, // "user-context"
616  TOKEN_COMMENT = 371, // "comment"
617  TOKEN_SUBNET = 372, // "subnet"
618  TOKEN_INTERFACE = 373, // "interface"
619  TOKEN_ID = 374, // "id"
620  TOKEN_RESERVATION_MODE = 375, // "reservation-mode"
621  TOKEN_DISABLED = 376, // "disabled"
622  TOKEN_OUT_OF_POOL = 377, // "out-of-pool"
623  TOKEN_GLOBAL = 378, // "global"
624  TOKEN_ALL = 379, // "all"
625  TOKEN_RESERVATIONS_GLOBAL = 380, // "reservations-global"
626  TOKEN_RESERVATIONS_IN_SUBNET = 381, // "reservations-in-subnet"
627  TOKEN_RESERVATIONS_OUT_OF_POOL = 382, // "reservations-out-of-pool"
628  TOKEN_HOST_RESERVATION_IDENTIFIERS = 383, // "host-reservation-identifiers"
629  TOKEN_CLIENT_CLASSES = 384, // "client-classes"
630  TOKEN_REQUIRE_CLIENT_CLASSES = 385, // "require-client-classes"
631  TOKEN_TEST = 386, // "test"
632  TOKEN_TEMPLATE_TEST = 387, // "template-test"
633  TOKEN_ONLY_IF_REQUIRED = 388, // "only-if-required"
634  TOKEN_CLIENT_CLASS = 389, // "client-class"
635  TOKEN_POOL_ID = 390, // "pool-id"
636  TOKEN_RESERVATIONS = 391, // "reservations"
637  TOKEN_DUID = 392, // "duid"
638  TOKEN_HW_ADDRESS = 393, // "hw-address"
639  TOKEN_CIRCUIT_ID = 394, // "circuit-id"
640  TOKEN_CLIENT_ID = 395, // "client-id"
641  TOKEN_HOSTNAME = 396, // "hostname"
642  TOKEN_FLEX_ID = 397, // "flex-id"
643  TOKEN_RELAY = 398, // "relay"
644  TOKEN_IP_ADDRESS = 399, // "ip-address"
645  TOKEN_IP_ADDRESSES = 400, // "ip-addresses"
646  TOKEN_HOOKS_LIBRARIES = 401, // "hooks-libraries"
647  TOKEN_LIBRARY = 402, // "library"
648  TOKEN_PARAMETERS = 403, // "parameters"
649  TOKEN_EXPIRED_LEASES_PROCESSING = 404, // "expired-leases-processing"
650  TOKEN_RECLAIM_TIMER_WAIT_TIME = 405, // "reclaim-timer-wait-time"
651  TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 406, // "flush-reclaimed-timer-wait-time"
652  TOKEN_HOLD_RECLAIMED_TIME = 407, // "hold-reclaimed-time"
653  TOKEN_MAX_RECLAIM_LEASES = 408, // "max-reclaim-leases"
654  TOKEN_MAX_RECLAIM_TIME = 409, // "max-reclaim-time"
655  TOKEN_UNWARNED_RECLAIM_CYCLES = 410, // "unwarned-reclaim-cycles"
656  TOKEN_DHCP4O6_PORT = 411, // "dhcp4o6-port"
657  TOKEN_DHCP_MULTI_THREADING = 412, // "multi-threading"
658  TOKEN_ENABLE_MULTI_THREADING = 413, // "enable-multi-threading"
659  TOKEN_THREAD_POOL_SIZE = 414, // "thread-pool-size"
660  TOKEN_PACKET_QUEUE_SIZE = 415, // "packet-queue-size"
661  TOKEN_CONTROL_SOCKET = 416, // "control-socket"
662  TOKEN_SOCKET_TYPE = 417, // "socket-type"
663  TOKEN_SOCKET_NAME = 418, // "socket-name"
664  TOKEN_DHCP_QUEUE_CONTROL = 419, // "dhcp-queue-control"
665  TOKEN_ENABLE_QUEUE = 420, // "enable-queue"
666  TOKEN_QUEUE_TYPE = 421, // "queue-type"
667  TOKEN_CAPACITY = 422, // "capacity"
668  TOKEN_DHCP_DDNS = 423, // "dhcp-ddns"
669  TOKEN_ENABLE_UPDATES = 424, // "enable-updates"
670  TOKEN_QUALIFYING_SUFFIX = 425, // "qualifying-suffix"
671  TOKEN_SERVER_IP = 426, // "server-ip"
672  TOKEN_SERVER_PORT = 427, // "server-port"
673  TOKEN_SENDER_IP = 428, // "sender-ip"
674  TOKEN_SENDER_PORT = 429, // "sender-port"
675  TOKEN_MAX_QUEUE_SIZE = 430, // "max-queue-size"
676  TOKEN_NCR_PROTOCOL = 431, // "ncr-protocol"
677  TOKEN_NCR_FORMAT = 432, // "ncr-format"
678  TOKEN_OVERRIDE_NO_UPDATE = 433, // "override-no-update"
679  TOKEN_OVERRIDE_CLIENT_UPDATE = 434, // "override-client-update"
680  TOKEN_REPLACE_CLIENT_NAME = 435, // "replace-client-name"
681  TOKEN_GENERATED_PREFIX = 436, // "generated-prefix"
682  TOKEN_TCP = 437, // "tcp"
683  TOKEN_JSON = 438, // "JSON"
684  TOKEN_WHEN_PRESENT = 439, // "when-present"
685  TOKEN_NEVER = 440, // "never"
686  TOKEN_ALWAYS = 441, // "always"
687  TOKEN_WHEN_NOT_PRESENT = 442, // "when-not-present"
688  TOKEN_HOSTNAME_CHAR_SET = 443, // "hostname-char-set"
689  TOKEN_HOSTNAME_CHAR_REPLACEMENT = 444, // "hostname-char-replacement"
690  TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 445, // "early-global-reservations-lookup"
691  TOKEN_IP_RESERVATIONS_UNIQUE = 446, // "ip-reservations-unique"
692  TOKEN_RESERVATIONS_LOOKUP_FIRST = 447, // "reservations-lookup-first"
693  TOKEN_LOGGERS = 448, // "loggers"
694  TOKEN_OUTPUT_OPTIONS = 449, // "output-options"
695  TOKEN_OUTPUT = 450, // "output"
696  TOKEN_DEBUGLEVEL = 451, // "debuglevel"
697  TOKEN_SEVERITY = 452, // "severity"
698  TOKEN_FLUSH = 453, // "flush"
699  TOKEN_MAXSIZE = 454, // "maxsize"
700  TOKEN_MAXVER = 455, // "maxver"
701  TOKEN_PATTERN = 456, // "pattern"
702  TOKEN_COMPATIBILITY = 457, // "compatibility"
703  TOKEN_LENIENT_OPTION_PARSING = 458, // "lenient-option-parsing"
704  TOKEN_IGNORE_DHCP_SERVER_ID = 459, // "ignore-dhcp-server-identifier"
705  TOKEN_IGNORE_RAI_LINK_SEL = 460, // "ignore-rai-link-selection"
706  TOKEN_EXCLUDE_FIRST_LAST_24 = 461, // "exclude-first-last-24"
707  TOKEN_TOPLEVEL_JSON = 462, // TOPLEVEL_JSON
708  TOKEN_TOPLEVEL_DHCP4 = 463, // TOPLEVEL_DHCP4
709  TOKEN_SUB_DHCP4 = 464, // SUB_DHCP4
710  TOKEN_SUB_INTERFACES4 = 465, // SUB_INTERFACES4
711  TOKEN_SUB_SUBNET4 = 466, // SUB_SUBNET4
712  TOKEN_SUB_POOL4 = 467, // SUB_POOL4
713  TOKEN_SUB_RESERVATION = 468, // SUB_RESERVATION
714  TOKEN_SUB_OPTION_DEFS = 469, // SUB_OPTION_DEFS
715  TOKEN_SUB_OPTION_DEF = 470, // SUB_OPTION_DEF
716  TOKEN_SUB_OPTION_DATA = 471, // SUB_OPTION_DATA
717  TOKEN_SUB_HOOKS_LIBRARY = 472, // SUB_HOOKS_LIBRARY
718  TOKEN_SUB_DHCP_DDNS = 473, // SUB_DHCP_DDNS
719  TOKEN_SUB_CONFIG_CONTROL = 474, // SUB_CONFIG_CONTROL
720  TOKEN_STRING = 475, // "constant string"
721  TOKEN_INTEGER = 476, // "integer"
722  TOKEN_FLOAT = 477, // "floating point"
723  TOKEN_BOOLEAN = 478 // "boolean"
724  };
727  };
728 
731 
734 
736  struct symbol_kind
737  {
739  {
740  YYNTOKENS = 224,
741  S_YYEMPTY = -2,
742  S_YYEOF = 0, // "end of file"
743  S_YYerror = 1, // error
744  S_YYUNDEF = 2, // "invalid token"
745  S_COMMA = 3, // ","
746  S_COLON = 4, // ":"
747  S_LSQUARE_BRACKET = 5, // "["
748  S_RSQUARE_BRACKET = 6, // "]"
749  S_LCURLY_BRACKET = 7, // "{"
750  S_RCURLY_BRACKET = 8, // "}"
751  S_NULL_TYPE = 9, // "null"
752  S_DHCP4 = 10, // "Dhcp4"
753  S_CONFIG_CONTROL = 11, // "config-control"
754  S_CONFIG_DATABASES = 12, // "config-databases"
755  S_CONFIG_FETCH_WAIT_TIME = 13, // "config-fetch-wait-time"
756  S_INTERFACES_CONFIG = 14, // "interfaces-config"
757  S_INTERFACES = 15, // "interfaces"
758  S_DHCP_SOCKET_TYPE = 16, // "dhcp-socket-type"
759  S_RAW = 17, // "raw"
760  S_UDP = 18, // "udp"
761  S_OUTBOUND_INTERFACE = 19, // "outbound-interface"
762  S_SAME_AS_INBOUND = 20, // "same-as-inbound"
763  S_USE_ROUTING = 21, // "use-routing"
764  S_RE_DETECT = 22, // "re-detect"
765  S_SERVICE_SOCKETS_REQUIRE_ALL = 23, // "service-sockets-require-all"
766  S_SERVICE_SOCKETS_RETRY_WAIT_TIME = 24, // "service-sockets-retry-wait-time"
767  S_SERVICE_SOCKETS_MAX_RETRIES = 25, // "service-sockets-max-retries"
768  S_SANITY_CHECKS = 26, // "sanity-checks"
769  S_LEASE_CHECKS = 27, // "lease-checks"
770  S_EXTENDED_INFO_CHECKS = 28, // "extended-info-checks"
771  S_ECHO_CLIENT_ID = 29, // "echo-client-id"
772  S_MATCH_CLIENT_ID = 30, // "match-client-id"
773  S_AUTHORITATIVE = 31, // "authoritative"
774  S_NEXT_SERVER = 32, // "next-server"
775  S_SERVER_HOSTNAME = 33, // "server-hostname"
776  S_BOOT_FILE_NAME = 34, // "boot-file-name"
777  S_OFFER_LFT = 35, // "offer-lifetime"
778  S_LEASE_DATABASE = 36, // "lease-database"
779  S_HOSTS_DATABASE = 37, // "hosts-database"
780  S_HOSTS_DATABASES = 38, // "hosts-databases"
781  S_TYPE = 39, // "type"
782  S_MEMFILE = 40, // "memfile"
783  S_MYSQL = 41, // "mysql"
784  S_POSTGRESQL = 42, // "postgresql"
785  S_USER = 43, // "user"
786  S_PASSWORD = 44, // "password"
787  S_HOST = 45, // "host"
788  S_PORT = 46, // "port"
789  S_PERSIST = 47, // "persist"
790  S_LFC_INTERVAL = 48, // "lfc-interval"
791  S_READONLY = 49, // "readonly"
792  S_CONNECT_TIMEOUT = 50, // "connect-timeout"
793  S_READ_TIMEOUT = 51, // "read-timeout"
794  S_WRITE_TIMEOUT = 52, // "write-timeout"
795  S_TCP_USER_TIMEOUT = 53, // "tcp-user-timeout"
796  S_MAX_RECONNECT_TRIES = 54, // "max-reconnect-tries"
797  S_RECONNECT_WAIT_TIME = 55, // "reconnect-wait-time"
798  S_ON_FAIL = 56, // "on-fail"
799  S_STOP_RETRY_EXIT = 57, // "stop-retry-exit"
800  S_SERVE_RETRY_EXIT = 58, // "serve-retry-exit"
801  S_SERVE_RETRY_CONTINUE = 59, // "serve-retry-continue"
802  S_MAX_ROW_ERRORS = 60, // "max-row-errors"
803  S_TRUST_ANCHOR = 61, // "trust-anchor"
804  S_CERT_FILE = 62, // "cert-file"
805  S_KEY_FILE = 63, // "key-file"
806  S_CIPHER_LIST = 64, // "cipher-list"
807  S_VALID_LIFETIME = 65, // "valid-lifetime"
808  S_MIN_VALID_LIFETIME = 66, // "min-valid-lifetime"
809  S_MAX_VALID_LIFETIME = 67, // "max-valid-lifetime"
810  S_RENEW_TIMER = 68, // "renew-timer"
811  S_REBIND_TIMER = 69, // "rebind-timer"
812  S_CALCULATE_TEE_TIMES = 70, // "calculate-tee-times"
813  S_T1_PERCENT = 71, // "t1-percent"
814  S_T2_PERCENT = 72, // "t2-percent"
815  S_CACHE_THRESHOLD = 73, // "cache-threshold"
816  S_CACHE_MAX_AGE = 74, // "cache-max-age"
817  S_DECLINE_PROBATION_PERIOD = 75, // "decline-probation-period"
818  S_SERVER_TAG = 76, // "server-tag"
819  S_STATISTIC_DEFAULT_SAMPLE_COUNT = 77, // "statistic-default-sample-count"
820  S_STATISTIC_DEFAULT_SAMPLE_AGE = 78, // "statistic-default-sample-age"
821  S_DDNS_SEND_UPDATES = 79, // "ddns-send-updates"
822  S_DDNS_OVERRIDE_NO_UPDATE = 80, // "ddns-override-no-update"
823  S_DDNS_OVERRIDE_CLIENT_UPDATE = 81, // "ddns-override-client-update"
824  S_DDNS_REPLACE_CLIENT_NAME = 82, // "ddns-replace-client-name"
825  S_DDNS_GENERATED_PREFIX = 83, // "ddns-generated-prefix"
826  S_DDNS_QUALIFYING_SUFFIX = 84, // "ddns-qualifying-suffix"
827  S_DDNS_UPDATE_ON_RENEW = 85, // "ddns-update-on-renew"
828  S_DDNS_USE_CONFLICT_RESOLUTION = 86, // "ddns-use-conflict-resolution"
829  S_DDNS_TTL_PERCENT = 87, // "ddns-ttl-percent"
830  S_STORE_EXTENDED_INFO = 88, // "store-extended-info"
831  S_SUBNET4 = 89, // "subnet4"
832  S_SUBNET_4O6_INTERFACE = 90, // "4o6-interface"
833  S_SUBNET_4O6_INTERFACE_ID = 91, // "4o6-interface-id"
834  S_SUBNET_4O6_SUBNET = 92, // "4o6-subnet"
835  S_OPTION_DEF = 93, // "option-def"
836  S_OPTION_DATA = 94, // "option-data"
837  S_NAME = 95, // "name"
838  S_DATA = 96, // "data"
839  S_CODE = 97, // "code"
840  S_SPACE = 98, // "space"
841  S_CSV_FORMAT = 99, // "csv-format"
842  S_ALWAYS_SEND = 100, // "always-send"
843  S_NEVER_SEND = 101, // "never-send"
844  S_RECORD_TYPES = 102, // "record-types"
845  S_ENCAPSULATE = 103, // "encapsulate"
846  S_ARRAY = 104, // "array"
847  S_PARKED_PACKET_LIMIT = 105, // "parked-packet-limit"
848  S_ALLOCATOR = 106, // "allocator"
849  S_DDNS_CONFLICT_RESOLUTION_MODE = 107, // "ddns-conflict-resolution-mode"
850  S_CHECK_WITH_DHCID = 108, // "check-with-dhcid"
851  S_NO_CHECK_WITH_DHCID = 109, // "no-check-with-dhcid"
852  S_CHECK_EXISTS_WITH_DHCID = 110, // "check-exists-with-dhcid"
853  S_NO_CHECK_WITHOUT_DHCID = 111, // "no-check-without-dhcid"
854  S_SHARED_NETWORKS = 112, // "shared-networks"
855  S_POOLS = 113, // "pools"
856  S_POOL = 114, // "pool"
857  S_USER_CONTEXT = 115, // "user-context"
858  S_COMMENT = 116, // "comment"
859  S_SUBNET = 117, // "subnet"
860  S_INTERFACE = 118, // "interface"
861  S_ID = 119, // "id"
862  S_RESERVATION_MODE = 120, // "reservation-mode"
863  S_DISABLED = 121, // "disabled"
864  S_OUT_OF_POOL = 122, // "out-of-pool"
865  S_GLOBAL = 123, // "global"
866  S_ALL = 124, // "all"
867  S_RESERVATIONS_GLOBAL = 125, // "reservations-global"
868  S_RESERVATIONS_IN_SUBNET = 126, // "reservations-in-subnet"
869  S_RESERVATIONS_OUT_OF_POOL = 127, // "reservations-out-of-pool"
870  S_HOST_RESERVATION_IDENTIFIERS = 128, // "host-reservation-identifiers"
871  S_CLIENT_CLASSES = 129, // "client-classes"
872  S_REQUIRE_CLIENT_CLASSES = 130, // "require-client-classes"
873  S_TEST = 131, // "test"
874  S_TEMPLATE_TEST = 132, // "template-test"
875  S_ONLY_IF_REQUIRED = 133, // "only-if-required"
876  S_CLIENT_CLASS = 134, // "client-class"
877  S_POOL_ID = 135, // "pool-id"
878  S_RESERVATIONS = 136, // "reservations"
879  S_DUID = 137, // "duid"
880  S_HW_ADDRESS = 138, // "hw-address"
881  S_CIRCUIT_ID = 139, // "circuit-id"
882  S_CLIENT_ID = 140, // "client-id"
883  S_HOSTNAME = 141, // "hostname"
884  S_FLEX_ID = 142, // "flex-id"
885  S_RELAY = 143, // "relay"
886  S_IP_ADDRESS = 144, // "ip-address"
887  S_IP_ADDRESSES = 145, // "ip-addresses"
888  S_HOOKS_LIBRARIES = 146, // "hooks-libraries"
889  S_LIBRARY = 147, // "library"
890  S_PARAMETERS = 148, // "parameters"
891  S_EXPIRED_LEASES_PROCESSING = 149, // "expired-leases-processing"
892  S_RECLAIM_TIMER_WAIT_TIME = 150, // "reclaim-timer-wait-time"
893  S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 151, // "flush-reclaimed-timer-wait-time"
894  S_HOLD_RECLAIMED_TIME = 152, // "hold-reclaimed-time"
895  S_MAX_RECLAIM_LEASES = 153, // "max-reclaim-leases"
896  S_MAX_RECLAIM_TIME = 154, // "max-reclaim-time"
897  S_UNWARNED_RECLAIM_CYCLES = 155, // "unwarned-reclaim-cycles"
898  S_DHCP4O6_PORT = 156, // "dhcp4o6-port"
899  S_DHCP_MULTI_THREADING = 157, // "multi-threading"
900  S_ENABLE_MULTI_THREADING = 158, // "enable-multi-threading"
901  S_THREAD_POOL_SIZE = 159, // "thread-pool-size"
902  S_PACKET_QUEUE_SIZE = 160, // "packet-queue-size"
903  S_CONTROL_SOCKET = 161, // "control-socket"
904  S_SOCKET_TYPE = 162, // "socket-type"
905  S_SOCKET_NAME = 163, // "socket-name"
906  S_DHCP_QUEUE_CONTROL = 164, // "dhcp-queue-control"
907  S_ENABLE_QUEUE = 165, // "enable-queue"
908  S_QUEUE_TYPE = 166, // "queue-type"
909  S_CAPACITY = 167, // "capacity"
910  S_DHCP_DDNS = 168, // "dhcp-ddns"
911  S_ENABLE_UPDATES = 169, // "enable-updates"
912  S_QUALIFYING_SUFFIX = 170, // "qualifying-suffix"
913  S_SERVER_IP = 171, // "server-ip"
914  S_SERVER_PORT = 172, // "server-port"
915  S_SENDER_IP = 173, // "sender-ip"
916  S_SENDER_PORT = 174, // "sender-port"
917  S_MAX_QUEUE_SIZE = 175, // "max-queue-size"
918  S_NCR_PROTOCOL = 176, // "ncr-protocol"
919  S_NCR_FORMAT = 177, // "ncr-format"
920  S_OVERRIDE_NO_UPDATE = 178, // "override-no-update"
921  S_OVERRIDE_CLIENT_UPDATE = 179, // "override-client-update"
922  S_REPLACE_CLIENT_NAME = 180, // "replace-client-name"
923  S_GENERATED_PREFIX = 181, // "generated-prefix"
924  S_TCP = 182, // "tcp"
925  S_JSON = 183, // "JSON"
926  S_WHEN_PRESENT = 184, // "when-present"
927  S_NEVER = 185, // "never"
928  S_ALWAYS = 186, // "always"
929  S_WHEN_NOT_PRESENT = 187, // "when-not-present"
930  S_HOSTNAME_CHAR_SET = 188, // "hostname-char-set"
931  S_HOSTNAME_CHAR_REPLACEMENT = 189, // "hostname-char-replacement"
932  S_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 190, // "early-global-reservations-lookup"
933  S_IP_RESERVATIONS_UNIQUE = 191, // "ip-reservations-unique"
934  S_RESERVATIONS_LOOKUP_FIRST = 192, // "reservations-lookup-first"
935  S_LOGGERS = 193, // "loggers"
936  S_OUTPUT_OPTIONS = 194, // "output-options"
937  S_OUTPUT = 195, // "output"
938  S_DEBUGLEVEL = 196, // "debuglevel"
939  S_SEVERITY = 197, // "severity"
940  S_FLUSH = 198, // "flush"
941  S_MAXSIZE = 199, // "maxsize"
942  S_MAXVER = 200, // "maxver"
943  S_PATTERN = 201, // "pattern"
944  S_COMPATIBILITY = 202, // "compatibility"
945  S_LENIENT_OPTION_PARSING = 203, // "lenient-option-parsing"
946  S_IGNORE_DHCP_SERVER_ID = 204, // "ignore-dhcp-server-identifier"
947  S_IGNORE_RAI_LINK_SEL = 205, // "ignore-rai-link-selection"
948  S_EXCLUDE_FIRST_LAST_24 = 206, // "exclude-first-last-24"
949  S_TOPLEVEL_JSON = 207, // TOPLEVEL_JSON
950  S_TOPLEVEL_DHCP4 = 208, // TOPLEVEL_DHCP4
951  S_SUB_DHCP4 = 209, // SUB_DHCP4
952  S_SUB_INTERFACES4 = 210, // SUB_INTERFACES4
953  S_SUB_SUBNET4 = 211, // SUB_SUBNET4
954  S_SUB_POOL4 = 212, // SUB_POOL4
955  S_SUB_RESERVATION = 213, // SUB_RESERVATION
956  S_SUB_OPTION_DEFS = 214, // SUB_OPTION_DEFS
957  S_SUB_OPTION_DEF = 215, // SUB_OPTION_DEF
958  S_SUB_OPTION_DATA = 216, // SUB_OPTION_DATA
959  S_SUB_HOOKS_LIBRARY = 217, // SUB_HOOKS_LIBRARY
960  S_SUB_DHCP_DDNS = 218, // SUB_DHCP_DDNS
961  S_SUB_CONFIG_CONTROL = 219, // SUB_CONFIG_CONTROL
962  S_STRING = 220, // "constant string"
963  S_INTEGER = 221, // "integer"
964  S_FLOAT = 222, // "floating point"
965  S_BOOLEAN = 223, // "boolean"
966  S_YYACCEPT = 224, // $accept
967  S_start = 225, // start
968  S_226_1 = 226, // $@1
969  S_227_2 = 227, // $@2
970  S_228_3 = 228, // $@3
971  S_229_4 = 229, // $@4
972  S_230_5 = 230, // $@5
973  S_231_6 = 231, // $@6
974  S_232_7 = 232, // $@7
975  S_233_8 = 233, // $@8
976  S_234_9 = 234, // $@9
977  S_235_10 = 235, // $@10
978  S_236_11 = 236, // $@11
979  S_237_12 = 237, // $@12
980  S_238_13 = 238, // $@13
981  S_value = 239, // value
982  S_sub_json = 240, // sub_json
983  S_map2 = 241, // map2
984  S_242_14 = 242, // $@14
985  S_map_value = 243, // map_value
986  S_map_content = 244, // map_content
987  S_not_empty_map = 245, // not_empty_map
988  S_list_generic = 246, // list_generic
989  S_247_15 = 247, // $@15
990  S_list_content = 248, // list_content
991  S_not_empty_list = 249, // not_empty_list
992  S_list_strings = 250, // list_strings
993  S_251_16 = 251, // $@16
994  S_list_strings_content = 252, // list_strings_content
995  S_not_empty_list_strings = 253, // not_empty_list_strings
996  S_unknown_map_entry = 254, // unknown_map_entry
997  S_syntax_map = 255, // syntax_map
998  S_256_17 = 256, // $@17
999  S_global_object = 257, // global_object
1000  S_258_18 = 258, // $@18
1001  S_global_object_comma = 259, // global_object_comma
1002  S_sub_dhcp4 = 260, // sub_dhcp4
1003  S_261_19 = 261, // $@19
1004  S_global_params = 262, // global_params
1005  S_global_param = 263, // global_param
1006  S_valid_lifetime = 264, // valid_lifetime
1007  S_min_valid_lifetime = 265, // min_valid_lifetime
1008  S_max_valid_lifetime = 266, // max_valid_lifetime
1009  S_renew_timer = 267, // renew_timer
1010  S_rebind_timer = 268, // rebind_timer
1011  S_calculate_tee_times = 269, // calculate_tee_times
1012  S_t1_percent = 270, // t1_percent
1013  S_t2_percent = 271, // t2_percent
1014  S_cache_threshold = 272, // cache_threshold
1015  S_cache_max_age = 273, // cache_max_age
1016  S_decline_probation_period = 274, // decline_probation_period
1017  S_server_tag = 275, // server_tag
1018  S_276_20 = 276, // $@20
1019  S_parked_packet_limit = 277, // parked_packet_limit
1020  S_allocator = 278, // allocator
1021  S_279_21 = 279, // $@21
1022  S_echo_client_id = 280, // echo_client_id
1023  S_match_client_id = 281, // match_client_id
1024  S_authoritative = 282, // authoritative
1025  S_ddns_send_updates = 283, // ddns_send_updates
1026  S_ddns_override_no_update = 284, // ddns_override_no_update
1027  S_ddns_override_client_update = 285, // ddns_override_client_update
1028  S_ddns_replace_client_name = 286, // ddns_replace_client_name
1029  S_287_22 = 287, // $@22
1030  S_ddns_replace_client_name_value = 288, // ddns_replace_client_name_value
1031  S_ddns_generated_prefix = 289, // ddns_generated_prefix
1032  S_290_23 = 290, // $@23
1033  S_ddns_qualifying_suffix = 291, // ddns_qualifying_suffix
1034  S_292_24 = 292, // $@24
1035  S_ddns_update_on_renew = 293, // ddns_update_on_renew
1036  S_ddns_use_conflict_resolution = 294, // ddns_use_conflict_resolution
1037  S_ddns_conflict_resolution_mode = 295, // ddns_conflict_resolution_mode
1038  S_296_25 = 296, // $@25
1039  S_ddns_conflict_resolution_mode_value = 297, // ddns_conflict_resolution_mode_value
1040  S_ddns_ttl_percent = 298, // ddns_ttl_percent
1041  S_hostname_char_set = 299, // hostname_char_set
1042  S_300_26 = 300, // $@26
1043  S_hostname_char_replacement = 301, // hostname_char_replacement
1044  S_302_27 = 302, // $@27
1045  S_store_extended_info = 303, // store_extended_info
1046  S_statistic_default_sample_count = 304, // statistic_default_sample_count
1047  S_statistic_default_sample_age = 305, // statistic_default_sample_age
1048  S_early_global_reservations_lookup = 306, // early_global_reservations_lookup
1049  S_ip_reservations_unique = 307, // ip_reservations_unique
1050  S_reservations_lookup_first = 308, // reservations_lookup_first
1051  S_offer_lifetime = 309, // offer_lifetime
1052  S_interfaces_config = 310, // interfaces_config
1053  S_311_28 = 311, // $@28
1054  S_interfaces_config_params = 312, // interfaces_config_params
1055  S_interfaces_config_param = 313, // interfaces_config_param
1056  S_sub_interfaces4 = 314, // sub_interfaces4
1057  S_315_29 = 315, // $@29
1058  S_interfaces_list = 316, // interfaces_list
1059  S_317_30 = 317, // $@30
1060  S_dhcp_socket_type = 318, // dhcp_socket_type
1061  S_319_31 = 319, // $@31
1062  S_socket_type = 320, // socket_type
1063  S_outbound_interface = 321, // outbound_interface
1064  S_322_32 = 322, // $@32
1065  S_outbound_interface_value = 323, // outbound_interface_value
1066  S_re_detect = 324, // re_detect
1067  S_service_sockets_require_all = 325, // service_sockets_require_all
1068  S_service_sockets_retry_wait_time = 326, // service_sockets_retry_wait_time
1069  S_service_sockets_max_retries = 327, // service_sockets_max_retries
1070  S_lease_database = 328, // lease_database
1071  S_329_33 = 329, // $@33
1072  S_sanity_checks = 330, // sanity_checks
1073  S_331_34 = 331, // $@34
1074  S_sanity_checks_params = 332, // sanity_checks_params
1075  S_sanity_checks_param = 333, // sanity_checks_param
1076  S_lease_checks = 334, // lease_checks
1077  S_335_35 = 335, // $@35
1078  S_extended_info_checks = 336, // extended_info_checks
1079  S_337_36 = 337, // $@36
1080  S_hosts_database = 338, // hosts_database
1081  S_339_37 = 339, // $@37
1082  S_hosts_databases = 340, // hosts_databases
1083  S_341_38 = 341, // $@38
1084  S_database_list = 342, // database_list
1085  S_not_empty_database_list = 343, // not_empty_database_list
1086  S_database = 344, // database
1087  S_345_39 = 345, // $@39
1088  S_database_map_params = 346, // database_map_params
1089  S_database_map_param = 347, // database_map_param
1090  S_database_type = 348, // database_type
1091  S_349_40 = 349, // $@40
1092  S_db_type = 350, // db_type
1093  S_user = 351, // user
1094  S_352_41 = 352, // $@41
1095  S_password = 353, // password
1096  S_354_42 = 354, // $@42
1097  S_host = 355, // host
1098  S_356_43 = 356, // $@43
1099  S_port = 357, // port
1100  S_name = 358, // name
1101  S_359_44 = 359, // $@44
1102  S_persist = 360, // persist
1103  S_lfc_interval = 361, // lfc_interval
1104  S_readonly = 362, // readonly
1105  S_connect_timeout = 363, // connect_timeout
1106  S_read_timeout = 364, // read_timeout
1107  S_write_timeout = 365, // write_timeout
1108  S_tcp_user_timeout = 366, // tcp_user_timeout
1109  S_max_reconnect_tries = 367, // max_reconnect_tries
1110  S_reconnect_wait_time = 368, // reconnect_wait_time
1111  S_on_fail = 369, // on_fail
1112  S_370_45 = 370, // $@45
1113  S_on_fail_mode = 371, // on_fail_mode
1114  S_max_row_errors = 372, // max_row_errors
1115  S_trust_anchor = 373, // trust_anchor
1116  S_374_46 = 374, // $@46
1117  S_cert_file = 375, // cert_file
1118  S_376_47 = 376, // $@47
1119  S_key_file = 377, // key_file
1120  S_378_48 = 378, // $@48
1121  S_cipher_list = 379, // cipher_list
1122  S_380_49 = 380, // $@49
1123  S_host_reservation_identifiers = 381, // host_reservation_identifiers
1124  S_382_50 = 382, // $@50
1125  S_host_reservation_identifiers_list = 383, // host_reservation_identifiers_list
1126  S_host_reservation_identifier = 384, // host_reservation_identifier
1127  S_duid_id = 385, // duid_id
1128  S_hw_address_id = 386, // hw_address_id
1129  S_circuit_id = 387, // circuit_id
1130  S_client_id = 388, // client_id
1131  S_flex_id = 389, // flex_id
1132  S_dhcp_multi_threading = 390, // dhcp_multi_threading
1133  S_391_51 = 391, // $@51
1134  S_multi_threading_params = 392, // multi_threading_params
1135  S_multi_threading_param = 393, // multi_threading_param
1136  S_enable_multi_threading = 394, // enable_multi_threading
1137  S_thread_pool_size = 395, // thread_pool_size
1138  S_packet_queue_size = 396, // packet_queue_size
1139  S_hooks_libraries = 397, // hooks_libraries
1140  S_398_52 = 398, // $@52
1141  S_hooks_libraries_list = 399, // hooks_libraries_list
1142  S_not_empty_hooks_libraries_list = 400, // not_empty_hooks_libraries_list
1143  S_hooks_library = 401, // hooks_library
1144  S_402_53 = 402, // $@53
1145  S_sub_hooks_library = 403, // sub_hooks_library
1146  S_404_54 = 404, // $@54
1147  S_hooks_params = 405, // hooks_params
1148  S_hooks_param = 406, // hooks_param
1149  S_library = 407, // library
1150  S_408_55 = 408, // $@55
1151  S_parameters = 409, // parameters
1152  S_410_56 = 410, // $@56
1153  S_expired_leases_processing = 411, // expired_leases_processing
1154  S_412_57 = 412, // $@57
1155  S_expired_leases_params = 413, // expired_leases_params
1156  S_expired_leases_param = 414, // expired_leases_param
1157  S_reclaim_timer_wait_time = 415, // reclaim_timer_wait_time
1158  S_flush_reclaimed_timer_wait_time = 416, // flush_reclaimed_timer_wait_time
1159  S_hold_reclaimed_time = 417, // hold_reclaimed_time
1160  S_max_reclaim_leases = 418, // max_reclaim_leases
1161  S_max_reclaim_time = 419, // max_reclaim_time
1162  S_unwarned_reclaim_cycles = 420, // unwarned_reclaim_cycles
1163  S_subnet4_list = 421, // subnet4_list
1164  S_422_58 = 422, // $@58
1165  S_subnet4_list_content = 423, // subnet4_list_content
1166  S_not_empty_subnet4_list = 424, // not_empty_subnet4_list
1167  S_subnet4 = 425, // subnet4
1168  S_426_59 = 426, // $@59
1169  S_sub_subnet4 = 427, // sub_subnet4
1170  S_428_60 = 428, // $@60
1171  S_subnet4_params = 429, // subnet4_params
1172  S_subnet4_param = 430, // subnet4_param
1173  S_subnet = 431, // subnet
1174  S_432_61 = 432, // $@61
1175  S_subnet_4o6_interface = 433, // subnet_4o6_interface
1176  S_434_62 = 434, // $@62
1177  S_subnet_4o6_interface_id = 435, // subnet_4o6_interface_id
1178  S_436_63 = 436, // $@63
1179  S_subnet_4o6_subnet = 437, // subnet_4o6_subnet
1180  S_438_64 = 438, // $@64
1181  S_interface = 439, // interface
1182  S_440_65 = 440, // $@65
1183  S_client_class = 441, // client_class
1184  S_442_66 = 442, // $@66
1185  S_require_client_classes = 443, // require_client_classes
1186  S_444_67 = 444, // $@67
1187  S_reservations_global = 445, // reservations_global
1188  S_reservations_in_subnet = 446, // reservations_in_subnet
1189  S_reservations_out_of_pool = 447, // reservations_out_of_pool
1190  S_reservation_mode = 448, // reservation_mode
1191  S_449_68 = 449, // $@68
1192  S_hr_mode = 450, // hr_mode
1193  S_id = 451, // id
1194  S_shared_networks = 452, // shared_networks
1195  S_453_69 = 453, // $@69
1196  S_shared_networks_content = 454, // shared_networks_content
1197  S_shared_networks_list = 455, // shared_networks_list
1198  S_shared_network = 456, // shared_network
1199  S_457_70 = 457, // $@70
1200  S_shared_network_params = 458, // shared_network_params
1201  S_shared_network_param = 459, // shared_network_param
1202  S_option_def_list = 460, // option_def_list
1203  S_461_71 = 461, // $@71
1204  S_sub_option_def_list = 462, // sub_option_def_list
1205  S_463_72 = 463, // $@72
1206  S_option_def_list_content = 464, // option_def_list_content
1207  S_not_empty_option_def_list = 465, // not_empty_option_def_list
1208  S_option_def_entry = 466, // option_def_entry
1209  S_467_73 = 467, // $@73
1210  S_sub_option_def = 468, // sub_option_def
1211  S_469_74 = 469, // $@74
1212  S_option_def_params = 470, // option_def_params
1213  S_not_empty_option_def_params = 471, // not_empty_option_def_params
1214  S_option_def_param = 472, // option_def_param
1215  S_option_def_name = 473, // option_def_name
1216  S_code = 474, // code
1217  S_option_def_code = 475, // option_def_code
1218  S_option_def_type = 476, // option_def_type
1219  S_477_75 = 477, // $@75
1220  S_option_def_record_types = 478, // option_def_record_types
1221  S_479_76 = 479, // $@76
1222  S_space = 480, // space
1223  S_481_77 = 481, // $@77
1224  S_option_def_space = 482, // option_def_space
1225  S_option_def_encapsulate = 483, // option_def_encapsulate
1226  S_484_78 = 484, // $@78
1227  S_option_def_array = 485, // option_def_array
1228  S_option_data_list = 486, // option_data_list
1229  S_487_79 = 487, // $@79
1230  S_option_data_list_content = 488, // option_data_list_content
1231  S_not_empty_option_data_list = 489, // not_empty_option_data_list
1232  S_option_data_entry = 490, // option_data_entry
1233  S_491_80 = 491, // $@80
1234  S_sub_option_data = 492, // sub_option_data
1235  S_493_81 = 493, // $@81
1236  S_option_data_params = 494, // option_data_params
1237  S_not_empty_option_data_params = 495, // not_empty_option_data_params
1238  S_option_data_param = 496, // option_data_param
1239  S_option_data_name = 497, // option_data_name
1240  S_option_data_data = 498, // option_data_data
1241  S_499_82 = 499, // $@82
1242  S_option_data_code = 500, // option_data_code
1243  S_option_data_space = 501, // option_data_space
1244  S_option_data_csv_format = 502, // option_data_csv_format
1245  S_option_data_always_send = 503, // option_data_always_send
1246  S_option_data_never_send = 504, // option_data_never_send
1247  S_pools_list = 505, // pools_list
1248  S_506_83 = 506, // $@83
1249  S_pools_list_content = 507, // pools_list_content
1250  S_not_empty_pools_list = 508, // not_empty_pools_list
1251  S_pool_list_entry = 509, // pool_list_entry
1252  S_510_84 = 510, // $@84
1253  S_sub_pool4 = 511, // sub_pool4
1254  S_512_85 = 512, // $@85
1255  S_pool_params = 513, // pool_params
1256  S_pool_param = 514, // pool_param
1257  S_pool_entry = 515, // pool_entry
1258  S_516_86 = 516, // $@86
1259  S_pool_id = 517, // pool_id
1260  S_user_context = 518, // user_context
1261  S_519_87 = 519, // $@87
1262  S_comment = 520, // comment
1263  S_521_88 = 521, // $@88
1264  S_reservations = 522, // reservations
1265  S_523_89 = 523, // $@89
1266  S_reservations_list = 524, // reservations_list
1267  S_not_empty_reservations_list = 525, // not_empty_reservations_list
1268  S_reservation = 526, // reservation
1269  S_527_90 = 527, // $@90
1270  S_sub_reservation = 528, // sub_reservation
1271  S_529_91 = 529, // $@91
1272  S_reservation_params = 530, // reservation_params
1273  S_not_empty_reservation_params = 531, // not_empty_reservation_params
1274  S_reservation_param = 532, // reservation_param
1275  S_next_server = 533, // next_server
1276  S_534_92 = 534, // $@92
1277  S_server_hostname = 535, // server_hostname
1278  S_536_93 = 536, // $@93
1279  S_boot_file_name = 537, // boot_file_name
1280  S_538_94 = 538, // $@94
1281  S_ip_address = 539, // ip_address
1282  S_540_95 = 540, // $@95
1283  S_ip_addresses = 541, // ip_addresses
1284  S_542_96 = 542, // $@96
1285  S_duid = 543, // duid
1286  S_544_97 = 544, // $@97
1287  S_hw_address = 545, // hw_address
1288  S_546_98 = 546, // $@98
1289  S_client_id_value = 547, // client_id_value
1290  S_548_99 = 548, // $@99
1291  S_circuit_id_value = 549, // circuit_id_value
1292  S_550_100 = 550, // $@100
1293  S_flex_id_value = 551, // flex_id_value
1294  S_552_101 = 552, // $@101
1295  S_hostname = 553, // hostname
1296  S_554_102 = 554, // $@102
1297  S_reservation_client_classes = 555, // reservation_client_classes
1298  S_556_103 = 556, // $@103
1299  S_relay = 557, // relay
1300  S_558_104 = 558, // $@104
1301  S_relay_map = 559, // relay_map
1302  S_client_classes = 560, // client_classes
1303  S_561_105 = 561, // $@105
1304  S_client_classes_list = 562, // client_classes_list
1305  S_client_class_entry = 563, // client_class_entry
1306  S_564_106 = 564, // $@106
1307  S_client_class_params = 565, // client_class_params
1308  S_not_empty_client_class_params = 566, // not_empty_client_class_params
1309  S_client_class_param = 567, // client_class_param
1310  S_client_class_name = 568, // client_class_name
1311  S_client_class_test = 569, // client_class_test
1312  S_570_107 = 570, // $@107
1313  S_client_class_template_test = 571, // client_class_template_test
1314  S_572_108 = 572, // $@108
1315  S_only_if_required = 573, // only_if_required
1316  S_dhcp4o6_port = 574, // dhcp4o6_port
1317  S_control_socket = 575, // control_socket
1318  S_576_109 = 576, // $@109
1319  S_control_socket_params = 577, // control_socket_params
1320  S_control_socket_param = 578, // control_socket_param
1321  S_control_socket_type = 579, // control_socket_type
1322  S_580_110 = 580, // $@110
1323  S_control_socket_name = 581, // control_socket_name
1324  S_582_111 = 582, // $@111
1325  S_dhcp_queue_control = 583, // dhcp_queue_control
1326  S_584_112 = 584, // $@112
1327  S_queue_control_params = 585, // queue_control_params
1328  S_queue_control_param = 586, // queue_control_param
1329  S_enable_queue = 587, // enable_queue
1330  S_queue_type = 588, // queue_type
1331  S_589_113 = 589, // $@113
1332  S_capacity = 590, // capacity
1333  S_arbitrary_map_entry = 591, // arbitrary_map_entry
1334  S_592_114 = 592, // $@114
1335  S_dhcp_ddns = 593, // dhcp_ddns
1336  S_594_115 = 594, // $@115
1337  S_sub_dhcp_ddns = 595, // sub_dhcp_ddns
1338  S_596_116 = 596, // $@116
1339  S_dhcp_ddns_params = 597, // dhcp_ddns_params
1340  S_dhcp_ddns_param = 598, // dhcp_ddns_param
1341  S_enable_updates = 599, // enable_updates
1342  S_server_ip = 600, // server_ip
1343  S_601_117 = 601, // $@117
1344  S_server_port = 602, // server_port
1345  S_sender_ip = 603, // sender_ip
1346  S_604_118 = 604, // $@118
1347  S_sender_port = 605, // sender_port
1348  S_max_queue_size = 606, // max_queue_size
1349  S_ncr_protocol = 607, // ncr_protocol
1350  S_608_119 = 608, // $@119
1351  S_ncr_protocol_value = 609, // ncr_protocol_value
1352  S_ncr_format = 610, // ncr_format
1353  S_611_120 = 611, // $@120
1354  S_dep_qualifying_suffix = 612, // dep_qualifying_suffix
1355  S_613_121 = 613, // $@121
1356  S_dep_override_no_update = 614, // dep_override_no_update
1357  S_dep_override_client_update = 615, // dep_override_client_update
1358  S_dep_replace_client_name = 616, // dep_replace_client_name
1359  S_617_122 = 617, // $@122
1360  S_dep_generated_prefix = 618, // dep_generated_prefix
1361  S_619_123 = 619, // $@123
1362  S_dep_hostname_char_set = 620, // dep_hostname_char_set
1363  S_621_124 = 621, // $@124
1364  S_dep_hostname_char_replacement = 622, // dep_hostname_char_replacement
1365  S_623_125 = 623, // $@125
1366  S_config_control = 624, // config_control
1367  S_625_126 = 625, // $@126
1368  S_sub_config_control = 626, // sub_config_control
1369  S_627_127 = 627, // $@127
1370  S_config_control_params = 628, // config_control_params
1371  S_config_control_param = 629, // config_control_param
1372  S_config_databases = 630, // config_databases
1373  S_631_128 = 631, // $@128
1374  S_config_fetch_wait_time = 632, // config_fetch_wait_time
1375  S_loggers = 633, // loggers
1376  S_634_129 = 634, // $@129
1377  S_loggers_entries = 635, // loggers_entries
1378  S_logger_entry = 636, // logger_entry
1379  S_637_130 = 637, // $@130
1380  S_logger_params = 638, // logger_params
1381  S_logger_param = 639, // logger_param
1382  S_debuglevel = 640, // debuglevel
1383  S_severity = 641, // severity
1384  S_642_131 = 642, // $@131
1385  S_output_options_list = 643, // output_options_list
1386  S_644_132 = 644, // $@132
1387  S_output_options_list_content = 645, // output_options_list_content
1388  S_output_entry = 646, // output_entry
1389  S_647_133 = 647, // $@133
1390  S_output_params_list = 648, // output_params_list
1391  S_output_params = 649, // output_params
1392  S_output = 650, // output
1393  S_651_134 = 651, // $@134
1394  S_flush = 652, // flush
1395  S_maxsize = 653, // maxsize
1396  S_maxver = 654, // maxver
1397  S_pattern = 655, // pattern
1398  S_656_135 = 656, // $@135
1399  S_compatibility = 657, // compatibility
1400  S_658_136 = 658, // $@136
1401  S_compatibility_params = 659, // compatibility_params
1402  S_compatibility_param = 660, // compatibility_param
1403  S_lenient_option_parsing = 661, // lenient_option_parsing
1404  S_ignore_dhcp_server_identifier = 662, // ignore_dhcp_server_identifier
1405  S_ignore_rai_link_selection = 663, // ignore_rai_link_selection
1406  S_exclude_first_last_24 = 664 // exclude_first_last_24
1407  };
1408  };
1409 
1412 
1414  static const symbol_kind_type YYNTOKENS = symbol_kind::YYNTOKENS;
1415 
1422  template <typename Base>
1423  struct basic_symbol : Base
1424  {
1426  typedef Base super_type;
1427 
1430  : value ()
1431  , location ()
1432  {}
1433 
1434 #if 201103L <= YY_CPLUSPLUS
1436  basic_symbol (basic_symbol&& that)
1437  : Base (std::move (that))
1438  , value ()
1439  , location (std::move (that.location))
1440  {
1441  switch (this->kind ())
1442  {
1443  case symbol_kind::S_value: // value
1444  case symbol_kind::S_map_value: // map_value
1445  case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value
1446  case symbol_kind::S_ddns_conflict_resolution_mode_value: // ddns_conflict_resolution_mode_value
1447  case symbol_kind::S_socket_type: // socket_type
1448  case symbol_kind::S_outbound_interface_value: // outbound_interface_value
1449  case symbol_kind::S_db_type: // db_type
1450  case symbol_kind::S_on_fail_mode: // on_fail_mode
1451  case symbol_kind::S_hr_mode: // hr_mode
1452  case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value
1453  value.move< ElementPtr > (std::move (that.value));
1454  break;
1455 
1456  case symbol_kind::S_BOOLEAN: // "boolean"
1457  value.move< bool > (std::move (that.value));
1458  break;
1459 
1460  case symbol_kind::S_FLOAT: // "floating point"
1461  value.move< double > (std::move (that.value));
1462  break;
1463 
1464  case symbol_kind::S_INTEGER: // "integer"
1465  value.move< int64_t > (std::move (that.value));
1466  break;
1467 
1468  case symbol_kind::S_STRING: // "constant string"
1469  value.move< std::string > (std::move (that.value));
1470  break;
1471 
1472  default:
1473  break;
1474  }
1475 
1476  }
1477 #endif
1478 
1480  basic_symbol (const basic_symbol& that);
1481 
1483 #if 201103L <= YY_CPLUSPLUS
1484  basic_symbol (typename Base::kind_type t, location_type&& l)
1485  : Base (t)
1486  , location (std::move (l))
1487  {}
1488 #else
1489  basic_symbol (typename Base::kind_type t, const location_type& l)
1490  : Base (t)
1491  , location (l)
1492  {}
1493 #endif
1494 
1495 #if 201103L <= YY_CPLUSPLUS
1496  basic_symbol (typename Base::kind_type t, ElementPtr&& v, location_type&& l)
1497  : Base (t)
1498  , value (std::move (v))
1499  , location (std::move (l))
1500  {}
1501 #else
1502  basic_symbol (typename Base::kind_type t, const ElementPtr& v, const location_type& l)
1503  : Base (t)
1504  , value (v)
1505  , location (l)
1506  {}
1507 #endif
1508 
1509 #if 201103L <= YY_CPLUSPLUS
1510  basic_symbol (typename Base::kind_type t, bool&& v, location_type&& l)
1511  : Base (t)
1512  , value (std::move (v))
1513  , location (std::move (l))
1514  {}
1515 #else
1516  basic_symbol (typename Base::kind_type t, const bool& v, const location_type& l)
1517  : Base (t)
1518  , value (v)
1519  , location (l)
1520  {}
1521 #endif
1522 
1523 #if 201103L <= YY_CPLUSPLUS
1524  basic_symbol (typename Base::kind_type t, double&& v, location_type&& l)
1525  : Base (t)
1526  , value (std::move (v))
1527  , location (std::move (l))
1528  {}
1529 #else
1530  basic_symbol (typename Base::kind_type t, const double& v, const location_type& l)
1531  : Base (t)
1532  , value (v)
1533  , location (l)
1534  {}
1535 #endif
1536 
1537 #if 201103L <= YY_CPLUSPLUS
1538  basic_symbol (typename Base::kind_type t, int64_t&& v, location_type&& l)
1539  : Base (t)
1540  , value (std::move (v))
1541  , location (std::move (l))
1542  {}
1543 #else
1544  basic_symbol (typename Base::kind_type t, const int64_t& v, const location_type& l)
1545  : Base (t)
1546  , value (v)
1547  , location (l)
1548  {}
1549 #endif
1550 
1551 #if 201103L <= YY_CPLUSPLUS
1552  basic_symbol (typename Base::kind_type t, std::string&& v, location_type&& l)
1553  : Base (t)
1554  , value (std::move (v))
1555  , location (std::move (l))
1556  {}
1557 #else
1558  basic_symbol (typename Base::kind_type t, const std::string& v, const location_type& l)
1559  : Base (t)
1560  , value (v)
1561  , location (l)
1562  {}
1563 #endif
1564 
1567  {
1568  clear ();
1569  }
1570 
1571 
1572 
1575  {
1576  // User destructor.
1577  symbol_kind_type yykind = this->kind ();
1578  basic_symbol<Base>& yysym = *this;
1579  (void) yysym;
1580  switch (yykind)
1581  {
1582  default:
1583  break;
1584  }
1585 
1586  // Value type destructor.
1587 switch (yykind)
1588  {
1589  case symbol_kind::S_value: // value
1590  case symbol_kind::S_map_value: // map_value
1591  case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value
1592  case symbol_kind::S_ddns_conflict_resolution_mode_value: // ddns_conflict_resolution_mode_value
1593  case symbol_kind::S_socket_type: // socket_type
1594  case symbol_kind::S_outbound_interface_value: // outbound_interface_value
1595  case symbol_kind::S_db_type: // db_type
1596  case symbol_kind::S_on_fail_mode: // on_fail_mode
1597  case symbol_kind::S_hr_mode: // hr_mode
1598  case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value
1599  value.template destroy< ElementPtr > ();
1600  break;
1601 
1602  case symbol_kind::S_BOOLEAN: // "boolean"
1603  value.template destroy< bool > ();
1604  break;
1605 
1606  case symbol_kind::S_FLOAT: // "floating point"
1607  value.template destroy< double > ();
1608  break;
1609 
1610  case symbol_kind::S_INTEGER: // "integer"
1611  value.template destroy< int64_t > ();
1612  break;
1613 
1614  case symbol_kind::S_STRING: // "constant string"
1615  value.template destroy< std::string > ();
1616  break;
1617 
1618  default:
1619  break;
1620  }
1621 
1622  Base::clear ();
1623  }
1624 
1626  std::string name () const YY_NOEXCEPT
1627  {
1628  return Dhcp4Parser::symbol_name (this->kind ());
1629  }
1630 
1632  symbol_kind_type type_get () const YY_NOEXCEPT;
1633 
1635  bool empty () const YY_NOEXCEPT;
1636 
1638  void move (basic_symbol& s);
1639 
1641  value_type value;
1642 
1644  location_type location;
1645 
1646  private:
1647 #if YY_CPLUSPLUS < 201103L
1649  basic_symbol& operator= (const basic_symbol& that);
1650 #endif
1651  };
1652 
1654  struct by_kind
1655  {
1658 
1660  by_kind () YY_NOEXCEPT;
1661 
1662 #if 201103L <= YY_CPLUSPLUS
1664  by_kind (by_kind&& that) YY_NOEXCEPT;
1665 #endif
1666 
1668  by_kind (const by_kind& that) YY_NOEXCEPT;
1669 
1672 
1673 
1674 
1676  void clear () YY_NOEXCEPT;
1677 
1679  void move (by_kind& that);
1680 
1683  symbol_kind_type kind () const YY_NOEXCEPT;
1684 
1686  symbol_kind_type type_get () const YY_NOEXCEPT;
1687 
1691  };
1692 
1694  typedef by_kind by_type;
1695 
1698  {
1701 
1704 
1706 #if 201103L <= YY_CPLUSPLUS
1707  symbol_type (int tok, location_type l)
1708  : super_type (token_kind_type (tok), std::move (l))
1709 #else
1710  symbol_type (int tok, const location_type& l)
1711  : super_type (token_kind_type (tok), l)
1712 #endif
1713  {
1714 #if !defined _MSC_VER || defined __clang__
1715  PARSER4__ASSERT (tok == token::TOKEN_END
1716  || (token::TOKEN_PARSER4_error <= tok && tok <= token::TOKEN_SUB_CONFIG_CONTROL));
1717 #endif
1718  }
1719 #if 201103L <= YY_CPLUSPLUS
1720  symbol_type (int tok, bool v, location_type l)
1721  : super_type (token_kind_type (tok), std::move (v), std::move (l))
1722 #else
1723  symbol_type (int tok, const bool& v, const location_type& l)
1724  : super_type (token_kind_type (tok), v, l)
1725 #endif
1726  {
1727 #if !defined _MSC_VER || defined __clang__
1728  PARSER4__ASSERT (tok == token::TOKEN_BOOLEAN);
1729 #endif
1730  }
1731 #if 201103L <= YY_CPLUSPLUS
1732  symbol_type (int tok, double v, location_type l)
1733  : super_type (token_kind_type (tok), std::move (v), std::move (l))
1734 #else
1735  symbol_type (int tok, const double& v, const location_type& l)
1736  : super_type (token_kind_type (tok), v, l)
1737 #endif
1738  {
1739 #if !defined _MSC_VER || defined __clang__
1740  PARSER4__ASSERT (tok == token::TOKEN_FLOAT);
1741 #endif
1742  }
1743 #if 201103L <= YY_CPLUSPLUS
1744  symbol_type (int tok, int64_t v, location_type l)
1745  : super_type (token_kind_type (tok), std::move (v), std::move (l))
1746 #else
1747  symbol_type (int tok, const int64_t& v, const location_type& l)
1748  : super_type (token_kind_type (tok), v, l)
1749 #endif
1750  {
1751 #if !defined _MSC_VER || defined __clang__
1752  PARSER4__ASSERT (tok == token::TOKEN_INTEGER);
1753 #endif
1754  }
1755 #if 201103L <= YY_CPLUSPLUS
1756  symbol_type (int tok, std::string v, location_type l)
1757  : super_type (token_kind_type (tok), std::move (v), std::move (l))
1758 #else
1759  symbol_type (int tok, const std::string& v, const location_type& l)
1760  : super_type (token_kind_type (tok), v, l)
1761 #endif
1762  {
1763 #if !defined _MSC_VER || defined __clang__
1764  PARSER4__ASSERT (tok == token::TOKEN_STRING);
1765 #endif
1766  }
1767  };
1768 
1771  virtual ~Dhcp4Parser ();
1772 
1773 #if 201103L <= YY_CPLUSPLUS
1775  Dhcp4Parser (const Dhcp4Parser&) = delete;
1777  Dhcp4Parser& operator= (const Dhcp4Parser&) = delete;
1778 #endif
1779 
1782  int operator() ();
1783 
1786  virtual int parse ();
1787 
1788 #if PARSER4_DEBUG
1790  std::ostream& debug_stream () const YY_ATTRIBUTE_PURE;
1792  void set_debug_stream (std::ostream &);
1793 
1795  typedef int debug_level_type;
1797  debug_level_type debug_level () const YY_ATTRIBUTE_PURE;
1799  void set_debug_level (debug_level_type l);
1800 #endif
1801 
1805  virtual void error (const location_type& loc, const std::string& msg);
1806 
1808  void error (const syntax_error& err);
1809 
1812  static std::string symbol_name (symbol_kind_type yysymbol);
1813 
1814  // Implementation of make_symbol for each token kind.
1815 #if 201103L <= YY_CPLUSPLUS
1816  static
1817  symbol_type
1818  make_END (location_type l)
1819  {
1820  return symbol_type (token::TOKEN_END, std::move (l));
1821  }
1822 #else
1823  static
1824  symbol_type
1826  {
1827  return symbol_type (token::TOKEN_END, l);
1828  }
1829 #endif
1830 #if 201103L <= YY_CPLUSPLUS
1831  static
1832  symbol_type
1833  make_PARSER4_error (location_type l)
1834  {
1835  return symbol_type (token::TOKEN_PARSER4_error, std::move (l));
1836  }
1837 #else
1838  static
1839  symbol_type
1841  {
1842  return symbol_type (token::TOKEN_PARSER4_error, l);
1843  }
1844 #endif
1845 #if 201103L <= YY_CPLUSPLUS
1846  static
1847  symbol_type
1848  make_PARSER4_UNDEF (location_type l)
1849  {
1850  return symbol_type (token::TOKEN_PARSER4_UNDEF, std::move (l));
1851  }
1852 #else
1853  static
1854  symbol_type
1856  {
1857  return symbol_type (token::TOKEN_PARSER4_UNDEF, l);
1858  }
1859 #endif
1860 #if 201103L <= YY_CPLUSPLUS
1861  static
1862  symbol_type
1863  make_COMMA (location_type l)
1864  {
1865  return symbol_type (token::TOKEN_COMMA, std::move (l));
1866  }
1867 #else
1868  static
1869  symbol_type
1871  {
1872  return symbol_type (token::TOKEN_COMMA, l);
1873  }
1874 #endif
1875 #if 201103L <= YY_CPLUSPLUS
1876  static
1877  symbol_type
1878  make_COLON (location_type l)
1879  {
1880  return symbol_type (token::TOKEN_COLON, std::move (l));
1881  }
1882 #else
1883  static
1884  symbol_type
1886  {
1887  return symbol_type (token::TOKEN_COLON, l);
1888  }
1889 #endif
1890 #if 201103L <= YY_CPLUSPLUS
1891  static
1892  symbol_type
1893  make_LSQUARE_BRACKET (location_type l)
1894  {
1895  return symbol_type (token::TOKEN_LSQUARE_BRACKET, std::move (l));
1896  }
1897 #else
1898  static
1899  symbol_type
1901  {
1902  return symbol_type (token::TOKEN_LSQUARE_BRACKET, l);
1903  }
1904 #endif
1905 #if 201103L <= YY_CPLUSPLUS
1906  static
1907  symbol_type
1908  make_RSQUARE_BRACKET (location_type l)
1909  {
1910  return symbol_type (token::TOKEN_RSQUARE_BRACKET, std::move (l));
1911  }
1912 #else
1913  static
1914  symbol_type
1916  {
1917  return symbol_type (token::TOKEN_RSQUARE_BRACKET, l);
1918  }
1919 #endif
1920 #if 201103L <= YY_CPLUSPLUS
1921  static
1922  symbol_type
1923  make_LCURLY_BRACKET (location_type l)
1924  {
1925  return symbol_type (token::TOKEN_LCURLY_BRACKET, std::move (l));
1926  }
1927 #else
1928  static
1929  symbol_type
1931  {
1932  return symbol_type (token::TOKEN_LCURLY_BRACKET, l);
1933  }
1934 #endif
1935 #if 201103L <= YY_CPLUSPLUS
1936  static
1937  symbol_type
1938  make_RCURLY_BRACKET (location_type l)
1939  {
1940  return symbol_type (token::TOKEN_RCURLY_BRACKET, std::move (l));
1941  }
1942 #else
1943  static
1944  symbol_type
1946  {
1947  return symbol_type (token::TOKEN_RCURLY_BRACKET, l);
1948  }
1949 #endif
1950 #if 201103L <= YY_CPLUSPLUS
1951  static
1952  symbol_type
1953  make_NULL_TYPE (location_type l)
1954  {
1955  return symbol_type (token::TOKEN_NULL_TYPE, std::move (l));
1956  }
1957 #else
1958  static
1959  symbol_type
1961  {
1962  return symbol_type (token::TOKEN_NULL_TYPE, l);
1963  }
1964 #endif
1965 #if 201103L <= YY_CPLUSPLUS
1966  static
1967  symbol_type
1968  make_DHCP4 (location_type l)
1969  {
1970  return symbol_type (token::TOKEN_DHCP4, std::move (l));
1971  }
1972 #else
1973  static
1974  symbol_type
1976  {
1977  return symbol_type (token::TOKEN_DHCP4, l);
1978  }
1979 #endif
1980 #if 201103L <= YY_CPLUSPLUS
1981  static
1982  symbol_type
1983  make_CONFIG_CONTROL (location_type l)
1984  {
1985  return symbol_type (token::TOKEN_CONFIG_CONTROL, std::move (l));
1986  }
1987 #else
1988  static
1989  symbol_type
1991  {
1992  return symbol_type (token::TOKEN_CONFIG_CONTROL, l);
1993  }
1994 #endif
1995 #if 201103L <= YY_CPLUSPLUS
1996  static
1997  symbol_type
1998  make_CONFIG_DATABASES (location_type l)
1999  {
2000  return symbol_type (token::TOKEN_CONFIG_DATABASES, std::move (l));
2001  }
2002 #else
2003  static
2004  symbol_type
2006  {
2007  return symbol_type (token::TOKEN_CONFIG_DATABASES, l);
2008  }
2009 #endif
2010 #if 201103L <= YY_CPLUSPLUS
2011  static
2012  symbol_type
2013  make_CONFIG_FETCH_WAIT_TIME (location_type l)
2014  {
2015  return symbol_type (token::TOKEN_CONFIG_FETCH_WAIT_TIME, std::move (l));
2016  }
2017 #else
2018  static
2019  symbol_type
2021  {
2022  return symbol_type (token::TOKEN_CONFIG_FETCH_WAIT_TIME, l);
2023  }
2024 #endif
2025 #if 201103L <= YY_CPLUSPLUS
2026  static
2027  symbol_type
2028  make_INTERFACES_CONFIG (location_type l)
2029  {
2030  return symbol_type (token::TOKEN_INTERFACES_CONFIG, std::move (l));
2031  }
2032 #else
2033  static
2034  symbol_type
2036  {
2037  return symbol_type (token::TOKEN_INTERFACES_CONFIG, l);
2038  }
2039 #endif
2040 #if 201103L <= YY_CPLUSPLUS
2041  static
2042  symbol_type
2043  make_INTERFACES (location_type l)
2044  {
2045  return symbol_type (token::TOKEN_INTERFACES, std::move (l));
2046  }
2047 #else
2048  static
2049  symbol_type
2051  {
2052  return symbol_type (token::TOKEN_INTERFACES, l);
2053  }
2054 #endif
2055 #if 201103L <= YY_CPLUSPLUS
2056  static
2057  symbol_type
2058  make_DHCP_SOCKET_TYPE (location_type l)
2059  {
2060  return symbol_type (token::TOKEN_DHCP_SOCKET_TYPE, std::move (l));
2061  }
2062 #else
2063  static
2064  symbol_type
2066  {
2067  return symbol_type (token::TOKEN_DHCP_SOCKET_TYPE, l);
2068  }
2069 #endif
2070 #if 201103L <= YY_CPLUSPLUS
2071  static
2072  symbol_type
2073  make_RAW (location_type l)
2074  {
2075  return symbol_type (token::TOKEN_RAW, std::move (l));
2076  }
2077 #else
2078  static
2079  symbol_type
2081  {
2082  return symbol_type (token::TOKEN_RAW, l);
2083  }
2084 #endif
2085 #if 201103L <= YY_CPLUSPLUS
2086  static
2087  symbol_type
2088  make_UDP (location_type l)
2089  {
2090  return symbol_type (token::TOKEN_UDP, std::move (l));
2091  }
2092 #else
2093  static
2094  symbol_type
2096  {
2097  return symbol_type (token::TOKEN_UDP, l);
2098  }
2099 #endif
2100 #if 201103L <= YY_CPLUSPLUS
2101  static
2102  symbol_type
2103  make_OUTBOUND_INTERFACE (location_type l)
2104  {
2105  return symbol_type (token::TOKEN_OUTBOUND_INTERFACE, std::move (l));
2106  }
2107 #else
2108  static
2109  symbol_type
2111  {
2112  return symbol_type (token::TOKEN_OUTBOUND_INTERFACE, l);
2113  }
2114 #endif
2115 #if 201103L <= YY_CPLUSPLUS
2116  static
2117  symbol_type
2118  make_SAME_AS_INBOUND (location_type l)
2119  {
2120  return symbol_type (token::TOKEN_SAME_AS_INBOUND, std::move (l));
2121  }
2122 #else
2123  static
2124  symbol_type
2126  {
2127  return symbol_type (token::TOKEN_SAME_AS_INBOUND, l);
2128  }
2129 #endif
2130 #if 201103L <= YY_CPLUSPLUS
2131  static
2132  symbol_type
2133  make_USE_ROUTING (location_type l)
2134  {
2135  return symbol_type (token::TOKEN_USE_ROUTING, std::move (l));
2136  }
2137 #else
2138  static
2139  symbol_type
2141  {
2142  return symbol_type (token::TOKEN_USE_ROUTING, l);
2143  }
2144 #endif
2145 #if 201103L <= YY_CPLUSPLUS
2146  static
2147  symbol_type
2148  make_RE_DETECT (location_type l)
2149  {
2150  return symbol_type (token::TOKEN_RE_DETECT, std::move (l));
2151  }
2152 #else
2153  static
2154  symbol_type
2156  {
2157  return symbol_type (token::TOKEN_RE_DETECT, l);
2158  }
2159 #endif
2160 #if 201103L <= YY_CPLUSPLUS
2161  static
2162  symbol_type
2163  make_SERVICE_SOCKETS_REQUIRE_ALL (location_type l)
2164  {
2165  return symbol_type (token::TOKEN_SERVICE_SOCKETS_REQUIRE_ALL, std::move (l));
2166  }
2167 #else
2168  static
2169  symbol_type
2171  {
2172  return symbol_type (token::TOKEN_SERVICE_SOCKETS_REQUIRE_ALL, l);
2173  }
2174 #endif
2175 #if 201103L <= YY_CPLUSPLUS
2176  static
2177  symbol_type
2178  make_SERVICE_SOCKETS_RETRY_WAIT_TIME (location_type l)
2179  {
2180  return symbol_type (token::TOKEN_SERVICE_SOCKETS_RETRY_WAIT_TIME, std::move (l));
2181  }
2182 #else
2183  static
2184  symbol_type
2186  {
2187  return symbol_type (token::TOKEN_SERVICE_SOCKETS_RETRY_WAIT_TIME, l);
2188  }
2189 #endif
2190 #if 201103L <= YY_CPLUSPLUS
2191  static
2192  symbol_type
2193  make_SERVICE_SOCKETS_MAX_RETRIES (location_type l)
2194  {
2195  return symbol_type (token::TOKEN_SERVICE_SOCKETS_MAX_RETRIES, std::move (l));
2196  }
2197 #else
2198  static
2199  symbol_type
2201  {
2202  return symbol_type (token::TOKEN_SERVICE_SOCKETS_MAX_RETRIES, l);
2203  }
2204 #endif
2205 #if 201103L <= YY_CPLUSPLUS
2206  static
2207  symbol_type
2208  make_SANITY_CHECKS (location_type l)
2209  {
2210  return symbol_type (token::TOKEN_SANITY_CHECKS, std::move (l));
2211  }
2212 #else
2213  static
2214  symbol_type
2216  {
2217  return symbol_type (token::TOKEN_SANITY_CHECKS, l);
2218  }
2219 #endif
2220 #if 201103L <= YY_CPLUSPLUS
2221  static
2222  symbol_type
2223  make_LEASE_CHECKS (location_type l)
2224  {
2225  return symbol_type (token::TOKEN_LEASE_CHECKS, std::move (l));
2226  }
2227 #else
2228  static
2229  symbol_type
2231  {
2232  return symbol_type (token::TOKEN_LEASE_CHECKS, l);
2233  }
2234 #endif
2235 #if 201103L <= YY_CPLUSPLUS
2236  static
2237  symbol_type
2238  make_EXTENDED_INFO_CHECKS (location_type l)
2239  {
2240  return symbol_type (token::TOKEN_EXTENDED_INFO_CHECKS, std::move (l));
2241  }
2242 #else
2243  static
2244  symbol_type
2246  {
2247  return symbol_type (token::TOKEN_EXTENDED_INFO_CHECKS, l);
2248  }
2249 #endif
2250 #if 201103L <= YY_CPLUSPLUS
2251  static
2252  symbol_type
2253  make_ECHO_CLIENT_ID (location_type l)
2254  {
2255  return symbol_type (token::TOKEN_ECHO_CLIENT_ID, std::move (l));
2256  }
2257 #else
2258  static
2259  symbol_type
2261  {
2262  return symbol_type (token::TOKEN_ECHO_CLIENT_ID, l);
2263  }
2264 #endif
2265 #if 201103L <= YY_CPLUSPLUS
2266  static
2267  symbol_type
2268  make_MATCH_CLIENT_ID (location_type l)
2269  {
2270  return symbol_type (token::TOKEN_MATCH_CLIENT_ID, std::move (l));
2271  }
2272 #else
2273  static
2274  symbol_type
2276  {
2277  return symbol_type (token::TOKEN_MATCH_CLIENT_ID, l);
2278  }
2279 #endif
2280 #if 201103L <= YY_CPLUSPLUS
2281  static
2282  symbol_type
2283  make_AUTHORITATIVE (location_type l)
2284  {
2285  return symbol_type (token::TOKEN_AUTHORITATIVE, std::move (l));
2286  }
2287 #else
2288  static
2289  symbol_type
2291  {
2292  return symbol_type (token::TOKEN_AUTHORITATIVE, l);
2293  }
2294 #endif
2295 #if 201103L <= YY_CPLUSPLUS
2296  static
2297  symbol_type
2298  make_NEXT_SERVER (location_type l)
2299  {
2300  return symbol_type (token::TOKEN_NEXT_SERVER, std::move (l));
2301  }
2302 #else
2303  static
2304  symbol_type
2306  {
2307  return symbol_type (token::TOKEN_NEXT_SERVER, l);
2308  }
2309 #endif
2310 #if 201103L <= YY_CPLUSPLUS
2311  static
2312  symbol_type
2313  make_SERVER_HOSTNAME (location_type l)
2314  {
2315  return symbol_type (token::TOKEN_SERVER_HOSTNAME, std::move (l));
2316  }
2317 #else
2318  static
2319  symbol_type
2321  {
2322  return symbol_type (token::TOKEN_SERVER_HOSTNAME, l);
2323  }
2324 #endif
2325 #if 201103L <= YY_CPLUSPLUS
2326  static
2327  symbol_type
2328  make_BOOT_FILE_NAME (location_type l)
2329  {
2330  return symbol_type (token::TOKEN_BOOT_FILE_NAME, std::move (l));
2331  }
2332 #else
2333  static
2334  symbol_type
2336  {
2337  return symbol_type (token::TOKEN_BOOT_FILE_NAME, l);
2338  }
2339 #endif
2340 #if 201103L <= YY_CPLUSPLUS
2341  static
2342  symbol_type
2343  make_OFFER_LFT (location_type l)
2344  {
2345  return symbol_type (token::TOKEN_OFFER_LFT, std::move (l));
2346  }
2347 #else
2348  static
2349  symbol_type
2351  {
2352  return symbol_type (token::TOKEN_OFFER_LFT, l);
2353  }
2354 #endif
2355 #if 201103L <= YY_CPLUSPLUS
2356  static
2357  symbol_type
2358  make_LEASE_DATABASE (location_type l)
2359  {
2360  return symbol_type (token::TOKEN_LEASE_DATABASE, std::move (l));
2361  }
2362 #else
2363  static
2364  symbol_type
2366  {
2367  return symbol_type (token::TOKEN_LEASE_DATABASE, l);
2368  }
2369 #endif
2370 #if 201103L <= YY_CPLUSPLUS
2371  static
2372  symbol_type
2373  make_HOSTS_DATABASE (location_type l)
2374  {
2375  return symbol_type (token::TOKEN_HOSTS_DATABASE, std::move (l));
2376  }
2377 #else
2378  static
2379  symbol_type
2381  {
2382  return symbol_type (token::TOKEN_HOSTS_DATABASE, l);
2383  }
2384 #endif
2385 #if 201103L <= YY_CPLUSPLUS
2386  static
2387  symbol_type
2388  make_HOSTS_DATABASES (location_type l)
2389  {
2390  return symbol_type (token::TOKEN_HOSTS_DATABASES, std::move (l));
2391  }
2392 #else
2393  static
2394  symbol_type
2396  {
2397  return symbol_type (token::TOKEN_HOSTS_DATABASES, l);
2398  }
2399 #endif
2400 #if 201103L <= YY_CPLUSPLUS
2401  static
2402  symbol_type
2403  make_TYPE (location_type l)
2404  {
2405  return symbol_type (token::TOKEN_TYPE, std::move (l));
2406  }
2407 #else
2408  static
2409  symbol_type
2411  {
2412  return symbol_type (token::TOKEN_TYPE, l);
2413  }
2414 #endif
2415 #if 201103L <= YY_CPLUSPLUS
2416  static
2417  symbol_type
2418  make_MEMFILE (location_type l)
2419  {
2420  return symbol_type (token::TOKEN_MEMFILE, std::move (l));
2421  }
2422 #else
2423  static
2424  symbol_type
2426  {
2427  return symbol_type (token::TOKEN_MEMFILE, l);
2428  }
2429 #endif
2430 #if 201103L <= YY_CPLUSPLUS
2431  static
2432  symbol_type
2433  make_MYSQL (location_type l)
2434  {
2435  return symbol_type (token::TOKEN_MYSQL, std::move (l));
2436  }
2437 #else
2438  static
2439  symbol_type
2441  {
2442  return symbol_type (token::TOKEN_MYSQL, l);
2443  }
2444 #endif
2445 #if 201103L <= YY_CPLUSPLUS
2446  static
2447  symbol_type
2448  make_POSTGRESQL (location_type l)
2449  {
2450  return symbol_type (token::TOKEN_POSTGRESQL, std::move (l));
2451  }
2452 #else
2453  static
2454  symbol_type
2456  {
2457  return symbol_type (token::TOKEN_POSTGRESQL, l);
2458  }
2459 #endif
2460 #if 201103L <= YY_CPLUSPLUS
2461  static
2462  symbol_type
2463  make_USER (location_type l)
2464  {
2465  return symbol_type (token::TOKEN_USER, std::move (l));
2466  }
2467 #else
2468  static
2469  symbol_type
2471  {
2472  return symbol_type (token::TOKEN_USER, l);
2473  }
2474 #endif
2475 #if 201103L <= YY_CPLUSPLUS
2476  static
2477  symbol_type
2478  make_PASSWORD (location_type l)
2479  {
2480  return symbol_type (token::TOKEN_PASSWORD, std::move (l));
2481  }
2482 #else
2483  static
2484  symbol_type
2486  {
2487  return symbol_type (token::TOKEN_PASSWORD, l);
2488  }
2489 #endif
2490 #if 201103L <= YY_CPLUSPLUS
2491  static
2492  symbol_type
2493  make_HOST (location_type l)
2494  {
2495  return symbol_type (token::TOKEN_HOST, std::move (l));
2496  }
2497 #else
2498  static
2499  symbol_type
2501  {
2502  return symbol_type (token::TOKEN_HOST, l);
2503  }
2504 #endif
2505 #if 201103L <= YY_CPLUSPLUS
2506  static
2507  symbol_type
2508  make_PORT (location_type l)
2509  {
2510  return symbol_type (token::TOKEN_PORT, std::move (l));
2511  }
2512 #else
2513  static
2514  symbol_type
2516  {
2517  return symbol_type (token::TOKEN_PORT, l);
2518  }
2519 #endif
2520 #if 201103L <= YY_CPLUSPLUS
2521  static
2522  symbol_type
2523  make_PERSIST (location_type l)
2524  {
2525  return symbol_type (token::TOKEN_PERSIST, std::move (l));
2526  }
2527 #else
2528  static
2529  symbol_type
2531  {
2532  return symbol_type (token::TOKEN_PERSIST, l);
2533  }
2534 #endif
2535 #if 201103L <= YY_CPLUSPLUS
2536  static
2537  symbol_type
2538  make_LFC_INTERVAL (location_type l)
2539  {
2540  return symbol_type (token::TOKEN_LFC_INTERVAL, std::move (l));
2541  }
2542 #else
2543  static
2544  symbol_type
2546  {
2547  return symbol_type (token::TOKEN_LFC_INTERVAL, l);
2548  }
2549 #endif
2550 #if 201103L <= YY_CPLUSPLUS
2551  static
2552  symbol_type
2553  make_READONLY (location_type l)
2554  {
2555  return symbol_type (token::TOKEN_READONLY, std::move (l));
2556  }
2557 #else
2558  static
2559  symbol_type
2561  {
2562  return symbol_type (token::TOKEN_READONLY, l);
2563  }
2564 #endif
2565 #if 201103L <= YY_CPLUSPLUS
2566  static
2567  symbol_type
2568  make_CONNECT_TIMEOUT (location_type l)
2569  {
2570  return symbol_type (token::TOKEN_CONNECT_TIMEOUT, std::move (l));
2571  }
2572 #else
2573  static
2574  symbol_type
2576  {
2577  return symbol_type (token::TOKEN_CONNECT_TIMEOUT, l);
2578  }
2579 #endif
2580 #if 201103L <= YY_CPLUSPLUS
2581  static
2582  symbol_type
2583  make_READ_TIMEOUT (location_type l)
2584  {
2585  return symbol_type (token::TOKEN_READ_TIMEOUT, std::move (l));
2586  }
2587 #else
2588  static
2589  symbol_type
2591  {
2592  return symbol_type (token::TOKEN_READ_TIMEOUT, l);
2593  }
2594 #endif
2595 #if 201103L <= YY_CPLUSPLUS
2596  static
2597  symbol_type
2598  make_WRITE_TIMEOUT (location_type l)
2599  {
2600  return symbol_type (token::TOKEN_WRITE_TIMEOUT, std::move (l));
2601  }
2602 #else
2603  static
2604  symbol_type
2606  {
2607  return symbol_type (token::TOKEN_WRITE_TIMEOUT, l);
2608  }
2609 #endif
2610 #if 201103L <= YY_CPLUSPLUS
2611  static
2612  symbol_type
2613  make_TCP_USER_TIMEOUT (location_type l)
2614  {
2615  return symbol_type (token::TOKEN_TCP_USER_TIMEOUT, std::move (l));
2616  }
2617 #else
2618  static
2619  symbol_type
2621  {
2622  return symbol_type (token::TOKEN_TCP_USER_TIMEOUT, l);
2623  }
2624 #endif
2625 #if 201103L <= YY_CPLUSPLUS
2626  static
2627  symbol_type
2628  make_MAX_RECONNECT_TRIES (location_type l)
2629  {
2630  return symbol_type (token::TOKEN_MAX_RECONNECT_TRIES, std::move (l));
2631  }
2632 #else
2633  static
2634  symbol_type
2636  {
2637  return symbol_type (token::TOKEN_MAX_RECONNECT_TRIES, l);
2638  }
2639 #endif
2640 #if 201103L <= YY_CPLUSPLUS
2641  static
2642  symbol_type
2643  make_RECONNECT_WAIT_TIME (location_type l)
2644  {
2645  return symbol_type (token::TOKEN_RECONNECT_WAIT_TIME, std::move (l));
2646  }
2647 #else
2648  static
2649  symbol_type
2651  {
2652  return symbol_type (token::TOKEN_RECONNECT_WAIT_TIME, l);
2653  }
2654 #endif
2655 #if 201103L <= YY_CPLUSPLUS
2656  static
2657  symbol_type
2658  make_ON_FAIL (location_type l)
2659  {
2660  return symbol_type (token::TOKEN_ON_FAIL, std::move (l));
2661  }
2662 #else
2663  static
2664  symbol_type
2666  {
2667  return symbol_type (token::TOKEN_ON_FAIL, l);
2668  }
2669 #endif
2670 #if 201103L <= YY_CPLUSPLUS
2671  static
2672  symbol_type
2673  make_STOP_RETRY_EXIT (location_type l)
2674  {
2675  return symbol_type (token::TOKEN_STOP_RETRY_EXIT, std::move (l));
2676  }
2677 #else
2678  static
2679  symbol_type
2681  {
2682  return symbol_type (token::TOKEN_STOP_RETRY_EXIT, l);
2683  }
2684 #endif
2685 #if 201103L <= YY_CPLUSPLUS
2686  static
2687  symbol_type
2688  make_SERVE_RETRY_EXIT (location_type l)
2689  {
2690  return symbol_type (token::TOKEN_SERVE_RETRY_EXIT, std::move (l));
2691  }
2692 #else
2693  static
2694  symbol_type
2696  {
2697  return symbol_type (token::TOKEN_SERVE_RETRY_EXIT, l);
2698  }
2699 #endif
2700 #if 201103L <= YY_CPLUSPLUS
2701  static
2702  symbol_type
2703  make_SERVE_RETRY_CONTINUE (location_type l)
2704  {
2705  return symbol_type (token::TOKEN_SERVE_RETRY_CONTINUE, std::move (l));
2706  }
2707 #else
2708  static
2709  symbol_type
2711  {
2712  return symbol_type (token::TOKEN_SERVE_RETRY_CONTINUE, l);
2713  }
2714 #endif
2715 #if 201103L <= YY_CPLUSPLUS
2716  static
2717  symbol_type
2718  make_MAX_ROW_ERRORS (location_type l)
2719  {
2720  return symbol_type (token::TOKEN_MAX_ROW_ERRORS, std::move (l));
2721  }
2722 #else
2723  static
2724  symbol_type
2726  {
2727  return symbol_type (token::TOKEN_MAX_ROW_ERRORS, l);
2728  }
2729 #endif
2730 #if 201103L <= YY_CPLUSPLUS
2731  static
2732  symbol_type
2733  make_TRUST_ANCHOR (location_type l)
2734  {
2735  return symbol_type (token::TOKEN_TRUST_ANCHOR, std::move (l));
2736  }
2737 #else
2738  static
2739  symbol_type
2741  {
2742  return symbol_type (token::TOKEN_TRUST_ANCHOR, l);
2743  }
2744 #endif
2745 #if 201103L <= YY_CPLUSPLUS
2746  static
2747  symbol_type
2748  make_CERT_FILE (location_type l)
2749  {
2750  return symbol_type (token::TOKEN_CERT_FILE, std::move (l));
2751  }
2752 #else
2753  static
2754  symbol_type
2756  {
2757  return symbol_type (token::TOKEN_CERT_FILE, l);
2758  }
2759 #endif
2760 #if 201103L <= YY_CPLUSPLUS
2761  static
2762  symbol_type
2763  make_KEY_FILE (location_type l)
2764  {
2765  return symbol_type (token::TOKEN_KEY_FILE, std::move (l));
2766  }
2767 #else
2768  static
2769  symbol_type
2771  {
2772  return symbol_type (token::TOKEN_KEY_FILE, l);
2773  }
2774 #endif
2775 #if 201103L <= YY_CPLUSPLUS
2776  static
2777  symbol_type
2778  make_CIPHER_LIST (location_type l)
2779  {
2780  return symbol_type (token::TOKEN_CIPHER_LIST, std::move (l));
2781  }
2782 #else
2783  static
2784  symbol_type
2786  {
2787  return symbol_type (token::TOKEN_CIPHER_LIST, l);
2788  }
2789 #endif
2790 #if 201103L <= YY_CPLUSPLUS
2791  static
2792  symbol_type
2793  make_VALID_LIFETIME (location_type l)
2794  {
2795  return symbol_type (token::TOKEN_VALID_LIFETIME, std::move (l));
2796  }
2797 #else
2798  static
2799  symbol_type
2801  {
2802  return symbol_type (token::TOKEN_VALID_LIFETIME, l);
2803  }
2804 #endif
2805 #if 201103L <= YY_CPLUSPLUS
2806  static
2807  symbol_type
2808  make_MIN_VALID_LIFETIME (location_type l)
2809  {
2810  return symbol_type (token::TOKEN_MIN_VALID_LIFETIME, std::move (l));
2811  }
2812 #else
2813  static
2814  symbol_type
2816  {
2817  return symbol_type (token::TOKEN_MIN_VALID_LIFETIME, l);
2818  }
2819 #endif
2820 #if 201103L <= YY_CPLUSPLUS
2821  static
2822  symbol_type
2823  make_MAX_VALID_LIFETIME (location_type l)
2824  {
2825  return symbol_type (token::TOKEN_MAX_VALID_LIFETIME, std::move (l));
2826  }
2827 #else
2828  static
2829  symbol_type
2831  {
2832  return symbol_type (token::TOKEN_MAX_VALID_LIFETIME, l);
2833  }
2834 #endif
2835 #if 201103L <= YY_CPLUSPLUS
2836  static
2837  symbol_type
2838  make_RENEW_TIMER (location_type l)
2839  {
2840  return symbol_type (token::TOKEN_RENEW_TIMER, std::move (l));
2841  }
2842 #else
2843  static
2844  symbol_type
2846  {
2847  return symbol_type (token::TOKEN_RENEW_TIMER, l);
2848  }
2849 #endif
2850 #if 201103L <= YY_CPLUSPLUS
2851  static
2852  symbol_type
2853  make_REBIND_TIMER (location_type l)
2854  {
2855  return symbol_type (token::TOKEN_REBIND_TIMER, std::move (l));
2856  }
2857 #else
2858  static
2859  symbol_type
2861  {
2862  return symbol_type (token::TOKEN_REBIND_TIMER, l);
2863  }
2864 #endif
2865 #if 201103L <= YY_CPLUSPLUS
2866  static
2867  symbol_type
2868  make_CALCULATE_TEE_TIMES (location_type l)
2869  {
2870  return symbol_type (token::TOKEN_CALCULATE_TEE_TIMES, std::move (l));
2871  }
2872 #else
2873  static
2874  symbol_type
2876  {
2877  return symbol_type (token::TOKEN_CALCULATE_TEE_TIMES, l);
2878  }
2879 #endif
2880 #if 201103L <= YY_CPLUSPLUS
2881  static
2882  symbol_type
2883  make_T1_PERCENT (location_type l)
2884  {
2885  return symbol_type (token::TOKEN_T1_PERCENT, std::move (l));
2886  }
2887 #else
2888  static
2889  symbol_type
2891  {
2892  return symbol_type (token::TOKEN_T1_PERCENT, l);
2893  }
2894 #endif
2895 #if 201103L <= YY_CPLUSPLUS
2896  static
2897  symbol_type
2898  make_T2_PERCENT (location_type l)
2899  {
2900  return symbol_type (token::TOKEN_T2_PERCENT, std::move (l));
2901  }
2902 #else
2903  static
2904  symbol_type
2906  {
2907  return symbol_type (token::TOKEN_T2_PERCENT, l);
2908  }
2909 #endif
2910 #if 201103L <= YY_CPLUSPLUS
2911  static
2912  symbol_type
2913  make_CACHE_THRESHOLD (location_type l)
2914  {
2915  return symbol_type (token::TOKEN_CACHE_THRESHOLD, std::move (l));
2916  }
2917 #else
2918  static
2919  symbol_type
2921  {
2922  return symbol_type (token::TOKEN_CACHE_THRESHOLD, l);
2923  }
2924 #endif
2925 #if 201103L <= YY_CPLUSPLUS
2926  static
2927  symbol_type
2928  make_CACHE_MAX_AGE (location_type l)
2929  {
2930  return symbol_type (token::TOKEN_CACHE_MAX_AGE, std::move (l));
2931  }
2932 #else
2933  static
2934  symbol_type
2936  {
2937  return symbol_type (token::TOKEN_CACHE_MAX_AGE, l);
2938  }
2939 #endif
2940 #if 201103L <= YY_CPLUSPLUS
2941  static
2942  symbol_type
2943  make_DECLINE_PROBATION_PERIOD (location_type l)
2944  {
2945  return symbol_type (token::TOKEN_DECLINE_PROBATION_PERIOD, std::move (l));
2946  }
2947 #else
2948  static
2949  symbol_type
2951  {
2952  return symbol_type (token::TOKEN_DECLINE_PROBATION_PERIOD, l);
2953  }
2954 #endif
2955 #if 201103L <= YY_CPLUSPLUS
2956  static
2957  symbol_type
2958  make_SERVER_TAG (location_type l)
2959  {
2960  return symbol_type (token::TOKEN_SERVER_TAG, std::move (l));
2961  }
2962 #else
2963  static
2964  symbol_type
2966  {
2967  return symbol_type (token::TOKEN_SERVER_TAG, l);
2968  }
2969 #endif
2970 #if 201103L <= YY_CPLUSPLUS
2971  static
2972  symbol_type
2973  make_STATISTIC_DEFAULT_SAMPLE_COUNT (location_type l)
2974  {
2975  return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT, std::move (l));
2976  }
2977 #else
2978  static
2979  symbol_type
2981  {
2982  return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT, l);
2983  }
2984 #endif
2985 #if 201103L <= YY_CPLUSPLUS
2986  static
2987  symbol_type
2988  make_STATISTIC_DEFAULT_SAMPLE_AGE (location_type l)
2989  {
2990  return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE, std::move (l));
2991  }
2992 #else
2993  static
2994  symbol_type
2996  {
2997  return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE, l);
2998  }
2999 #endif
3000 #if 201103L <= YY_CPLUSPLUS
3001  static
3002  symbol_type
3003  make_DDNS_SEND_UPDATES (location_type l)
3004  {
3005  return symbol_type (token::TOKEN_DDNS_SEND_UPDATES, std::move (l));
3006  }
3007 #else
3008  static
3009  symbol_type
3011  {
3012  return symbol_type (token::TOKEN_DDNS_SEND_UPDATES, l);
3013  }
3014 #endif
3015 #if 201103L <= YY_CPLUSPLUS
3016  static
3017  symbol_type
3018  make_DDNS_OVERRIDE_NO_UPDATE (location_type l)
3019  {
3020  return symbol_type (token::TOKEN_DDNS_OVERRIDE_NO_UPDATE, std::move (l));
3021  }
3022 #else
3023  static
3024  symbol_type
3026  {
3027  return symbol_type (token::TOKEN_DDNS_OVERRIDE_NO_UPDATE, l);
3028  }
3029 #endif
3030 #if 201103L <= YY_CPLUSPLUS
3031  static
3032  symbol_type
3033  make_DDNS_OVERRIDE_CLIENT_UPDATE (location_type l)
3034  {
3035  return symbol_type (token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE, std::move (l));
3036  }
3037 #else
3038  static
3039  symbol_type
3041  {
3042  return symbol_type (token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE, l);
3043  }
3044 #endif
3045 #if 201103L <= YY_CPLUSPLUS
3046  static
3047  symbol_type
3048  make_DDNS_REPLACE_CLIENT_NAME (location_type l)
3049  {
3050  return symbol_type (token::TOKEN_DDNS_REPLACE_CLIENT_NAME, std::move (l));
3051  }
3052 #else
3053  static
3054  symbol_type
3056  {
3057  return symbol_type (token::TOKEN_DDNS_REPLACE_CLIENT_NAME, l);
3058  }
3059 #endif
3060 #if 201103L <= YY_CPLUSPLUS
3061  static
3062  symbol_type
3063  make_DDNS_GENERATED_PREFIX (location_type l)
3064  {
3065  return symbol_type (token::TOKEN_DDNS_GENERATED_PREFIX, std::move (l));
3066  }
3067 #else
3068  static
3069  symbol_type
3071  {
3072  return symbol_type (token::TOKEN_DDNS_GENERATED_PREFIX, l);
3073  }
3074 #endif
3075 #if 201103L <= YY_CPLUSPLUS
3076  static
3077  symbol_type
3078  make_DDNS_QUALIFYING_SUFFIX (location_type l)
3079  {
3080  return symbol_type (token::TOKEN_DDNS_QUALIFYING_SUFFIX, std::move (l));
3081  }
3082 #else
3083  static
3084  symbol_type
3086  {
3087  return symbol_type (token::TOKEN_DDNS_QUALIFYING_SUFFIX, l);
3088  }
3089 #endif
3090 #if 201103L <= YY_CPLUSPLUS
3091  static
3092  symbol_type
3093  make_DDNS_UPDATE_ON_RENEW (location_type l)
3094  {
3095  return symbol_type (token::TOKEN_DDNS_UPDATE_ON_RENEW, std::move (l));
3096  }
3097 #else
3098  static
3099  symbol_type
3101  {
3102  return symbol_type (token::TOKEN_DDNS_UPDATE_ON_RENEW, l);
3103  }
3104 #endif
3105 #if 201103L <= YY_CPLUSPLUS
3106  static
3107  symbol_type
3108  make_DDNS_USE_CONFLICT_RESOLUTION (location_type l)
3109  {
3110  return symbol_type (token::TOKEN_DDNS_USE_CONFLICT_RESOLUTION, std::move (l));
3111  }
3112 #else
3113  static
3114  symbol_type
3116  {
3117  return symbol_type (token::TOKEN_DDNS_USE_CONFLICT_RESOLUTION, l);
3118  }
3119 #endif
3120 #if 201103L <= YY_CPLUSPLUS
3121  static
3122  symbol_type
3123  make_DDNS_TTL_PERCENT (location_type l)
3124  {
3125  return symbol_type (token::TOKEN_DDNS_TTL_PERCENT, std::move (l));
3126  }
3127 #else
3128  static
3129  symbol_type
3131  {
3132  return symbol_type (token::TOKEN_DDNS_TTL_PERCENT, l);
3133  }
3134 #endif
3135 #if 201103L <= YY_CPLUSPLUS
3136  static
3137  symbol_type
3138  make_STORE_EXTENDED_INFO (location_type l)
3139  {
3140  return symbol_type (token::TOKEN_STORE_EXTENDED_INFO, std::move (l));
3141  }
3142 #else
3143  static
3144  symbol_type
3146  {
3147  return symbol_type (token::TOKEN_STORE_EXTENDED_INFO, l);
3148  }
3149 #endif
3150 #if 201103L <= YY_CPLUSPLUS
3151  static
3152  symbol_type
3153  make_SUBNET4 (location_type l)
3154  {
3155  return symbol_type (token::TOKEN_SUBNET4, std::move (l));
3156  }
3157 #else
3158  static
3159  symbol_type
3161  {
3162  return symbol_type (token::TOKEN_SUBNET4, l);
3163  }
3164 #endif
3165 #if 201103L <= YY_CPLUSPLUS
3166  static
3167  symbol_type
3168  make_SUBNET_4O6_INTERFACE (location_type l)
3169  {
3170  return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE, std::move (l));
3171  }
3172 #else
3173  static
3174  symbol_type
3176  {
3177  return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE, l);
3178  }
3179 #endif
3180 #if 201103L <= YY_CPLUSPLUS
3181  static
3182  symbol_type
3183  make_SUBNET_4O6_INTERFACE_ID (location_type l)
3184  {
3185  return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE_ID, std::move (l));
3186  }
3187 #else
3188  static
3189  symbol_type
3191  {
3192  return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE_ID, l);
3193  }
3194 #endif
3195 #if 201103L <= YY_CPLUSPLUS
3196  static
3197  symbol_type
3198  make_SUBNET_4O6_SUBNET (location_type l)
3199  {
3200  return symbol_type (token::TOKEN_SUBNET_4O6_SUBNET, std::move (l));
3201  }
3202 #else
3203  static
3204  symbol_type
3206  {
3207  return symbol_type (token::TOKEN_SUBNET_4O6_SUBNET, l);
3208  }
3209 #endif
3210 #if 201103L <= YY_CPLUSPLUS
3211  static
3212  symbol_type
3213  make_OPTION_DEF (location_type l)
3214  {
3215  return symbol_type (token::TOKEN_OPTION_DEF, std::move (l));
3216  }
3217 #else
3218  static
3219  symbol_type
3221  {
3222  return symbol_type (token::TOKEN_OPTION_DEF, l);
3223  }
3224 #endif
3225 #if 201103L <= YY_CPLUSPLUS
3226  static
3227  symbol_type
3228  make_OPTION_DATA (location_type l)
3229  {
3230  return symbol_type (token::TOKEN_OPTION_DATA, std::move (l));
3231  }
3232 #else
3233  static
3234  symbol_type
3236  {
3237  return symbol_type (token::TOKEN_OPTION_DATA, l);
3238  }
3239 #endif
3240 #if 201103L <= YY_CPLUSPLUS
3241  static
3242  symbol_type
3243  make_NAME (location_type l)
3244  {
3245  return symbol_type (token::TOKEN_NAME, std::move (l));
3246  }
3247 #else
3248  static
3249  symbol_type
3251  {
3252  return symbol_type (token::TOKEN_NAME, l);
3253  }
3254 #endif
3255 #if 201103L <= YY_CPLUSPLUS
3256  static
3257  symbol_type
3258  make_DATA (location_type l)
3259  {
3260  return symbol_type (token::TOKEN_DATA, std::move (l));
3261  }
3262 #else
3263  static
3264  symbol_type
3266  {
3267  return symbol_type (token::TOKEN_DATA, l);
3268  }
3269 #endif
3270 #if 201103L <= YY_CPLUSPLUS
3271  static
3272  symbol_type
3273  make_CODE (location_type l)
3274  {
3275  return symbol_type (token::TOKEN_CODE, std::move (l));
3276  }
3277 #else
3278  static
3279  symbol_type
3281  {
3282  return symbol_type (token::TOKEN_CODE, l);
3283  }
3284 #endif
3285 #if 201103L <= YY_CPLUSPLUS
3286  static
3287  symbol_type
3288  make_SPACE (location_type l)
3289  {
3290  return symbol_type (token::TOKEN_SPACE, std::move (l));
3291  }
3292 #else
3293  static
3294  symbol_type
3296  {
3297  return symbol_type (token::TOKEN_SPACE, l);
3298  }
3299 #endif
3300 #if 201103L <= YY_CPLUSPLUS
3301  static
3302  symbol_type
3303  make_CSV_FORMAT (location_type l)
3304  {
3305  return symbol_type (token::TOKEN_CSV_FORMAT, std::move (l));
3306  }
3307 #else
3308  static
3309  symbol_type
3311  {
3312  return symbol_type (token::TOKEN_CSV_FORMAT, l);
3313  }
3314 #endif
3315 #if 201103L <= YY_CPLUSPLUS
3316  static
3317  symbol_type
3318  make_ALWAYS_SEND (location_type l)
3319  {
3320  return symbol_type (token::TOKEN_ALWAYS_SEND, std::move (l));
3321  }
3322 #else
3323  static
3324  symbol_type
3326  {
3327  return symbol_type (token::TOKEN_ALWAYS_SEND, l);
3328  }
3329 #endif
3330 #if 201103L <= YY_CPLUSPLUS
3331  static
3332  symbol_type
3333  make_NEVER_SEND (location_type l)
3334  {
3335  return symbol_type (token::TOKEN_NEVER_SEND, std::move (l));
3336  }
3337 #else
3338  static
3339  symbol_type
3341  {
3342  return symbol_type (token::TOKEN_NEVER_SEND, l);
3343  }
3344 #endif
3345 #if 201103L <= YY_CPLUSPLUS
3346  static
3347  symbol_type
3348  make_RECORD_TYPES (location_type l)
3349  {
3350  return symbol_type (token::TOKEN_RECORD_TYPES, std::move (l));
3351  }
3352 #else
3353  static
3354  symbol_type
3356  {
3357  return symbol_type (token::TOKEN_RECORD_TYPES, l);
3358  }
3359 #endif
3360 #if 201103L <= YY_CPLUSPLUS
3361  static
3362  symbol_type
3363  make_ENCAPSULATE (location_type l)
3364  {
3365  return symbol_type (token::TOKEN_ENCAPSULATE, std::move (l));
3366  }
3367 #else
3368  static
3369  symbol_type
3371  {
3372  return symbol_type (token::TOKEN_ENCAPSULATE, l);
3373  }
3374 #endif
3375 #if 201103L <= YY_CPLUSPLUS
3376  static
3377  symbol_type
3378  make_ARRAY (location_type l)
3379  {
3380  return symbol_type (token::TOKEN_ARRAY, std::move (l));
3381  }
3382 #else
3383  static
3384  symbol_type
3386  {
3387  return symbol_type (token::TOKEN_ARRAY, l);
3388  }
3389 #endif
3390 #if 201103L <= YY_CPLUSPLUS
3391  static
3392  symbol_type
3393  make_PARKED_PACKET_LIMIT (location_type l)
3394  {
3395  return symbol_type (token::TOKEN_PARKED_PACKET_LIMIT, std::move (l));
3396  }
3397 #else
3398  static
3399  symbol_type
3401  {
3402  return symbol_type (token::TOKEN_PARKED_PACKET_LIMIT, l);
3403  }
3404 #endif
3405 #if 201103L <= YY_CPLUSPLUS
3406  static
3407  symbol_type
3408  make_ALLOCATOR (location_type l)
3409  {
3410  return symbol_type (token::TOKEN_ALLOCATOR, std::move (l));
3411  }
3412 #else
3413  static
3414  symbol_type
3416  {
3417  return symbol_type (token::TOKEN_ALLOCATOR, l);
3418  }
3419 #endif
3420 #if 201103L <= YY_CPLUSPLUS
3421  static
3422  symbol_type
3423  make_DDNS_CONFLICT_RESOLUTION_MODE (location_type l)
3424  {
3425  return symbol_type (token::TOKEN_DDNS_CONFLICT_RESOLUTION_MODE, std::move (l));
3426  }
3427 #else
3428  static
3429  symbol_type
3431  {
3432  return symbol_type (token::TOKEN_DDNS_CONFLICT_RESOLUTION_MODE, l);
3433  }
3434 #endif
3435 #if 201103L <= YY_CPLUSPLUS
3436  static
3437  symbol_type
3438  make_CHECK_WITH_DHCID (location_type l)
3439  {
3440  return symbol_type (token::TOKEN_CHECK_WITH_DHCID, std::move (l));
3441  }
3442 #else
3443  static
3444  symbol_type
3446  {
3447  return symbol_type (token::TOKEN_CHECK_WITH_DHCID, l);
3448  }
3449 #endif
3450 #if 201103L <= YY_CPLUSPLUS
3451  static
3452  symbol_type
3453  make_NO_CHECK_WITH_DHCID (location_type l)
3454  {
3455  return symbol_type (token::TOKEN_NO_CHECK_WITH_DHCID, std::move (l));
3456  }
3457 #else
3458  static
3459  symbol_type
3461  {
3462  return symbol_type (token::TOKEN_NO_CHECK_WITH_DHCID, l);
3463  }
3464 #endif
3465 #if 201103L <= YY_CPLUSPLUS
3466  static
3467  symbol_type
3468  make_CHECK_EXISTS_WITH_DHCID (location_type l)
3469  {
3470  return symbol_type (token::TOKEN_CHECK_EXISTS_WITH_DHCID, std::move (l));
3471  }
3472 #else
3473  static
3474  symbol_type
3476  {
3477  return symbol_type (token::TOKEN_CHECK_EXISTS_WITH_DHCID, l);
3478  }
3479 #endif
3480 #if 201103L <= YY_CPLUSPLUS
3481  static
3482  symbol_type
3483  make_NO_CHECK_WITHOUT_DHCID (location_type l)
3484  {
3485  return symbol_type (token::TOKEN_NO_CHECK_WITHOUT_DHCID, std::move (l));
3486  }
3487 #else
3488  static
3489  symbol_type
3491  {
3492  return symbol_type (token::TOKEN_NO_CHECK_WITHOUT_DHCID, l);
3493  }
3494 #endif
3495 #if 201103L <= YY_CPLUSPLUS
3496  static
3497  symbol_type
3498  make_SHARED_NETWORKS (location_type l)
3499  {
3500  return symbol_type (token::TOKEN_SHARED_NETWORKS, std::move (l));
3501  }
3502 #else
3503  static
3504  symbol_type
3506  {
3507  return symbol_type (token::TOKEN_SHARED_NETWORKS, l);
3508  }
3509 #endif
3510 #if 201103L <= YY_CPLUSPLUS
3511  static
3512  symbol_type
3513  make_POOLS (location_type l)
3514  {
3515  return symbol_type (token::TOKEN_POOLS, std::move (l));
3516  }
3517 #else
3518  static
3519  symbol_type
3521  {
3522  return symbol_type (token::TOKEN_POOLS, l);
3523  }
3524 #endif
3525 #if 201103L <= YY_CPLUSPLUS
3526  static
3527  symbol_type
3528  make_POOL (location_type l)
3529  {
3530  return symbol_type (token::TOKEN_POOL, std::move (l));
3531  }
3532 #else
3533  static
3534  symbol_type
3536  {
3537  return symbol_type (token::TOKEN_POOL, l);
3538  }
3539 #endif
3540 #if 201103L <= YY_CPLUSPLUS
3541  static
3542  symbol_type
3543  make_USER_CONTEXT (location_type l)
3544  {
3545  return symbol_type (token::TOKEN_USER_CONTEXT, std::move (l));
3546  }
3547 #else
3548  static
3549  symbol_type
3551  {
3552  return symbol_type (token::TOKEN_USER_CONTEXT, l);
3553  }
3554 #endif
3555 #if 201103L <= YY_CPLUSPLUS
3556  static
3557  symbol_type
3558  make_COMMENT (location_type l)
3559  {
3560  return symbol_type (token::TOKEN_COMMENT, std::move (l));
3561  }
3562 #else
3563  static
3564  symbol_type
3566  {
3567  return symbol_type (token::TOKEN_COMMENT, l);
3568  }
3569 #endif
3570 #if 201103L <= YY_CPLUSPLUS
3571  static
3572  symbol_type
3573  make_SUBNET (location_type l)
3574  {
3575  return symbol_type (token::TOKEN_SUBNET, std::move (l));
3576  }
3577 #else
3578  static
3579  symbol_type
3581  {
3582  return symbol_type (token::TOKEN_SUBNET, l);
3583  }
3584 #endif
3585 #if 201103L <= YY_CPLUSPLUS
3586  static
3587  symbol_type
3588  make_INTERFACE (location_type l)
3589  {
3590  return symbol_type (token::TOKEN_INTERFACE, std::move (l));
3591  }
3592 #else
3593  static
3594  symbol_type
3596  {
3597  return symbol_type (token::TOKEN_INTERFACE, l);
3598  }
3599 #endif
3600 #if 201103L <= YY_CPLUSPLUS
3601  static
3602  symbol_type
3603  make_ID (location_type l)
3604  {
3605  return symbol_type (token::TOKEN_ID, std::move (l));
3606  }
3607 #else
3608  static
3609  symbol_type
3611  {
3612  return symbol_type (token::TOKEN_ID, l);
3613  }
3614 #endif
3615 #if 201103L <= YY_CPLUSPLUS
3616  static
3617  symbol_type
3618  make_RESERVATION_MODE (location_type l)
3619  {
3620  return symbol_type (token::TOKEN_RESERVATION_MODE, std::move (l));
3621  }
3622 #else
3623  static
3624  symbol_type
3626  {
3627  return symbol_type (token::TOKEN_RESERVATION_MODE, l);
3628  }
3629 #endif
3630 #if 201103L <= YY_CPLUSPLUS
3631  static
3632  symbol_type
3633  make_DISABLED (location_type l)
3634  {
3635  return symbol_type (token::TOKEN_DISABLED, std::move (l));
3636  }
3637 #else
3638  static
3639  symbol_type
3641  {
3642  return symbol_type (token::TOKEN_DISABLED, l);
3643  }
3644 #endif
3645 #if 201103L <= YY_CPLUSPLUS
3646  static
3647  symbol_type
3648  make_OUT_OF_POOL (location_type l)
3649  {
3650  return symbol_type (token::TOKEN_OUT_OF_POOL, std::move (l));
3651  }
3652 #else
3653  static
3654  symbol_type
3656  {
3657  return symbol_type (token::TOKEN_OUT_OF_POOL, l);
3658  }
3659 #endif
3660 #if 201103L <= YY_CPLUSPLUS
3661  static
3662  symbol_type
3663  make_GLOBAL (location_type l)
3664  {
3665  return symbol_type (token::TOKEN_GLOBAL, std::move (l));
3666  }
3667 #else
3668  static
3669  symbol_type
3671  {
3672  return symbol_type (token::TOKEN_GLOBAL, l);
3673  }
3674 #endif
3675 #if 201103L <= YY_CPLUSPLUS
3676  static
3677  symbol_type
3678  make_ALL (location_type l)
3679  {
3680  return symbol_type (token::TOKEN_ALL, std::move (l));
3681  }
3682 #else
3683  static
3684  symbol_type
3686  {
3687  return symbol_type (token::TOKEN_ALL, l);
3688  }
3689 #endif
3690 #if 201103L <= YY_CPLUSPLUS
3691  static
3692  symbol_type
3693  make_RESERVATIONS_GLOBAL (location_type l)
3694  {
3695  return symbol_type (token::TOKEN_RESERVATIONS_GLOBAL, std::move (l));
3696  }
3697 #else
3698  static
3699  symbol_type
3701  {
3702  return symbol_type (token::TOKEN_RESERVATIONS_GLOBAL, l);
3703  }
3704 #endif
3705 #if 201103L <= YY_CPLUSPLUS
3706  static
3707  symbol_type
3708  make_RESERVATIONS_IN_SUBNET (location_type l)
3709  {
3710  return symbol_type (token::TOKEN_RESERVATIONS_IN_SUBNET, std::move (l));
3711  }
3712 #else
3713  static
3714  symbol_type
3716  {
3717  return symbol_type (token::TOKEN_RESERVATIONS_IN_SUBNET, l);
3718  }
3719 #endif
3720 #if 201103L <= YY_CPLUSPLUS
3721  static
3722  symbol_type
3723  make_RESERVATIONS_OUT_OF_POOL (location_type l)
3724  {
3725  return symbol_type (token::TOKEN_RESERVATIONS_OUT_OF_POOL, std::move (l));
3726  }
3727 #else
3728  static
3729  symbol_type
3731  {
3732  return symbol_type (token::TOKEN_RESERVATIONS_OUT_OF_POOL, l);
3733  }
3734 #endif
3735 #if 201103L <= YY_CPLUSPLUS
3736  static
3737  symbol_type
3738  make_HOST_RESERVATION_IDENTIFIERS (location_type l)
3739  {
3740  return symbol_type (token::TOKEN_HOST_RESERVATION_IDENTIFIERS, std::move (l));
3741  }
3742 #else
3743  static
3744  symbol_type
3746  {
3747  return symbol_type (token::TOKEN_HOST_RESERVATION_IDENTIFIERS, l);
3748  }
3749 #endif
3750 #if 201103L <= YY_CPLUSPLUS
3751  static
3752  symbol_type
3753  make_CLIENT_CLASSES (location_type l)
3754  {
3755  return symbol_type (token::TOKEN_CLIENT_CLASSES, std::move (l));
3756  }
3757 #else
3758  static
3759  symbol_type
3761  {
3762  return symbol_type (token::TOKEN_CLIENT_CLASSES, l);
3763  }
3764 #endif
3765 #if 201103L <= YY_CPLUSPLUS
3766  static
3767  symbol_type
3768  make_REQUIRE_CLIENT_CLASSES (location_type l)
3769  {
3770  return symbol_type (token::TOKEN_REQUIRE_CLIENT_CLASSES, std::move (l));
3771  }
3772 #else
3773  static
3774  symbol_type
3776  {
3777  return symbol_type (token::TOKEN_REQUIRE_CLIENT_CLASSES, l);
3778  }
3779 #endif
3780 #if 201103L <= YY_CPLUSPLUS
3781  static
3782  symbol_type
3783  make_TEST (location_type l)
3784  {
3785  return symbol_type (token::TOKEN_TEST, std::move (l));
3786  }
3787 #else
3788  static
3789  symbol_type
3791  {
3792  return symbol_type (token::TOKEN_TEST, l);
3793  }
3794 #endif
3795 #if 201103L <= YY_CPLUSPLUS
3796  static
3797  symbol_type
3798  make_TEMPLATE_TEST (location_type l)
3799  {
3800  return symbol_type (token::TOKEN_TEMPLATE_TEST, std::move (l));
3801  }
3802 #else
3803  static
3804  symbol_type
3806  {
3807  return symbol_type (token::TOKEN_TEMPLATE_TEST, l);
3808  }
3809 #endif
3810 #if 201103L <= YY_CPLUSPLUS
3811  static
3812  symbol_type
3813  make_ONLY_IF_REQUIRED (location_type l)
3814  {
3815  return symbol_type (token::TOKEN_ONLY_IF_REQUIRED, std::move (l));
3816  }
3817 #else
3818  static
3819  symbol_type
3821  {
3822  return symbol_type (token::TOKEN_ONLY_IF_REQUIRED, l);
3823  }
3824 #endif
3825 #if 201103L <= YY_CPLUSPLUS
3826  static
3827  symbol_type
3828  make_CLIENT_CLASS (location_type l)
3829  {
3830  return symbol_type (token::TOKEN_CLIENT_CLASS, std::move (l));
3831  }
3832 #else
3833  static
3834  symbol_type
3836  {
3837  return symbol_type (token::TOKEN_CLIENT_CLASS, l);
3838  }
3839 #endif
3840 #if 201103L <= YY_CPLUSPLUS
3841  static
3842  symbol_type
3843  make_POOL_ID (location_type l)
3844  {
3845  return symbol_type (token::TOKEN_POOL_ID, std::move (l));
3846  }
3847 #else
3848  static
3849  symbol_type
3851  {
3852  return symbol_type (token::TOKEN_POOL_ID, l);
3853  }
3854 #endif
3855 #if 201103L <= YY_CPLUSPLUS
3856  static
3857  symbol_type
3858  make_RESERVATIONS (location_type l)
3859  {
3860  return symbol_type (token::TOKEN_RESERVATIONS, std::move (l));
3861  }
3862 #else
3863  static
3864  symbol_type
3866  {
3867  return symbol_type (token::TOKEN_RESERVATIONS, l);
3868  }
3869 #endif
3870 #if 201103L <= YY_CPLUSPLUS
3871  static
3872  symbol_type
3873  make_DUID (location_type l)
3874  {
3875  return symbol_type (token::TOKEN_DUID, std::move (l));
3876  }
3877 #else
3878  static
3879  symbol_type
3881  {
3882  return symbol_type (token::TOKEN_DUID, l);
3883  }
3884 #endif
3885 #if 201103L <= YY_CPLUSPLUS
3886  static
3887  symbol_type
3888  make_HW_ADDRESS (location_type l)
3889  {
3890  return symbol_type (token::TOKEN_HW_ADDRESS, std::move (l));
3891  }
3892 #else
3893  static
3894  symbol_type
3896  {
3897  return symbol_type (token::TOKEN_HW_ADDRESS, l);
3898  }
3899 #endif
3900 #if 201103L <= YY_CPLUSPLUS
3901  static
3902  symbol_type
3903  make_CIRCUIT_ID (location_type l)
3904  {
3905  return symbol_type (token::TOKEN_CIRCUIT_ID, std::move (l));
3906  }
3907 #else
3908  static
3909  symbol_type
3911  {
3912  return symbol_type (token::TOKEN_CIRCUIT_ID, l);
3913  }
3914 #endif
3915 #if 201103L <= YY_CPLUSPLUS
3916  static
3917  symbol_type
3918  make_CLIENT_ID (location_type l)
3919  {
3920  return symbol_type (token::TOKEN_CLIENT_ID, std::move (l));
3921  }
3922 #else
3923  static
3924  symbol_type
3926  {
3927  return symbol_type (token::TOKEN_CLIENT_ID, l);
3928  }
3929 #endif
3930 #if 201103L <= YY_CPLUSPLUS
3931  static
3932  symbol_type
3933  make_HOSTNAME (location_type l)
3934  {
3935  return symbol_type (token::TOKEN_HOSTNAME, std::move (l));
3936  }
3937 #else
3938  static
3939  symbol_type
3941  {
3942  return symbol_type (token::TOKEN_HOSTNAME, l);
3943  }
3944 #endif
3945 #if 201103L <= YY_CPLUSPLUS
3946  static
3947  symbol_type
3948  make_FLEX_ID (location_type l)
3949  {
3950  return symbol_type (token::TOKEN_FLEX_ID, std::move (l));
3951  }
3952 #else
3953  static
3954  symbol_type
3956  {
3957  return symbol_type (token::TOKEN_FLEX_ID, l);
3958  }
3959 #endif
3960 #if 201103L <= YY_CPLUSPLUS
3961  static
3962  symbol_type
3963  make_RELAY (location_type l)
3964  {
3965  return symbol_type (token::TOKEN_RELAY, std::move (l));
3966  }
3967 #else
3968  static
3969  symbol_type
3971  {
3972  return symbol_type (token::TOKEN_RELAY, l);
3973  }
3974 #endif
3975 #if 201103L <= YY_CPLUSPLUS
3976  static
3977  symbol_type
3978  make_IP_ADDRESS (location_type l)
3979  {
3980  return symbol_type (token::TOKEN_IP_ADDRESS, std::move (l));
3981  }
3982 #else
3983  static
3984  symbol_type
3986  {
3987  return symbol_type (token::TOKEN_IP_ADDRESS, l);
3988  }
3989 #endif
3990 #if 201103L <= YY_CPLUSPLUS
3991  static
3992  symbol_type
3993  make_IP_ADDRESSES (location_type l)
3994  {
3995  return symbol_type (token::TOKEN_IP_ADDRESSES, std::move (l));
3996  }
3997 #else
3998  static
3999  symbol_type
4001  {
4002  return symbol_type (token::TOKEN_IP_ADDRESSES, l);
4003  }
4004 #endif
4005 #if 201103L <= YY_CPLUSPLUS
4006  static
4007  symbol_type
4008  make_HOOKS_LIBRARIES (location_type l)
4009  {
4010  return symbol_type (token::TOKEN_HOOKS_LIBRARIES, std::move (l));
4011  }
4012 #else
4013  static
4014  symbol_type
4016  {
4017  return symbol_type (token::TOKEN_HOOKS_LIBRARIES, l);
4018  }
4019 #endif
4020 #if 201103L <= YY_CPLUSPLUS
4021  static
4022  symbol_type
4023  make_LIBRARY (location_type l)
4024  {
4025  return symbol_type (token::TOKEN_LIBRARY, std::move (l));
4026  }
4027 #else
4028  static
4029  symbol_type
4031  {
4032  return symbol_type (token::TOKEN_LIBRARY, l);
4033  }
4034 #endif
4035 #if 201103L <= YY_CPLUSPLUS
4036  static
4037  symbol_type
4038  make_PARAMETERS (location_type l)
4039  {
4040  return symbol_type (token::TOKEN_PARAMETERS, std::move (l));
4041  }
4042 #else
4043  static
4044  symbol_type
4046  {
4047  return symbol_type (token::TOKEN_PARAMETERS, l);
4048  }
4049 #endif
4050 #if 201103L <= YY_CPLUSPLUS
4051  static
4052  symbol_type
4053  make_EXPIRED_LEASES_PROCESSING (location_type l)
4054  {
4055  return symbol_type (token::TOKEN_EXPIRED_LEASES_PROCESSING, std::move (l));
4056  }
4057 #else
4058  static
4059  symbol_type
4061  {
4062  return symbol_type (token::TOKEN_EXPIRED_LEASES_PROCESSING, l);
4063  }
4064 #endif
4065 #if 201103L <= YY_CPLUSPLUS
4066  static
4067  symbol_type
4068  make_RECLAIM_TIMER_WAIT_TIME (location_type l)
4069  {
4070  return symbol_type (token::TOKEN_RECLAIM_TIMER_WAIT_TIME, std::move (l));
4071  }
4072 #else
4073  static
4074  symbol_type
4076  {
4077  return symbol_type (token::TOKEN_RECLAIM_TIMER_WAIT_TIME, l);
4078  }
4079 #endif
4080 #if 201103L <= YY_CPLUSPLUS
4081  static
4082  symbol_type
4083  make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (location_type l)
4084  {
4085  return symbol_type (token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME, std::move (l));
4086  }
4087 #else
4088  static
4089  symbol_type
4091  {
4092  return symbol_type (token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME, l);
4093  }
4094 #endif
4095 #if 201103L <= YY_CPLUSPLUS
4096  static
4097  symbol_type
4098  make_HOLD_RECLAIMED_TIME (location_type l)
4099  {
4100  return symbol_type (token::TOKEN_HOLD_RECLAIMED_TIME, std::move (l));
4101  }
4102 #else
4103  static
4104  symbol_type
4106  {
4107  return symbol_type (token::TOKEN_HOLD_RECLAIMED_TIME, l);
4108  }
4109 #endif
4110 #if 201103L <= YY_CPLUSPLUS
4111  static
4112  symbol_type
4113  make_MAX_RECLAIM_LEASES (location_type l)
4114  {
4115  return symbol_type (token::TOKEN_MAX_RECLAIM_LEASES, std::move (l));
4116  }
4117 #else
4118  static
4119  symbol_type
4121  {
4122  return symbol_type (token::TOKEN_MAX_RECLAIM_LEASES, l);
4123  }
4124 #endif
4125 #if 201103L <= YY_CPLUSPLUS
4126  static
4127  symbol_type
4128  make_MAX_RECLAIM_TIME (location_type l)
4129  {
4130  return symbol_type (token::TOKEN_MAX_RECLAIM_TIME, std::move (l));
4131  }
4132 #else
4133  static
4134  symbol_type
4136  {
4137  return symbol_type (token::TOKEN_MAX_RECLAIM_TIME, l);
4138  }
4139 #endif
4140 #if 201103L <= YY_CPLUSPLUS
4141  static
4142  symbol_type
4143  make_UNWARNED_RECLAIM_CYCLES (location_type l)
4144  {
4145  return symbol_type (token::TOKEN_UNWARNED_RECLAIM_CYCLES, std::move (l));
4146  }
4147 #else
4148  static
4149  symbol_type
4151  {
4152  return symbol_type (token::TOKEN_UNWARNED_RECLAIM_CYCLES, l);
4153  }
4154 #endif
4155 #if 201103L <= YY_CPLUSPLUS
4156  static
4157  symbol_type
4158  make_DHCP4O6_PORT (location_type l)
4159  {
4160  return symbol_type (token::TOKEN_DHCP4O6_PORT, std::move (l));
4161  }
4162 #else
4163  static
4164  symbol_type
4166  {
4167  return symbol_type (token::TOKEN_DHCP4O6_PORT, l);
4168  }
4169 #endif
4170 #if 201103L <= YY_CPLUSPLUS
4171  static
4172  symbol_type
4173  make_DHCP_MULTI_THREADING (location_type l)
4174  {
4175  return symbol_type (token::TOKEN_DHCP_MULTI_THREADING, std::move (l));
4176  }
4177 #else
4178  static
4179  symbol_type
4181  {
4182  return symbol_type (token::TOKEN_DHCP_MULTI_THREADING, l);
4183  }
4184 #endif
4185 #if 201103L <= YY_CPLUSPLUS
4186  static
4187  symbol_type
4188  make_ENABLE_MULTI_THREADING (location_type l)
4189  {
4190  return symbol_type (token::TOKEN_ENABLE_MULTI_THREADING, std::move (l));
4191  }
4192 #else
4193  static
4194  symbol_type
4196  {
4197  return symbol_type (token::TOKEN_ENABLE_MULTI_THREADING, l);
4198  }
4199 #endif
4200 #if 201103L <= YY_CPLUSPLUS
4201  static
4202  symbol_type
4203  make_THREAD_POOL_SIZE (location_type l)
4204  {
4205  return symbol_type (token::TOKEN_THREAD_POOL_SIZE, std::move (l));
4206  }
4207 #else
4208  static
4209  symbol_type
4211  {
4212  return symbol_type (token::TOKEN_THREAD_POOL_SIZE, l);
4213  }
4214 #endif
4215 #if 201103L <= YY_CPLUSPLUS
4216  static
4217  symbol_type
4218  make_PACKET_QUEUE_SIZE (location_type l)
4219  {
4220  return symbol_type (token::TOKEN_PACKET_QUEUE_SIZE, std::move (l));
4221  }
4222 #else
4223  static
4224  symbol_type
4226  {
4227  return symbol_type (token::TOKEN_PACKET_QUEUE_SIZE, l);
4228  }
4229 #endif
4230 #if 201103L <= YY_CPLUSPLUS
4231  static
4232  symbol_type
4233  make_CONTROL_SOCKET (location_type l)
4234  {
4235  return symbol_type (token::TOKEN_CONTROL_SOCKET, std::move (l));
4236  }
4237 #else
4238  static
4239  symbol_type
4241  {
4242  return symbol_type (token::TOKEN_CONTROL_SOCKET, l);
4243  }
4244 #endif
4245 #if 201103L <= YY_CPLUSPLUS
4246  static
4247  symbol_type
4248  make_SOCKET_TYPE (location_type l)
4249  {
4250  return symbol_type (token::TOKEN_SOCKET_TYPE, std::move (l));
4251  }
4252 #else
4253  static
4254  symbol_type
4256  {
4257  return symbol_type (token::TOKEN_SOCKET_TYPE, l);
4258  }
4259 #endif
4260 #if 201103L <= YY_CPLUSPLUS
4261  static
4262  symbol_type
4263  make_SOCKET_NAME (location_type l)
4264  {
4265  return symbol_type (token::TOKEN_SOCKET_NAME, std::move (l));
4266  }
4267 #else
4268  static
4269  symbol_type
4271  {
4272  return symbol_type (token::TOKEN_SOCKET_NAME, l);
4273  }
4274 #endif
4275 #if 201103L <= YY_CPLUSPLUS
4276  static
4277  symbol_type
4278  make_DHCP_QUEUE_CONTROL (location_type l)
4279  {
4280  return symbol_type (token::TOKEN_DHCP_QUEUE_CONTROL, std::move (l));
4281  }
4282 #else
4283  static
4284  symbol_type
4286  {
4287  return symbol_type (token::TOKEN_DHCP_QUEUE_CONTROL, l);
4288  }
4289 #endif
4290 #if 201103L <= YY_CPLUSPLUS
4291  static
4292  symbol_type
4293  make_ENABLE_QUEUE (location_type l)
4294  {
4295  return symbol_type (token::TOKEN_ENABLE_QUEUE, std::move (l));
4296  }
4297 #else
4298  static
4299  symbol_type
4301  {
4302  return symbol_type (token::TOKEN_ENABLE_QUEUE, l);
4303  }
4304 #endif
4305 #if 201103L <= YY_CPLUSPLUS
4306  static
4307  symbol_type
4308  make_QUEUE_TYPE (location_type l)
4309  {
4310  return symbol_type (token::TOKEN_QUEUE_TYPE, std::move (l));
4311  }
4312 #else
4313  static
4314  symbol_type
4316  {
4317  return symbol_type (token::TOKEN_QUEUE_TYPE, l);
4318  }
4319 #endif
4320 #if 201103L <= YY_CPLUSPLUS
4321  static
4322  symbol_type
4323  make_CAPACITY (location_type l)
4324  {
4325  return symbol_type (token::TOKEN_CAPACITY, std::move (l));
4326  }
4327 #else
4328  static
4329  symbol_type
4331  {
4332  return symbol_type (token::TOKEN_CAPACITY, l);
4333  }
4334 #endif
4335 #if 201103L <= YY_CPLUSPLUS
4336  static
4337  symbol_type
4338  make_DHCP_DDNS (location_type l)
4339  {
4340  return symbol_type (token::TOKEN_DHCP_DDNS, std::move (l));
4341  }
4342 #else
4343  static
4344  symbol_type
4346  {
4347  return symbol_type (token::TOKEN_DHCP_DDNS, l);
4348  }
4349 #endif
4350 #if 201103L <= YY_CPLUSPLUS
4351  static
4352  symbol_type
4353  make_ENABLE_UPDATES (location_type l)
4354  {
4355  return symbol_type (token::TOKEN_ENABLE_UPDATES, std::move (l));
4356  }
4357 #else
4358  static
4359  symbol_type
4361  {
4362  return symbol_type (token::TOKEN_ENABLE_UPDATES, l);
4363  }
4364 #endif
4365 #if 201103L <= YY_CPLUSPLUS
4366  static
4367  symbol_type
4368  make_QUALIFYING_SUFFIX (location_type l)
4369  {
4370  return symbol_type (token::TOKEN_QUALIFYING_SUFFIX, std::move (l));
4371  }
4372 #else
4373  static
4374  symbol_type
4376  {
4377  return symbol_type (token::TOKEN_QUALIFYING_SUFFIX, l);
4378  }
4379 #endif
4380 #if 201103L <= YY_CPLUSPLUS
4381  static
4382  symbol_type
4383  make_SERVER_IP (location_type l)
4384  {
4385  return symbol_type (token::TOKEN_SERVER_IP, std::move (l));
4386  }
4387 #else
4388  static
4389  symbol_type
4391  {
4392  return symbol_type (token::TOKEN_SERVER_IP, l);
4393  }
4394 #endif
4395 #if 201103L <= YY_CPLUSPLUS
4396  static
4397  symbol_type
4398  make_SERVER_PORT (location_type l)
4399  {
4400  return symbol_type (token::TOKEN_SERVER_PORT, std::move (l));
4401  }
4402 #else
4403  static
4404  symbol_type
4406  {
4407  return symbol_type (token::TOKEN_SERVER_PORT, l);
4408  }
4409 #endif
4410 #if 201103L <= YY_CPLUSPLUS
4411  static
4412  symbol_type
4413  make_SENDER_IP (location_type l)
4414  {
4415  return symbol_type (token::TOKEN_SENDER_IP, std::move (l));
4416  }
4417 #else
4418  static
4419  symbol_type
4421  {
4422  return symbol_type (token::TOKEN_SENDER_IP, l);
4423  }
4424 #endif
4425 #if 201103L <= YY_CPLUSPLUS
4426  static
4427  symbol_type
4428  make_SENDER_PORT (location_type l)
4429  {
4430  return symbol_type (token::TOKEN_SENDER_PORT, std::move (l));
4431  }
4432 #else
4433  static
4434  symbol_type
4436  {
4437  return symbol_type (token::TOKEN_SENDER_PORT, l);
4438  }
4439 #endif
4440 #if 201103L <= YY_CPLUSPLUS
4441  static
4442  symbol_type
4443  make_MAX_QUEUE_SIZE (location_type l)
4444  {
4445  return symbol_type (token::TOKEN_MAX_QUEUE_SIZE, std::move (l));
4446  }
4447 #else
4448  static
4449  symbol_type
4451  {
4452  return symbol_type (token::TOKEN_MAX_QUEUE_SIZE, l);
4453  }
4454 #endif
4455 #if 201103L <= YY_CPLUSPLUS
4456  static
4457  symbol_type
4458  make_NCR_PROTOCOL (location_type l)
4459  {
4460  return symbol_type (token::TOKEN_NCR_PROTOCOL, std::move (l));
4461  }
4462 #else
4463  static
4464  symbol_type
4466  {
4467  return symbol_type (token::TOKEN_NCR_PROTOCOL, l);
4468  }
4469 #endif
4470 #if 201103L <= YY_CPLUSPLUS
4471  static
4472  symbol_type
4473  make_NCR_FORMAT (location_type l)
4474  {
4475  return symbol_type (token::TOKEN_NCR_FORMAT, std::move (l));
4476  }
4477 #else
4478  static
4479  symbol_type
4481  {
4482  return symbol_type (token::TOKEN_NCR_FORMAT, l);
4483  }
4484 #endif
4485 #if 201103L <= YY_CPLUSPLUS
4486  static
4487  symbol_type
4488  make_OVERRIDE_NO_UPDATE (location_type l)
4489  {
4490  return symbol_type (token::TOKEN_OVERRIDE_NO_UPDATE, std::move (l));
4491  }
4492 #else
4493  static
4494  symbol_type
4496  {
4497  return symbol_type (token::TOKEN_OVERRIDE_NO_UPDATE, l);
4498  }
4499 #endif
4500 #if 201103L <= YY_CPLUSPLUS
4501  static
4502  symbol_type
4503  make_OVERRIDE_CLIENT_UPDATE (location_type l)
4504  {
4505  return symbol_type (token::TOKEN_OVERRIDE_CLIENT_UPDATE, std::move (l));
4506  }
4507 #else
4508  static
4509  symbol_type
4511  {
4512  return symbol_type (token::TOKEN_OVERRIDE_CLIENT_UPDATE, l);
4513  }
4514 #endif
4515 #if 201103L <= YY_CPLUSPLUS
4516  static
4517  symbol_type
4518  make_REPLACE_CLIENT_NAME (location_type l)
4519  {
4520  return symbol_type (token::TOKEN_REPLACE_CLIENT_NAME, std::move (l));
4521  }
4522 #else
4523  static
4524  symbol_type
4526  {
4527  return symbol_type (token::TOKEN_REPLACE_CLIENT_NAME, l);
4528  }
4529 #endif
4530 #if 201103L <= YY_CPLUSPLUS
4531  static
4532  symbol_type
4533  make_GENERATED_PREFIX (location_type l)
4534  {
4535  return symbol_type (token::TOKEN_GENERATED_PREFIX, std::move (l));
4536  }
4537 #else
4538  static
4539  symbol_type
4541  {
4542  return symbol_type (token::TOKEN_GENERATED_PREFIX, l);
4543  }
4544 #endif
4545 #if 201103L <= YY_CPLUSPLUS
4546  static
4547  symbol_type
4548  make_TCP (location_type l)
4549  {
4550  return symbol_type (token::TOKEN_TCP, std::move (l));
4551  }
4552 #else
4553  static
4554  symbol_type
4556  {
4557  return symbol_type (token::TOKEN_TCP, l);
4558  }
4559 #endif
4560 #if 201103L <= YY_CPLUSPLUS
4561  static
4562  symbol_type
4563  make_JSON (location_type l)
4564  {
4565  return symbol_type (token::TOKEN_JSON, std::move (l));
4566  }
4567 #else
4568  static
4569  symbol_type
4571  {
4572  return symbol_type (token::TOKEN_JSON, l);
4573  }
4574 #endif
4575 #if 201103L <= YY_CPLUSPLUS
4576  static
4577  symbol_type
4578  make_WHEN_PRESENT (location_type l)
4579  {
4580  return symbol_type (token::TOKEN_WHEN_PRESENT, std::move (l));
4581  }
4582 #else
4583  static
4584  symbol_type
4586  {
4587  return symbol_type (token::TOKEN_WHEN_PRESENT, l);
4588  }
4589 #endif
4590 #if 201103L <= YY_CPLUSPLUS
4591  static
4592  symbol_type
4593  make_NEVER (location_type l)
4594  {
4595  return symbol_type (token::TOKEN_NEVER, std::move (l));
4596  }
4597 #else
4598  static
4599  symbol_type
4601  {
4602  return symbol_type (token::TOKEN_NEVER, l);
4603  }
4604 #endif
4605 #if 201103L <= YY_CPLUSPLUS
4606  static
4607  symbol_type
4608  make_ALWAYS (location_type l)
4609  {
4610  return symbol_type (token::TOKEN_ALWAYS, std::move (l));
4611  }
4612 #else
4613  static
4614  symbol_type
4616  {
4617  return symbol_type (token::TOKEN_ALWAYS, l);
4618  }
4619 #endif
4620 #if 201103L <= YY_CPLUSPLUS
4621  static
4622  symbol_type
4623  make_WHEN_NOT_PRESENT (location_type l)
4624  {
4625  return symbol_type (token::TOKEN_WHEN_NOT_PRESENT, std::move (l));
4626  }
4627 #else
4628  static
4629  symbol_type
4631  {
4632  return symbol_type (token::TOKEN_WHEN_NOT_PRESENT, l);
4633  }
4634 #endif
4635 #if 201103L <= YY_CPLUSPLUS
4636  static
4637  symbol_type
4638  make_HOSTNAME_CHAR_SET (location_type l)
4639  {
4640  return symbol_type (token::TOKEN_HOSTNAME_CHAR_SET, std::move (l));
4641  }
4642 #else
4643  static
4644  symbol_type
4646  {
4647  return symbol_type (token::TOKEN_HOSTNAME_CHAR_SET, l);
4648  }
4649 #endif
4650 #if 201103L <= YY_CPLUSPLUS
4651  static
4652  symbol_type
4653  make_HOSTNAME_CHAR_REPLACEMENT (location_type l)
4654  {
4655  return symbol_type (token::TOKEN_HOSTNAME_CHAR_REPLACEMENT, std::move (l));
4656  }
4657 #else
4658  static
4659  symbol_type
4661  {
4662  return symbol_type (token::TOKEN_HOSTNAME_CHAR_REPLACEMENT, l);
4663  }
4664 #endif
4665 #if 201103L <= YY_CPLUSPLUS
4666  static
4667  symbol_type
4668  make_EARLY_GLOBAL_RESERVATIONS_LOOKUP (location_type l)
4669  {
4670  return symbol_type (token::TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP, std::move (l));
4671  }
4672 #else
4673  static
4674  symbol_type
4676  {
4677  return symbol_type (token::TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP, l);
4678  }
4679 #endif
4680 #if 201103L <= YY_CPLUSPLUS
4681  static
4682  symbol_type
4683  make_IP_RESERVATIONS_UNIQUE (location_type l)
4684  {
4685  return symbol_type (token::TOKEN_IP_RESERVATIONS_UNIQUE, std::move (l));
4686  }
4687 #else
4688  static
4689  symbol_type
4691  {
4692  return symbol_type (token::TOKEN_IP_RESERVATIONS_UNIQUE, l);
4693  }
4694 #endif
4695 #if 201103L <= YY_CPLUSPLUS
4696  static
4697  symbol_type
4698  make_RESERVATIONS_LOOKUP_FIRST (location_type l)
4699  {
4700  return symbol_type (token::TOKEN_RESERVATIONS_LOOKUP_FIRST, std::move (l));
4701  }
4702 #else
4703  static
4704  symbol_type
4706  {
4707  return symbol_type (token::TOKEN_RESERVATIONS_LOOKUP_FIRST, l);
4708  }
4709 #endif
4710 #if 201103L <= YY_CPLUSPLUS
4711  static
4712  symbol_type
4713  make_LOGGERS (location_type l)
4714  {
4715  return symbol_type (token::TOKEN_LOGGERS, std::move (l));
4716  }
4717 #else
4718  static
4719  symbol_type
4721  {
4722  return symbol_type (token::TOKEN_LOGGERS, l);
4723  }
4724 #endif
4725 #if 201103L <= YY_CPLUSPLUS
4726  static
4727  symbol_type
4728  make_OUTPUT_OPTIONS (location_type l)
4729  {
4730  return symbol_type (token::TOKEN_OUTPUT_OPTIONS, std::move (l));
4731  }
4732 #else
4733  static
4734  symbol_type
4736  {
4737  return symbol_type (token::TOKEN_OUTPUT_OPTIONS, l);
4738  }
4739 #endif
4740 #if 201103L <= YY_CPLUSPLUS
4741  static
4742  symbol_type
4743  make_OUTPUT (location_type l)
4744  {
4745  return symbol_type (token::TOKEN_OUTPUT, std::move (l));
4746  }
4747 #else
4748  static
4749  symbol_type
4751  {
4752  return symbol_type (token::TOKEN_OUTPUT, l);
4753  }
4754 #endif
4755 #if 201103L <= YY_CPLUSPLUS
4756  static
4757  symbol_type
4758  make_DEBUGLEVEL (location_type l)
4759  {
4760  return symbol_type (token::TOKEN_DEBUGLEVEL, std::move (l));
4761  }
4762 #else
4763  static
4764  symbol_type
4766  {
4767  return symbol_type (token::TOKEN_DEBUGLEVEL, l);
4768  }
4769 #endif
4770 #if 201103L <= YY_CPLUSPLUS
4771  static
4772  symbol_type
4773  make_SEVERITY (location_type l)
4774  {
4775  return symbol_type (token::TOKEN_SEVERITY, std::move (l));
4776  }
4777 #else
4778  static
4779  symbol_type
4781  {
4782  return symbol_type (token::TOKEN_SEVERITY, l);
4783  }
4784 #endif
4785 #if 201103L <= YY_CPLUSPLUS
4786  static
4787  symbol_type
4788  make_FLUSH (location_type l)
4789  {
4790  return symbol_type (token::TOKEN_FLUSH, std::move (l));
4791  }
4792 #else
4793  static
4794  symbol_type
4796  {
4797  return symbol_type (token::TOKEN_FLUSH, l);
4798  }
4799 #endif
4800 #if 201103L <= YY_CPLUSPLUS
4801  static
4802  symbol_type
4803  make_MAXSIZE (location_type l)
4804  {
4805  return symbol_type (token::TOKEN_MAXSIZE, std::move (l));
4806  }
4807 #else
4808  static
4809  symbol_type
4811  {
4812  return symbol_type (token::TOKEN_MAXSIZE, l);
4813  }
4814 #endif
4815 #if 201103L <= YY_CPLUSPLUS
4816  static
4817  symbol_type
4818  make_MAXVER (location_type l)
4819  {
4820  return symbol_type (token::TOKEN_MAXVER, std::move (l));
4821  }
4822 #else
4823  static
4824  symbol_type
4826  {
4827  return symbol_type (token::TOKEN_MAXVER, l);
4828  }
4829 #endif
4830 #if 201103L <= YY_CPLUSPLUS
4831  static
4832  symbol_type
4833  make_PATTERN (location_type l)
4834  {
4835  return symbol_type (token::TOKEN_PATTERN, std::move (l));
4836  }
4837 #else
4838  static
4839  symbol_type
4841  {
4842  return symbol_type (token::TOKEN_PATTERN, l);
4843  }
4844 #endif
4845 #if 201103L <= YY_CPLUSPLUS
4846  static
4847  symbol_type
4848  make_COMPATIBILITY (location_type l)
4849  {
4850  return symbol_type (token::TOKEN_COMPATIBILITY, std::move (l));
4851  }
4852 #else
4853  static
4854  symbol_type
4856  {
4857  return symbol_type (token::TOKEN_COMPATIBILITY, l);
4858  }
4859 #endif
4860 #if 201103L <= YY_CPLUSPLUS
4861  static
4862  symbol_type
4863  make_LENIENT_OPTION_PARSING (location_type l)
4864  {
4865  return symbol_type (token::TOKEN_LENIENT_OPTION_PARSING, std::move (l));
4866  }
4867 #else
4868  static
4869  symbol_type
4871  {
4872  return symbol_type (token::TOKEN_LENIENT_OPTION_PARSING, l);
4873  }
4874 #endif
4875 #if 201103L <= YY_CPLUSPLUS
4876  static
4877  symbol_type
4878  make_IGNORE_DHCP_SERVER_ID (location_type l)
4879  {
4880  return symbol_type (token::TOKEN_IGNORE_DHCP_SERVER_ID, std::move (l));
4881  }
4882 #else
4883  static
4884  symbol_type
4886  {
4887  return symbol_type (token::TOKEN_IGNORE_DHCP_SERVER_ID, l);
4888  }
4889 #endif
4890 #if 201103L <= YY_CPLUSPLUS
4891  static
4892  symbol_type
4893  make_IGNORE_RAI_LINK_SEL (location_type l)
4894  {
4895  return symbol_type (token::TOKEN_IGNORE_RAI_LINK_SEL, std::move (l));
4896  }
4897 #else
4898  static
4899  symbol_type
4901  {
4902  return symbol_type (token::TOKEN_IGNORE_RAI_LINK_SEL, l);
4903  }
4904 #endif
4905 #if 201103L <= YY_CPLUSPLUS
4906  static
4907  symbol_type
4908  make_EXCLUDE_FIRST_LAST_24 (location_type l)
4909  {
4910  return symbol_type (token::TOKEN_EXCLUDE_FIRST_LAST_24, std::move (l));
4911  }
4912 #else
4913  static
4914  symbol_type
4916  {
4917  return symbol_type (token::TOKEN_EXCLUDE_FIRST_LAST_24, l);
4918  }
4919 #endif
4920 #if 201103L <= YY_CPLUSPLUS
4921  static
4922  symbol_type
4923  make_TOPLEVEL_JSON (location_type l)
4924  {
4925  return symbol_type (token::TOKEN_TOPLEVEL_JSON, std::move (l));
4926  }
4927 #else
4928  static
4929  symbol_type
4931  {
4932  return symbol_type (token::TOKEN_TOPLEVEL_JSON, l);
4933  }
4934 #endif
4935 #if 201103L <= YY_CPLUSPLUS
4936  static
4937  symbol_type
4938  make_TOPLEVEL_DHCP4 (location_type l)
4939  {
4940  return symbol_type (token::TOKEN_TOPLEVEL_DHCP4, std::move (l));
4941  }
4942 #else
4943  static
4944  symbol_type
4946  {
4947  return symbol_type (token::TOKEN_TOPLEVEL_DHCP4, l);
4948  }
4949 #endif
4950 #if 201103L <= YY_CPLUSPLUS
4951  static
4952  symbol_type
4953  make_SUB_DHCP4 (location_type l)
4954  {
4955  return symbol_type (token::TOKEN_SUB_DHCP4, std::move (l));
4956  }
4957 #else
4958  static
4959  symbol_type
4961  {
4962  return symbol_type (token::TOKEN_SUB_DHCP4, l);
4963  }
4964 #endif
4965 #if 201103L <= YY_CPLUSPLUS
4966  static
4967  symbol_type
4968  make_SUB_INTERFACES4 (location_type l)
4969  {
4970  return symbol_type (token::TOKEN_SUB_INTERFACES4, std::move (l));
4971  }
4972 #else
4973  static
4974  symbol_type
4976  {
4977  return symbol_type (token::TOKEN_SUB_INTERFACES4, l);
4978  }
4979 #endif
4980 #if 201103L <= YY_CPLUSPLUS
4981  static
4982  symbol_type
4983  make_SUB_SUBNET4 (location_type l)
4984  {
4985  return symbol_type (token::TOKEN_SUB_SUBNET4, std::move (l));
4986  }
4987 #else
4988  static
4989  symbol_type
4991  {
4992  return symbol_type (token::TOKEN_SUB_SUBNET4, l);
4993  }
4994 #endif
4995 #if 201103L <= YY_CPLUSPLUS
4996  static
4997  symbol_type
4998  make_SUB_POOL4 (location_type l)
4999  {
5000  return symbol_type (token::TOKEN_SUB_POOL4, std::move (l));
5001  }
5002 #else
5003  static
5004  symbol_type
5006  {
5007  return symbol_type (token::TOKEN_SUB_POOL4, l);
5008  }
5009 #endif
5010 #if 201103L <= YY_CPLUSPLUS
5011  static
5012  symbol_type
5013  make_SUB_RESERVATION (location_type l)
5014  {
5015  return symbol_type (token::TOKEN_SUB_RESERVATION, std::move (l));
5016  }
5017 #else
5018  static
5019  symbol_type
5021  {
5022  return symbol_type (token::TOKEN_SUB_RESERVATION, l);
5023  }
5024 #endif
5025 #if 201103L <= YY_CPLUSPLUS
5026  static
5027  symbol_type
5028  make_SUB_OPTION_DEFS (location_type l)
5029  {
5030  return symbol_type (token::TOKEN_SUB_OPTION_DEFS, std::move (l));
5031  }
5032 #else
5033  static
5034  symbol_type
5036  {
5037  return symbol_type (token::TOKEN_SUB_OPTION_DEFS, l);
5038  }
5039 #endif
5040 #if 201103L <= YY_CPLUSPLUS
5041  static
5042  symbol_type
5043  make_SUB_OPTION_DEF (location_type l)
5044  {
5045  return symbol_type (token::TOKEN_SUB_OPTION_DEF, std::move (l));
5046  }
5047 #else
5048  static
5049  symbol_type
5051  {
5052  return symbol_type (token::TOKEN_SUB_OPTION_DEF, l);
5053  }
5054 #endif
5055 #if 201103L <= YY_CPLUSPLUS
5056  static
5057  symbol_type
5058  make_SUB_OPTION_DATA (location_type l)
5059  {
5060  return symbol_type (token::TOKEN_SUB_OPTION_DATA, std::move (l));
5061  }
5062 #else
5063  static
5064  symbol_type
5066  {
5067  return symbol_type (token::TOKEN_SUB_OPTION_DATA, l);
5068  }
5069 #endif
5070 #if 201103L <= YY_CPLUSPLUS
5071  static
5072  symbol_type
5073  make_SUB_HOOKS_LIBRARY (location_type l)
5074  {
5075  return symbol_type (token::TOKEN_SUB_HOOKS_LIBRARY, std::move (l));
5076  }
5077 #else
5078  static
5079  symbol_type
5081  {
5082  return symbol_type (token::TOKEN_SUB_HOOKS_LIBRARY, l);
5083  }
5084 #endif
5085 #if 201103L <= YY_CPLUSPLUS
5086  static
5087  symbol_type
5088  make_SUB_DHCP_DDNS (location_type l)
5089  {
5090  return symbol_type (token::TOKEN_SUB_DHCP_DDNS, std::move (l));
5091  }
5092 #else
5093  static
5094  symbol_type
5096  {
5097  return symbol_type (token::TOKEN_SUB_DHCP_DDNS, l);
5098  }
5099 #endif
5100 #if 201103L <= YY_CPLUSPLUS
5101  static
5102  symbol_type
5103  make_SUB_CONFIG_CONTROL (location_type l)
5104  {
5105  return symbol_type (token::TOKEN_SUB_CONFIG_CONTROL, std::move (l));
5106  }
5107 #else
5108  static
5109  symbol_type
5111  {
5112  return symbol_type (token::TOKEN_SUB_CONFIG_CONTROL, l);
5113  }
5114 #endif
5115 #if 201103L <= YY_CPLUSPLUS
5116  static
5117  symbol_type
5118  make_STRING (std::string v, location_type l)
5119  {
5120  return symbol_type (token::TOKEN_STRING, std::move (v), std::move (l));
5121  }
5122 #else
5123  static
5124  symbol_type
5125  make_STRING (const std::string& v, const location_type& l)
5126  {
5127  return symbol_type (token::TOKEN_STRING, v, l);
5128  }
5129 #endif
5130 #if 201103L <= YY_CPLUSPLUS
5131  static
5132  symbol_type
5133  make_INTEGER (int64_t v, location_type l)
5134  {
5135  return symbol_type (token::TOKEN_INTEGER, std::move (v), std::move (l));
5136  }
5137 #else
5138  static
5139  symbol_type
5140  make_INTEGER (const int64_t& v, const location_type& l)
5141  {
5142  return symbol_type (token::TOKEN_INTEGER, v, l);
5143  }
5144 #endif
5145 #if 201103L <= YY_CPLUSPLUS
5146  static
5147  symbol_type
5148  make_FLOAT (double v, location_type l)
5149  {
5150  return symbol_type (token::TOKEN_FLOAT, std::move (v), std::move (l));
5151  }
5152 #else
5153  static
5154  symbol_type
5155  make_FLOAT (const double& v, const location_type& l)
5156  {
5157  return symbol_type (token::TOKEN_FLOAT, v, l);
5158  }
5159 #endif
5160 #if 201103L <= YY_CPLUSPLUS
5161  static
5162  symbol_type
5163  make_BOOLEAN (bool v, location_type l)
5164  {
5165  return symbol_type (token::TOKEN_BOOLEAN, std::move (v), std::move (l));
5166  }
5167 #else
5168  static
5169  symbol_type
5170  make_BOOLEAN (const bool& v, const location_type& l)
5171  {
5172  return symbol_type (token::TOKEN_BOOLEAN, v, l);
5173  }
5174 #endif
5175 
5176 
5177  class context
5178  {
5179  public:
5180  context (const Dhcp4Parser& yyparser, const symbol_type& yyla);
5181  const symbol_type& lookahead () const YY_NOEXCEPT { return yyla_; }
5182  symbol_kind_type token () const YY_NOEXCEPT { return yyla_.kind (); }
5183  const location_type& location () const YY_NOEXCEPT { return yyla_.location; }
5184 
5188  int expected_tokens (symbol_kind_type yyarg[], int yyargn) const;
5189 
5190  private:
5191  const Dhcp4Parser& yyparser_;
5192  const symbol_type& yyla_;
5193  };
5194 
5195  private:
5196 #if YY_CPLUSPLUS < 201103L
5198  Dhcp4Parser (const Dhcp4Parser&);
5200  Dhcp4Parser& operator= (const Dhcp4Parser&);
5201 #endif
5202 
5203 
5205  typedef short state_type;
5206 
5208  int yy_syntax_error_arguments_ (const context& yyctx,
5209  symbol_kind_type yyarg[], int yyargn) const;
5210 
5213  virtual std::string yysyntax_error_ (const context& yyctx) const;
5217  static state_type yy_lr_goto_state_ (state_type yystate, int yysym);
5218 
5221  static bool yy_pact_value_is_default_ (int yyvalue) YY_NOEXCEPT;
5222 
5225  static bool yy_table_value_is_error_ (int yyvalue) YY_NOEXCEPT;
5226 
5227  static const short yypact_ninf_;
5228  static const signed char yytable_ninf_;
5229 
5233  static symbol_kind_type yytranslate_ (int t) YY_NOEXCEPT;
5234 
5236  static std::string yytnamerr_ (const char *yystr);
5237 
5239  static const char* const yytname_[];
5240 
5241 
5242  // Tables.
5243  // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
5244  // STATE-NUM.
5245  static const short yypact_[];
5246 
5247  // YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
5248  // Performed when YYTABLE does not specify something else to do. Zero
5249  // means the default is an error.
5250  static const short yydefact_[];
5251 
5252  // YYPGOTO[NTERM-NUM].
5253  static const short yypgoto_[];
5254 
5255  // YYDEFGOTO[NTERM-NUM].
5256  static const short yydefgoto_[];
5257 
5258  // YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
5259  // positive, shift that token. If negative, reduce the rule whose
5260  // number is the opposite. If YYTABLE_NINF, syntax error.
5261  static const short yytable_[];
5262 
5263  static const short yycheck_[];
5264 
5265  // YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
5266  // state STATE-NUM.
5267  static const short yystos_[];
5268 
5269  // YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.
5270  static const short yyr1_[];
5271 
5272  // YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.
5273  static const signed char yyr2_[];
5274 
5275 
5276 #if PARSER4_DEBUG
5277  // YYRLINE[YYN] -- Source line where rule number YYN was defined.
5278  static const short yyrline_[];
5280  virtual void yy_reduce_print_ (int r) const;
5282  virtual void yy_stack_print_ () const;
5283 
5285  int yydebug_;
5287  std::ostream* yycdebug_;
5288 
5292  template <typename Base>
5293  void yy_print_ (std::ostream& yyo, const basic_symbol<Base>& yysym) const;
5294 #endif
5295 
5300  template <typename Base>
5301  void yy_destroy_ (const char* yymsg, basic_symbol<Base>& yysym) const;
5302 
5303  private:
5305  struct by_state
5306  {
5308  by_state () YY_NOEXCEPT;
5309 
5311  typedef state_type kind_type;
5312 
5314  by_state (kind_type s) YY_NOEXCEPT;
5315 
5317  by_state (const by_state& that) YY_NOEXCEPT;
5318 
5320  void clear () YY_NOEXCEPT;
5321 
5323  void move (by_state& that);
5324 
5327  symbol_kind_type kind () const YY_NOEXCEPT;
5328 
5331  enum { empty_state = 0 };
5332 
5335  state_type state;
5336  };
5337 
5339  struct stack_symbol_type : basic_symbol<by_state>
5340  {
5342  typedef basic_symbol<by_state> super_type;
5344  stack_symbol_type ();
5346  stack_symbol_type (YY_RVREF (stack_symbol_type) that);
5348  stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) sym);
5349 #if YY_CPLUSPLUS < 201103L
5352  stack_symbol_type& operator= (stack_symbol_type& that);
5353 
5356  stack_symbol_type& operator= (const stack_symbol_type& that);
5357 #endif
5358  };
5359 
5361  template <typename T, typename S = std::vector<T> >
5362  class stack
5363  {
5364  public:
5365  // Hide our reversed order.
5366  typedef typename S::iterator iterator;
5367  typedef typename S::const_iterator const_iterator;
5368  typedef typename S::size_type size_type;
5369  typedef typename std::ptrdiff_t index_type;
5370 
5371  stack (size_type n = 200) YY_NOEXCEPT
5372  : seq_ (n)
5373  {}
5374 
5375 #if 201103L <= YY_CPLUSPLUS
5377  stack (const stack&) = delete;
5379  stack& operator= (const stack&) = delete;
5380 #endif
5381 
5385  const T&
5386  operator[] (index_type i) const
5387  {
5388  return seq_[size_type (size () - 1 - i)];
5389  }
5390 
5394  T&
5395  operator[] (index_type i)
5396  {
5397  return seq_[size_type (size () - 1 - i)];
5398  }
5399 
5403  void
5404  push (YY_MOVE_REF (T) t)
5405  {
5406  seq_.push_back (T ());
5407  operator[] (0).move (t);
5408  }
5409 
5411  void
5412  pop (std::ptrdiff_t n = 1) YY_NOEXCEPT
5413  {
5414  for (; 0 < n; --n)
5415  seq_.pop_back ();
5416  }
5417 
5419  void
5420  clear () YY_NOEXCEPT
5421  {
5422  seq_.clear ();
5423  }
5424 
5426  index_type
5427  size () const YY_NOEXCEPT
5428  {
5429  return index_type (seq_.size ());
5430  }
5431 
5433  const_iterator
5434  begin () const YY_NOEXCEPT
5435  {
5436  return seq_.begin ();
5437  }
5438 
5440  const_iterator
5441  end () const YY_NOEXCEPT
5442  {
5443  return seq_.end ();
5444  }
5445 
5447  class slice
5448  {
5449  public:
5450  slice (const stack& stack, index_type range) YY_NOEXCEPT
5451  : stack_ (stack)
5452  , range_ (range)
5453  {}
5454 
5455  const T&
5456  operator[] (index_type i) const
5457  {
5458  return stack_[range_ - i];
5459  }
5460 
5461  private:
5462  const stack& stack_;
5463  index_type range_;
5464  };
5465 
5466  private:
5467 #if YY_CPLUSPLUS < 201103L
5469  stack (const stack&);
5471  stack& operator= (const stack&);
5472 #endif
5474  S seq_;
5475  };
5476 
5477 
5479  typedef stack<stack_symbol_type> stack_type;
5480 
5482  stack_type yystack_;
5483 
5489  void yypush_ (const char* m, YY_MOVE_REF (stack_symbol_type) sym);
5490 
5497  void yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym);
5498 
5500  void yypop_ (int n = 1) YY_NOEXCEPT;
5501 
5503  enum
5504  {
5505  yylast_ = 1348,
5506  yynnts_ = 441,
5507  yyfinal_ = 28
5508  };
5509 
5510 
5511  // User arguments.
5513 
5514  };
5515 
5516  inline
5518  Dhcp4Parser::yytranslate_ (int t) YY_NOEXCEPT
5519  {
5520  // YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to
5521  // TOKEN-NUM as returned by yylex.
5522  static
5523  const unsigned char
5524  translate_table[] =
5525  {
5526  0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5527  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5528  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5529  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5530  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5531  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5532  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5533  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5534  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5535  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5536  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5537  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5538  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5539  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5540  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5541  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5542  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5543  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5544  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5545  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5546  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5547  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5548  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5549  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5550  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5551  2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
5552  5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
5553  15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
5554  25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
5555  35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
5556  45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
5557  55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
5558  65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
5559  75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
5560  85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
5561  95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
5562  105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
5563  115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
5564  125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
5565  135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
5566  145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
5567  155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
5568  165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
5569  175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
5570  185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
5571  195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
5572  205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
5573  215, 216, 217, 218, 219, 220, 221, 222, 223
5574  };
5575  // Last valid token kind.
5576  const int code_max = 478;
5577 
5578  if (t <= 0)
5579  return symbol_kind::S_YYEOF;
5580  else if (t <= code_max)
5581  return static_cast <symbol_kind_type> (translate_table[t]);
5582  else
5583  return symbol_kind::S_YYUNDEF;
5584  }
5585 
5586  // basic_symbol.
5587  template <typename Base>
5589  : Base (that)
5590  , value ()
5591  , location (that.location)
5592  {
5593  switch (this->kind ())
5594  {
5595  case symbol_kind::S_value: // value
5596  case symbol_kind::S_map_value: // map_value
5597  case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value
5598  case symbol_kind::S_ddns_conflict_resolution_mode_value: // ddns_conflict_resolution_mode_value
5599  case symbol_kind::S_socket_type: // socket_type
5600  case symbol_kind::S_outbound_interface_value: // outbound_interface_value
5601  case symbol_kind::S_db_type: // db_type
5602  case symbol_kind::S_on_fail_mode: // on_fail_mode
5603  case symbol_kind::S_hr_mode: // hr_mode
5604  case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value
5605  value.copy< ElementPtr > (YY_MOVE (that.value));
5606  break;
5607 
5608  case symbol_kind::S_BOOLEAN: // "boolean"
5609  value.copy< bool > (YY_MOVE (that.value));
5610  break;
5611 
5612  case symbol_kind::S_FLOAT: // "floating point"
5613  value.copy< double > (YY_MOVE (that.value));
5614  break;
5615 
5616  case symbol_kind::S_INTEGER: // "integer"
5617  value.copy< int64_t > (YY_MOVE (that.value));
5618  break;
5619 
5620  case symbol_kind::S_STRING: // "constant string"
5621  value.copy< std::string > (YY_MOVE (that.value));
5622  break;
5623 
5624  default:
5625  break;
5626  }
5627 
5628  }
5629 
5630 
5631 
5632 
5633  template <typename Base>
5636  {
5637  return this->kind ();
5638  }
5639 
5640 
5641  template <typename Base>
5642  bool
5644  {
5645  return this->kind () == symbol_kind::S_YYEMPTY;
5646  }
5647 
5648  template <typename Base>
5649  void
5651  {
5652  super_type::move (s);
5653  switch (this->kind ())
5654  {
5655  case symbol_kind::S_value: // value
5656  case symbol_kind::S_map_value: // map_value
5657  case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value
5658  case symbol_kind::S_ddns_conflict_resolution_mode_value: // ddns_conflict_resolution_mode_value
5659  case symbol_kind::S_socket_type: // socket_type
5660  case symbol_kind::S_outbound_interface_value: // outbound_interface_value
5661  case symbol_kind::S_db_type: // db_type
5662  case symbol_kind::S_on_fail_mode: // on_fail_mode
5663  case symbol_kind::S_hr_mode: // hr_mode
5664  case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value
5665  value.move< ElementPtr > (YY_MOVE (s.value));
5666  break;
5667 
5668  case symbol_kind::S_BOOLEAN: // "boolean"
5669  value.move< bool > (YY_MOVE (s.value));
5670  break;
5671 
5672  case symbol_kind::S_FLOAT: // "floating point"
5673  value.move< double > (YY_MOVE (s.value));
5674  break;
5675 
5676  case symbol_kind::S_INTEGER: // "integer"
5677  value.move< int64_t > (YY_MOVE (s.value));
5678  break;
5679 
5680  case symbol_kind::S_STRING: // "constant string"
5681  value.move< std::string > (YY_MOVE (s.value));
5682  break;
5683 
5684  default:
5685  break;
5686  }
5687 
5688  location = YY_MOVE (s.location);
5689  }
5690 
5691  // by_kind.
5692  inline
5694  : kind_ (symbol_kind::S_YYEMPTY)
5695  {}
5696 
5697 #if 201103L <= YY_CPLUSPLUS
5698  inline
5700  : kind_ (that.kind_)
5701  {
5702  that.clear ();
5703  }
5704 #endif
5705 
5706  inline
5708  : kind_ (that.kind_)
5709  {}
5710 
5711  inline
5713  : kind_ (yytranslate_ (t))
5714  {}
5715 
5716 
5717 
5718  inline
5719  void
5721  {
5722  kind_ = symbol_kind::S_YYEMPTY;
5723  }
5724 
5725  inline
5726  void
5728  {
5729  kind_ = that.kind_;
5730  that.clear ();
5731  }
5732 
5733  inline
5736  {
5737  return kind_;
5738  }
5739 
5740 
5741  inline
5744  {
5745  return this->kind ();
5746  }
5747 
5748 
5749 #line 14 "dhcp4_parser.yy"
5750 } } // isc::dhcp
5751 #line 5752 "dhcp4_parser.h"
5752 
5753 
5754 
5755 
5756 #endif /