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