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