From d6ba3a0ab48b9852876de67869671407e513c04e Mon Sep 17 00:00:00 2001 From: Razvan Becheriu Date: Fri, 22 Mar 2019 15:48:13 +0200 Subject: generated parsers --- src/bin/dhcp6/dhcp6_parser.h | 6141 +++++++++++++++++------------------------- 1 file changed, 2486 insertions(+), 3655 deletions(-) (limited to 'src/bin/dhcp6/dhcp6_parser.h') diff --git a/src/bin/dhcp6/dhcp6_parser.h b/src/bin/dhcp6/dhcp6_parser.h index 1821830ba1..6c7ea1b5ff 100644 --- a/src/bin/dhcp6/dhcp6_parser.h +++ b/src/bin/dhcp6/dhcp6_parser.h @@ -1,8 +1,8 @@ -// A Bison parser, made by GNU Bison 3.3.2. +// A Bison parser, made by GNU Bison 3.0.4. // Skeleton interface for Bison LALR(1) parsers in C++ -// Copyright (C) 2002-2015, 2018-2019 Free Software Foundation, Inc. +// Copyright (C) 2002-2015 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -30,7 +30,6 @@ // This special exception was added by the Free Software Foundation in // version 2.2 of Bison. - /** ** \file dhcp6_parser.h ** Define the isc::dhcp::parser class. @@ -38,13 +37,10 @@ // C++ LALR(1) parser skeleton written by Akim Demaille. -// Undocumented macros, especially those whose name start with YY_, -// are private implementation details. Do not rely on them. - #ifndef YY_PARSER6_DHCP6_PARSER_H_INCLUDED # define YY_PARSER6_DHCP6_PARSER_H_INCLUDED // // "%code requires" blocks. -#line 17 "dhcp6_parser.yy" // lalr1.cc:401 +#line 17 "dhcp6_parser.yy" // lalr1.cc:377 #include #include @@ -56,7 +52,7 @@ using namespace isc::dhcp; using namespace isc::data; using namespace std; -#line 60 "dhcp6_parser.h" // lalr1.cc:401 +#line 56 "dhcp6_parser.h" // lalr1.cc:377 # include # include // std::abort @@ -64,43 +60,7 @@ using namespace std; # include # include # include - -#if defined __cplusplus -# define YY_CPLUSPLUS __cplusplus -#else -# define YY_CPLUSPLUS 199711L -#endif - -// Support move semantics when possible. -#if 201103L <= YY_CPLUSPLUS -# define YY_MOVE std::move -# define YY_MOVE_OR_COPY move -# define YY_MOVE_REF(Type) Type&& -# define YY_RVREF(Type) Type&& -# define YY_COPY(Type) Type -#else -# define YY_MOVE -# define YY_MOVE_OR_COPY copy -# define YY_MOVE_REF(Type) Type& -# define YY_RVREF(Type) const Type& -# define YY_COPY(Type) const Type& -#endif - -// Support noexcept when possible. -#if 201103L <= YY_CPLUSPLUS -# define YY_NOEXCEPT noexcept -# define YY_NOTHROW -#else -# define YY_NOEXCEPT -# define YY_NOTHROW throw () -#endif - -// Support constexpr when possible. -#if 201703 <= YY_CPLUSPLUS -# define YY_CONSTEXPR constexpr -#else -# define YY_CONSTEXPR -#endif +# include "stack.hh" # include "location.hh" #include #ifndef YYASSERT @@ -127,6 +87,15 @@ using namespace std; # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) #endif +#if !defined _Noreturn \ + && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) +# if defined _MSC_VER && 1200 <= _MSC_VER +# define _Noreturn __declspec (noreturn) +# else +# define _Noreturn YY_ATTRIBUTE ((__noreturn__)) +# endif +#endif + /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ # define YYUSE(E) ((void) (E)) @@ -134,7 +103,7 @@ using namespace std; # define YYUSE(E) /* empty */ #endif -#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ /* Suppress an incorrect diagnostic about yylval being uninitialized. */ # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ _Pragma ("GCC diagnostic push") \ @@ -153,18 +122,6 @@ using namespace std; # define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif -# ifndef YY_NULLPTR -# if defined __cplusplus -# if 201103L <= __cplusplus -# define YY_NULLPTR nullptr -# else -# define YY_NULLPTR 0 -# endif -# else -# define YY_NULLPTR ((void*)0) -# endif -# endif - /* Debug traces. */ #ifndef PARSER6_DEBUG # if defined YYDEBUG @@ -178,174 +135,120 @@ using namespace std; # endif /* ! defined YYDEBUG */ #endif /* ! defined PARSER6_DEBUG */ -#line 14 "dhcp6_parser.yy" // lalr1.cc:401 +#line 14 "dhcp6_parser.yy" // lalr1.cc:377 namespace isc { namespace dhcp { -#line 184 "dhcp6_parser.h" // lalr1.cc:401 +#line 141 "dhcp6_parser.h" // lalr1.cc:377 - /// A Bison parser. - class Dhcp6Parser - { - public: -#ifndef PARSER6_STYPE - /// A buffer to store and retrieve objects. + /// A char[S] buffer to store and retrieve objects. /// /// Sort of a variant, but does not keep track of the nature /// of the stored data, since that knowledge is available - /// via the current parser state. - class semantic_type + /// via the current state. + template + struct variant { - public: /// Type of *this. - typedef semantic_type self_type; + typedef variant self_type; /// Empty construction. - semantic_type () YY_NOEXCEPT - : yybuffer_ () - , yytypeid_ (YY_NULLPTR) + variant () + : yytypeid_ (YY_NULLPTR) {} /// Construct and fill. template - semantic_type (YY_RVREF (T) t) + variant (const T& t) : yytypeid_ (&typeid (T)) { - YYASSERT (sizeof (T) <= size); - new (yyas_ ()) T (YY_MOVE (t)); + YYASSERT (sizeof (T) <= S); + new (yyas_ ()) T (t); } /// Destruction, allowed only if empty. - ~semantic_type () YY_NOEXCEPT + ~variant () { YYASSERT (!yytypeid_); } -# if 201103L <= YY_CPLUSPLUS - /// Instantiate a \a T in here from \a t. - template - T& - emplace (U&&... u) - { - YYASSERT (!yytypeid_); - YYASSERT (sizeof (T) <= size); - yytypeid_ = & typeid (T); - return *new (yyas_ ()) T (std::forward (u)...); - } -# else /// Instantiate an empty \a T in here. template T& - emplace () + build () { YYASSERT (!yytypeid_); - YYASSERT (sizeof (T) <= size); + YYASSERT (sizeof (T) <= S); yytypeid_ = & typeid (T); - return *new (yyas_ ()) T (); + return *new (yyas_ ()) T; } /// Instantiate a \a T in here from \a t. template T& - emplace (const T& t) + build (const T& t) { YYASSERT (!yytypeid_); - YYASSERT (sizeof (T) <= size); + YYASSERT (sizeof (T) <= S); yytypeid_ = & typeid (T); return *new (yyas_ ()) T (t); } -# endif - - /// Instantiate an empty \a T in here. - /// Obsolete, use emplace. - template - T& - build () - { - return emplace (); - } - - /// Instantiate a \a T in here from \a t. - /// Obsolete, use emplace. - template - T& - build (const T& t) - { - return emplace (t); - } /// Accessor to a built \a T. template T& - as () YY_NOEXCEPT + as () { - YYASSERT (yytypeid_); YYASSERT (*yytypeid_ == typeid (T)); - YYASSERT (sizeof (T) <= size); + YYASSERT (sizeof (T) <= S); return *yyas_ (); } /// Const accessor to a built \a T (for %printer). template const T& - as () const YY_NOEXCEPT + as () const { - YYASSERT (yytypeid_); YYASSERT (*yytypeid_ == typeid (T)); - YYASSERT (sizeof (T) <= size); + YYASSERT (sizeof (T) <= S); return *yyas_ (); } - /// Swap the content with \a that, of same type. + /// Swap the content with \a other, of same type. /// /// Both variants must be built beforehand, because swapping the actual /// data requires reading it (with as()), and this is not possible on /// unconstructed variants: it would require some dynamic testing, which - /// should not be the variant's responsibility. + /// should not be the variant's responsability. /// Swapping between built and (possibly) non-built is done with - /// self_type::move (). + /// variant::move (). template void - swap (self_type& that) YY_NOEXCEPT + swap (self_type& other) { YYASSERT (yytypeid_); - YYASSERT (*yytypeid_ == *that.yytypeid_); - std::swap (as (), that.as ()); + YYASSERT (*yytypeid_ == *other.yytypeid_); + std::swap (as (), other.as ()); } - /// Move the content of \a that to this. + /// Move the content of \a other to this. /// - /// Destroys \a that. - template - void - move (self_type& that) - { -# if 201103L <= YY_CPLUSPLUS - emplace (std::move (that.as ())); -# else - emplace (); - swap (that); -# endif - that.destroy (); - } - -# if 201103L <= YY_CPLUSPLUS - /// Move the content of \a that to this. + /// Destroys \a other. template void - move (self_type&& that) + move (self_type& other) { - emplace (std::move (that.as ())); - that.destroy (); + build (); + swap (other); + other.destroy (); } -#endif - /// Copy the content of \a that to this. + /// Copy the content of \a other to this. template void - copy (const self_type& that) + copy (const self_type& other) { - emplace (that.as ()); + build (other.as ()); } /// Destroy the stored \a T. @@ -359,13 +262,13 @@ namespace isc { namespace dhcp { private: /// Prohibit blind copies. - self_type& operator= (const self_type&); - semantic_type (const self_type&); + self_type& operator=(const self_type&); + variant (const self_type&); /// Accessor to raw memory as \a T. template T* - yyas_ () YY_NOEXCEPT + yyas_ () { void *yyp = yybuffer_.yyraw; return static_cast (yyp); @@ -374,12 +277,30 @@ namespace isc { namespace dhcp { /// Const accessor to raw memory as \a T. template const T* - yyas_ () const YY_NOEXCEPT + yyas_ () const { const void *yyp = yybuffer_.yyraw; return static_cast (yyp); } + union + { + /// Strongest alignment constraints. + long double yyalign_me; + /// A buffer large enough to store any of the semantic values. + char yyraw[S]; + } yybuffer_; + + /// Whether the content is built: if defined, the name of the stored type. + const std::type_info *yytypeid_; + }; + + + /// A Bison parser. + class Dhcp6Parser + { + public: +#ifndef PARSER6_STYPE /// An auxiliary type to compute the largest semantic type. union union_type { @@ -390,37 +311,23 @@ namespace isc { namespace dhcp { // duid_type // ncr_protocol_value // replace_client_name_value - char dummy1[sizeof (ElementPtr)]; + char dummy1[sizeof(ElementPtr)]; // "boolean" - char dummy2[sizeof (bool)]; + char dummy2[sizeof(bool)]; // "floating point" - char dummy3[sizeof (double)]; + char dummy3[sizeof(double)]; // "integer" - char dummy4[sizeof (int64_t)]; + char dummy4[sizeof(int64_t)]; // "constant string" - char dummy5[sizeof (std::string)]; - }; - - /// The size of the largest semantic type. - enum { size = sizeof (union_type) }; - - /// A buffer to store semantic values. - union - { - /// Strongest alignment constraints. - long double yyalign_me; - /// A buffer large enough to store any of the semantic values. - char yyraw[size]; - } yybuffer_; - - /// Whether the content is built: if defined, the name of the stored type. - const std::type_info *yytypeid_; - }; + char dummy5[sizeof(std::string)]; +}; + /// Symbol semantic values. + typedef variant semantic_type; #else typedef PARSER6_STYPE semantic_type; #endif @@ -430,18 +337,7 @@ namespace isc { namespace dhcp { /// Syntax errors thrown from user actions. struct syntax_error : std::runtime_error { - syntax_error (const location_type& l, const std::string& m) - : std::runtime_error (m) - , location (l) - {} - - syntax_error (const syntax_error& s) - : std::runtime_error (s.what ()) - , location (s.location) - {} - - ~syntax_error () YY_NOEXCEPT YY_NOTHROW; - + syntax_error (const location_type& l, const std::string& m); location_type location; }; @@ -485,144 +381,146 @@ namespace isc { namespace dhcp { TOKEN_MAX_RECONNECT_TRIES = 289, TOKEN_RECONNECT_WAIT_TIME = 290, TOKEN_KEYSPACE = 291, - TOKEN_REQUEST_TIMEOUT = 292, - TOKEN_TCP_KEEPALIVE = 293, - TOKEN_TCP_NODELAY = 294, - TOKEN_PREFERRED_LIFETIME = 295, - TOKEN_VALID_LIFETIME = 296, - TOKEN_RENEW_TIMER = 297, - TOKEN_REBIND_TIMER = 298, - TOKEN_DECLINE_PROBATION_PERIOD = 299, - TOKEN_SERVER_TAG = 300, - TOKEN_SUBNET6 = 301, - TOKEN_OPTION_DEF = 302, - TOKEN_OPTION_DATA = 303, - TOKEN_NAME = 304, - TOKEN_DATA = 305, - TOKEN_CODE = 306, - TOKEN_SPACE = 307, - TOKEN_CSV_FORMAT = 308, - TOKEN_ALWAYS_SEND = 309, - TOKEN_RECORD_TYPES = 310, - TOKEN_ENCAPSULATE = 311, - TOKEN_ARRAY = 312, - TOKEN_POOLS = 313, - TOKEN_POOL = 314, - TOKEN_PD_POOLS = 315, - TOKEN_PREFIX = 316, - TOKEN_PREFIX_LEN = 317, - TOKEN_EXCLUDED_PREFIX = 318, - TOKEN_EXCLUDED_PREFIX_LEN = 319, - TOKEN_DELEGATED_LEN = 320, - TOKEN_USER_CONTEXT = 321, - TOKEN_COMMENT = 322, - TOKEN_SUBNET = 323, - TOKEN_INTERFACE = 324, - TOKEN_INTERFACE_ID = 325, - TOKEN_ID = 326, - TOKEN_RAPID_COMMIT = 327, - TOKEN_RESERVATION_MODE = 328, - TOKEN_DISABLED = 329, - TOKEN_OUT_OF_POOL = 330, - TOKEN_GLOBAL = 331, - TOKEN_ALL = 332, - TOKEN_SHARED_NETWORKS = 333, - TOKEN_MAC_SOURCES = 334, - TOKEN_RELAY_SUPPLIED_OPTIONS = 335, - TOKEN_HOST_RESERVATION_IDENTIFIERS = 336, - TOKEN_SANITY_CHECKS = 337, - TOKEN_LEASE_CHECKS = 338, - TOKEN_CLIENT_CLASSES = 339, - TOKEN_REQUIRE_CLIENT_CLASSES = 340, - TOKEN_TEST = 341, - TOKEN_ONLY_IF_REQUIRED = 342, - TOKEN_CLIENT_CLASS = 343, - TOKEN_RESERVATIONS = 344, - TOKEN_IP_ADDRESSES = 345, - TOKEN_PREFIXES = 346, - TOKEN_DUID = 347, - TOKEN_HW_ADDRESS = 348, - TOKEN_HOSTNAME = 349, - TOKEN_FLEX_ID = 350, - TOKEN_RELAY = 351, - TOKEN_IP_ADDRESS = 352, - TOKEN_HOOKS_LIBRARIES = 353, - TOKEN_LIBRARY = 354, - TOKEN_PARAMETERS = 355, - TOKEN_EXPIRED_LEASES_PROCESSING = 356, - TOKEN_RECLAIM_TIMER_WAIT_TIME = 357, - TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 358, - TOKEN_HOLD_RECLAIMED_TIME = 359, - TOKEN_MAX_RECLAIM_LEASES = 360, - TOKEN_MAX_RECLAIM_TIME = 361, - TOKEN_UNWARNED_RECLAIM_CYCLES = 362, - TOKEN_SERVER_ID = 363, - TOKEN_LLT = 364, - TOKEN_EN = 365, - TOKEN_LL = 366, - TOKEN_IDENTIFIER = 367, - TOKEN_HTYPE = 368, - TOKEN_TIME = 369, - TOKEN_ENTERPRISE_ID = 370, - TOKEN_DHCP4O6_PORT = 371, - TOKEN_CONTROL_SOCKET = 372, - TOKEN_SOCKET_TYPE = 373, - TOKEN_SOCKET_NAME = 374, - TOKEN_DHCP_QUEUE_CONTROL = 375, - TOKEN_DHCP_DDNS = 376, - TOKEN_ENABLE_UPDATES = 377, - TOKEN_QUALIFYING_SUFFIX = 378, - TOKEN_SERVER_IP = 379, - TOKEN_SERVER_PORT = 380, - TOKEN_SENDER_IP = 381, - TOKEN_SENDER_PORT = 382, - TOKEN_MAX_QUEUE_SIZE = 383, - TOKEN_NCR_PROTOCOL = 384, - TOKEN_NCR_FORMAT = 385, - TOKEN_OVERRIDE_NO_UPDATE = 386, - TOKEN_OVERRIDE_CLIENT_UPDATE = 387, - TOKEN_REPLACE_CLIENT_NAME = 388, - TOKEN_GENERATED_PREFIX = 389, - TOKEN_UDP = 390, - TOKEN_TCP = 391, - TOKEN_JSON = 392, - TOKEN_WHEN_PRESENT = 393, - TOKEN_NEVER = 394, - TOKEN_ALWAYS = 395, - TOKEN_WHEN_NOT_PRESENT = 396, - TOKEN_HOSTNAME_CHAR_SET = 397, - TOKEN_HOSTNAME_CHAR_REPLACEMENT = 398, - TOKEN_LOGGING = 399, - TOKEN_LOGGERS = 400, - TOKEN_OUTPUT_OPTIONS = 401, - TOKEN_OUTPUT = 402, - TOKEN_DEBUGLEVEL = 403, - TOKEN_SEVERITY = 404, - TOKEN_FLUSH = 405, - TOKEN_MAXSIZE = 406, - TOKEN_MAXVER = 407, - TOKEN_DHCP4 = 408, - TOKEN_DHCPDDNS = 409, - TOKEN_CONTROL_AGENT = 410, - TOKEN_TOPLEVEL_JSON = 411, - TOKEN_TOPLEVEL_DHCP6 = 412, - TOKEN_SUB_DHCP6 = 413, - TOKEN_SUB_INTERFACES6 = 414, - TOKEN_SUB_SUBNET6 = 415, - TOKEN_SUB_POOL6 = 416, - TOKEN_SUB_PD_POOL = 417, - TOKEN_SUB_RESERVATION = 418, - TOKEN_SUB_OPTION_DEFS = 419, - TOKEN_SUB_OPTION_DEF = 420, - TOKEN_SUB_OPTION_DATA = 421, - TOKEN_SUB_HOOKS_LIBRARY = 422, - TOKEN_SUB_DHCP_DDNS = 423, - TOKEN_SUB_LOGGING = 424, - TOKEN_SUB_CONFIG_CONTROL = 425, - TOKEN_STRING = 426, - TOKEN_INTEGER = 427, - TOKEN_FLOAT = 428, - TOKEN_BOOLEAN = 429 + TOKEN_CONSISTENCY = 292, + TOKEN_SERIAL_CONSISTENCY = 293, + TOKEN_REQUEST_TIMEOUT = 294, + TOKEN_TCP_KEEPALIVE = 295, + TOKEN_TCP_NODELAY = 296, + TOKEN_PREFERRED_LIFETIME = 297, + TOKEN_VALID_LIFETIME = 298, + TOKEN_RENEW_TIMER = 299, + TOKEN_REBIND_TIMER = 300, + TOKEN_DECLINE_PROBATION_PERIOD = 301, + TOKEN_SERVER_TAG = 302, + TOKEN_SUBNET6 = 303, + TOKEN_OPTION_DEF = 304, + TOKEN_OPTION_DATA = 305, + TOKEN_NAME = 306, + TOKEN_DATA = 307, + TOKEN_CODE = 308, + TOKEN_SPACE = 309, + TOKEN_CSV_FORMAT = 310, + TOKEN_ALWAYS_SEND = 311, + TOKEN_RECORD_TYPES = 312, + TOKEN_ENCAPSULATE = 313, + TOKEN_ARRAY = 314, + TOKEN_POOLS = 315, + TOKEN_POOL = 316, + TOKEN_PD_POOLS = 317, + TOKEN_PREFIX = 318, + TOKEN_PREFIX_LEN = 319, + TOKEN_EXCLUDED_PREFIX = 320, + TOKEN_EXCLUDED_PREFIX_LEN = 321, + TOKEN_DELEGATED_LEN = 322, + TOKEN_USER_CONTEXT = 323, + TOKEN_COMMENT = 324, + TOKEN_SUBNET = 325, + TOKEN_INTERFACE = 326, + TOKEN_INTERFACE_ID = 327, + TOKEN_ID = 328, + TOKEN_RAPID_COMMIT = 329, + TOKEN_RESERVATION_MODE = 330, + TOKEN_DISABLED = 331, + TOKEN_OUT_OF_POOL = 332, + TOKEN_GLOBAL = 333, + TOKEN_ALL = 334, + TOKEN_SHARED_NETWORKS = 335, + TOKEN_MAC_SOURCES = 336, + TOKEN_RELAY_SUPPLIED_OPTIONS = 337, + TOKEN_HOST_RESERVATION_IDENTIFIERS = 338, + TOKEN_SANITY_CHECKS = 339, + TOKEN_LEASE_CHECKS = 340, + TOKEN_CLIENT_CLASSES = 341, + TOKEN_REQUIRE_CLIENT_CLASSES = 342, + TOKEN_TEST = 343, + TOKEN_ONLY_IF_REQUIRED = 344, + TOKEN_CLIENT_CLASS = 345, + TOKEN_RESERVATIONS = 346, + TOKEN_IP_ADDRESSES = 347, + TOKEN_PREFIXES = 348, + TOKEN_DUID = 349, + TOKEN_HW_ADDRESS = 350, + TOKEN_HOSTNAME = 351, + TOKEN_FLEX_ID = 352, + TOKEN_RELAY = 353, + TOKEN_IP_ADDRESS = 354, + TOKEN_HOOKS_LIBRARIES = 355, + TOKEN_LIBRARY = 356, + TOKEN_PARAMETERS = 357, + TOKEN_EXPIRED_LEASES_PROCESSING = 358, + TOKEN_RECLAIM_TIMER_WAIT_TIME = 359, + TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 360, + TOKEN_HOLD_RECLAIMED_TIME = 361, + TOKEN_MAX_RECLAIM_LEASES = 362, + TOKEN_MAX_RECLAIM_TIME = 363, + TOKEN_UNWARNED_RECLAIM_CYCLES = 364, + TOKEN_SERVER_ID = 365, + TOKEN_LLT = 366, + TOKEN_EN = 367, + TOKEN_LL = 368, + TOKEN_IDENTIFIER = 369, + TOKEN_HTYPE = 370, + TOKEN_TIME = 371, + TOKEN_ENTERPRISE_ID = 372, + TOKEN_DHCP4O6_PORT = 373, + TOKEN_CONTROL_SOCKET = 374, + TOKEN_SOCKET_TYPE = 375, + TOKEN_SOCKET_NAME = 376, + TOKEN_DHCP_QUEUE_CONTROL = 377, + TOKEN_DHCP_DDNS = 378, + TOKEN_ENABLE_UPDATES = 379, + TOKEN_QUALIFYING_SUFFIX = 380, + TOKEN_SERVER_IP = 381, + TOKEN_SERVER_PORT = 382, + TOKEN_SENDER_IP = 383, + TOKEN_SENDER_PORT = 384, + TOKEN_MAX_QUEUE_SIZE = 385, + TOKEN_NCR_PROTOCOL = 386, + TOKEN_NCR_FORMAT = 387, + TOKEN_OVERRIDE_NO_UPDATE = 388, + TOKEN_OVERRIDE_CLIENT_UPDATE = 389, + TOKEN_REPLACE_CLIENT_NAME = 390, + TOKEN_GENERATED_PREFIX = 391, + TOKEN_UDP = 392, + TOKEN_TCP = 393, + TOKEN_JSON = 394, + TOKEN_WHEN_PRESENT = 395, + TOKEN_NEVER = 396, + TOKEN_ALWAYS = 397, + TOKEN_WHEN_NOT_PRESENT = 398, + TOKEN_HOSTNAME_CHAR_SET = 399, + TOKEN_HOSTNAME_CHAR_REPLACEMENT = 400, + TOKEN_LOGGING = 401, + TOKEN_LOGGERS = 402, + TOKEN_OUTPUT_OPTIONS = 403, + TOKEN_OUTPUT = 404, + TOKEN_DEBUGLEVEL = 405, + TOKEN_SEVERITY = 406, + TOKEN_FLUSH = 407, + TOKEN_MAXSIZE = 408, + TOKEN_MAXVER = 409, + TOKEN_DHCP4 = 410, + TOKEN_DHCPDDNS = 411, + TOKEN_CONTROL_AGENT = 412, + TOKEN_TOPLEVEL_JSON = 413, + TOKEN_TOPLEVEL_DHCP6 = 414, + TOKEN_SUB_DHCP6 = 415, + TOKEN_SUB_INTERFACES6 = 416, + TOKEN_SUB_SUBNET6 = 417, + TOKEN_SUB_POOL6 = 418, + TOKEN_SUB_PD_POOL = 419, + TOKEN_SUB_RESERVATION = 420, + TOKEN_SUB_OPTION_DEFS = 421, + TOKEN_SUB_OPTION_DEF = 422, + TOKEN_SUB_OPTION_DATA = 423, + TOKEN_SUB_HOOKS_LIBRARY = 424, + TOKEN_SUB_DHCP_DDNS = 425, + TOKEN_SUB_LOGGING = 426, + TOKEN_SUB_CONFIG_CONTROL = 427, + TOKEN_STRING = 428, + TOKEN_INTEGER = 429, + TOKEN_FLOAT = 430, + TOKEN_BOOLEAN = 431 }; }; @@ -641,7 +539,7 @@ namespace isc { namespace dhcp { /// A complete symbol. /// /// Expects its Base type to provide access to the symbol type - /// via type_get (). + /// via type_get(). /// /// Provide access to semantic value and location. template @@ -651,154 +549,39 @@ namespace isc { namespace dhcp { typedef Base super_type; /// Default constructor. - basic_symbol () - : value () - , location () - {} - -#if 201103L <= YY_CPLUSPLUS - /// Move constructor. - basic_symbol (basic_symbol&& that); -#endif + basic_symbol (); /// Copy constructor. - basic_symbol (const basic_symbol& that); + basic_symbol (const basic_symbol& other); /// Constructor for valueless symbols, and symbols from each type. -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, location_type&& l) - : Base (t) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const location_type& l) - : Base (t) - , location (l) - {} -#endif -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, ElementPtr&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const ElementPtr& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} -#endif -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, bool&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const bool& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} -#endif -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, double&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const double& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} -#endif -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, int64_t&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const int64_t& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} -#endif -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, std::string&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const std::string& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} -#endif - /// Destroy the symbol. - ~basic_symbol () - { - clear (); - } + basic_symbol (typename Base::kind_type t, const location_type& l); - /// Destroy contents, and record that is empty. - void clear () - { - // User destructor. - symbol_number_type yytype = this->type_get (); - basic_symbol& yysym = *this; - (void) yysym; - switch (yytype) - { - default: - break; - } - - // Type destructor. -switch (yytype) - { - case 192: // value - case 196: // map_value - case 250: // db_type - case 339: // hr_mode - case 475: // duid_type - case 510: // ncr_protocol_value - case 517: // replace_client_name_value - value.template destroy< ElementPtr > (); - break; + basic_symbol (typename Base::kind_type t, const ElementPtr v, const location_type& l); - case 174: // "boolean" - value.template destroy< bool > (); - break; + basic_symbol (typename Base::kind_type t, const bool v, const location_type& l); - case 173: // "floating point" - value.template destroy< double > (); - break; + basic_symbol (typename Base::kind_type t, const double v, const location_type& l); - case 172: // "integer" - value.template destroy< int64_t > (); - break; + basic_symbol (typename Base::kind_type t, const int64_t v, const location_type& l); - case 171: // "constant string" - value.template destroy< std::string > (); - break; + basic_symbol (typename Base::kind_type t, const std::string v, const location_type& l); - default: - break; - } - Base::clear (); - } + /// Constructor for symbols with semantic value. + basic_symbol (typename Base::kind_type t, + const semantic_type& v, + const location_type& l); + + /// Destroy the symbol. + ~basic_symbol (); + + /// Destroy contents, and record that is empty. + void clear (); /// Whether empty. - bool empty () const YY_NOEXCEPT; + bool empty () const; /// Destructive move, \a s is emptied into this. void move (basic_symbol& s); @@ -810,10 +593,8 @@ switch (yytype) location_type location; private: -#if YY_CPLUSPLUS < 201103L /// Assignment operator. - basic_symbol& operator= (const basic_symbol& that); -#endif + basic_symbol& operator= (const basic_symbol& other); }; /// Type access provider for token (enum) based symbols. @@ -822,13 +603,8 @@ switch (yytype) /// Default constructor. by_type (); -#if 201103L <= YY_CPLUSPLUS - /// Move constructor. - by_type (by_type&& that); -#endif - /// Copy constructor. - by_type (const by_type& that); + by_type (const by_type& other); /// The symbol type as needed by the constructor. typedef token_type kind_type; @@ -844,10 +620,10 @@ switch (yytype) /// The (internal) type number (corresponding to \a type). /// \a empty when empty. - symbol_number_type type_get () const YY_NOEXCEPT; + symbol_number_type type_get () const; /// The token. - token_type token () const YY_NOEXCEPT; + token_type token () const; /// The symbol type. /// \a empty_symbol when empty. @@ -856,3310 +632,2365 @@ switch (yytype) }; /// "External" symbols: returned by the scanner. - struct symbol_type : basic_symbol - { - /// Superclass. - typedef basic_symbol super_type; + typedef basic_symbol symbol_type; - /// Empty symbol. - symbol_type () {} + // Symbol constructors declarations. + static inline + symbol_type + make_END (const location_type& l); - /// Constructor for valueless symbols, and symbols from each type. -#if 201103L <= YY_CPLUSPLUS - symbol_type (int tok, location_type l) - : super_type(token_type (tok), std::move (l)) - { - YYASSERT (tok == token::TOKEN_END || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DATA_DIRECTORY || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_SUBNET6 || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_UDP || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_LOGGING || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_LOGGING || tok == token::TOKEN_SUB_CONFIG_CONTROL); - } -#else - symbol_type (int tok, const location_type& l) - : super_type(token_type (tok), l) - { - YYASSERT (tok == token::TOKEN_END || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DATA_DIRECTORY || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_SUBNET6 || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_UDP || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_LOGGING || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_LOGGING || tok == token::TOKEN_SUB_CONFIG_CONTROL); - } -#endif -#if 201103L <= YY_CPLUSPLUS - symbol_type (int tok, bool v, location_type l) - : super_type(token_type (tok), std::move (v), std::move (l)) - { - YYASSERT (tok == token::TOKEN_BOOLEAN); - } -#else - symbol_type (int tok, const bool& v, const location_type& l) - : super_type(token_type (tok), v, l) - { - YYASSERT (tok == token::TOKEN_BOOLEAN); - } -#endif -#if 201103L <= YY_CPLUSPLUS - symbol_type (int tok, double v, location_type l) - : super_type(token_type (tok), std::move (v), std::move (l)) - { - YYASSERT (tok == token::TOKEN_FLOAT); - } -#else - symbol_type (int tok, const double& v, const location_type& l) - : super_type(token_type (tok), v, l) - { - YYASSERT (tok == token::TOKEN_FLOAT); - } -#endif -#if 201103L <= YY_CPLUSPLUS - symbol_type (int tok, int64_t v, location_type l) - : super_type(token_type (tok), std::move (v), std::move (l)) - { - YYASSERT (tok == token::TOKEN_INTEGER); - } -#else - symbol_type (int tok, const int64_t& v, const location_type& l) - : super_type(token_type (tok), v, l) - { - YYASSERT (tok == token::TOKEN_INTEGER); - } -#endif -#if 201103L <= YY_CPLUSPLUS - symbol_type (int tok, std::string v, location_type l) - : super_type(token_type (tok), std::move (v), std::move (l)) - { - YYASSERT (tok == token::TOKEN_STRING); - } -#else - symbol_type (int tok, const std::string& v, const location_type& l) - : super_type(token_type (tok), v, l) - { - YYASSERT (tok == token::TOKEN_STRING); - } -#endif - }; + static inline + symbol_type + make_COMMA (const location_type& l); - /// Build a parser object. - Dhcp6Parser (isc::dhcp::Parser6Context& ctx_yyarg); - virtual ~Dhcp6Parser (); + static inline + symbol_type + make_COLON (const location_type& l); - /// Parse. An alias for parse (). - /// \returns 0 iff parsing succeeded. - int operator() (); + static inline + symbol_type + make_LSQUARE_BRACKET (const location_type& l); - /// Parse. - /// \returns 0 iff parsing succeeded. - virtual int parse (); + static inline + symbol_type + make_RSQUARE_BRACKET (const location_type& l); -#if PARSER6_DEBUG - /// The current debugging stream. - std::ostream& debug_stream () const YY_ATTRIBUTE_PURE; - /// Set the current debugging stream. - void set_debug_stream (std::ostream &); + static inline + symbol_type + make_LCURLY_BRACKET (const location_type& l); - /// Type for debugging levels. - typedef int debug_level_type; - /// The current debugging level. - debug_level_type debug_level () const YY_ATTRIBUTE_PURE; - /// Set the current debugging level. - void set_debug_level (debug_level_type l); -#endif + static inline + symbol_type + make_RCURLY_BRACKET (const location_type& l); - /// Report a syntax error. - /// \param loc where the syntax error is found. - /// \param msg a description of the syntax error. - virtual void error (const location_type& loc, const std::string& msg); + static inline + symbol_type + make_NULL_TYPE (const location_type& l); - /// Report a syntax error. - void error (const syntax_error& err); + static inline + symbol_type + make_DHCP6 (const location_type& l); - // Implementation of make_symbol for each symbol type. -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_END (location_type l) - { - return symbol_type (token::TOKEN_END, std::move (l)); - } -#else - static - symbol_type - make_END (const location_type& l) - { - return symbol_type (token::TOKEN_END, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_COMMA (location_type l) - { - return symbol_type (token::TOKEN_COMMA, std::move (l)); - } -#else - static - symbol_type - make_COMMA (const location_type& l) - { - return symbol_type (token::TOKEN_COMMA, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_COLON (location_type l) - { - return symbol_type (token::TOKEN_COLON, std::move (l)); - } -#else - static - symbol_type - make_COLON (const location_type& l) - { - return symbol_type (token::TOKEN_COLON, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LSQUARE_BRACKET (location_type l) - { - return symbol_type (token::TOKEN_LSQUARE_BRACKET, std::move (l)); - } -#else - static - symbol_type - make_LSQUARE_BRACKET (const location_type& l) - { - return symbol_type (token::TOKEN_LSQUARE_BRACKET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RSQUARE_BRACKET (location_type l) - { - return symbol_type (token::TOKEN_RSQUARE_BRACKET, std::move (l)); - } -#else - static - symbol_type - make_RSQUARE_BRACKET (const location_type& l) - { - return symbol_type (token::TOKEN_RSQUARE_BRACKET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LCURLY_BRACKET (location_type l) - { - return symbol_type (token::TOKEN_LCURLY_BRACKET, std::move (l)); - } -#else - static - symbol_type - make_LCURLY_BRACKET (const location_type& l) - { - return symbol_type (token::TOKEN_LCURLY_BRACKET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RCURLY_BRACKET (location_type l) - { - return symbol_type (token::TOKEN_RCURLY_BRACKET, std::move (l)); - } -#else - static - symbol_type - make_RCURLY_BRACKET (const location_type& l) - { - return symbol_type (token::TOKEN_RCURLY_BRACKET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_NULL_TYPE (location_type l) - { - return symbol_type (token::TOKEN_NULL_TYPE, std::move (l)); - } -#else - static - symbol_type - make_NULL_TYPE (const location_type& l) - { - return symbol_type (token::TOKEN_NULL_TYPE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCP6 (location_type l) - { - return symbol_type (token::TOKEN_DHCP6, std::move (l)); - } -#else - static - symbol_type - make_DHCP6 (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP6, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DATA_DIRECTORY (location_type l) - { - return symbol_type (token::TOKEN_DATA_DIRECTORY, std::move (l)); - } -#else - static - symbol_type - make_DATA_DIRECTORY (const location_type& l) - { - return symbol_type (token::TOKEN_DATA_DIRECTORY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONFIG_CONTROL (location_type l) - { - return symbol_type (token::TOKEN_CONFIG_CONTROL, std::move (l)); - } -#else - static - symbol_type - make_CONFIG_CONTROL (const location_type& l) - { - return symbol_type (token::TOKEN_CONFIG_CONTROL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONFIG_DATABASES (location_type l) - { - return symbol_type (token::TOKEN_CONFIG_DATABASES, std::move (l)); - } -#else - static - symbol_type - make_CONFIG_DATABASES (const location_type& l) - { - return symbol_type (token::TOKEN_CONFIG_DATABASES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_INTERFACES_CONFIG (location_type l) - { - return symbol_type (token::TOKEN_INTERFACES_CONFIG, std::move (l)); - } -#else - static - symbol_type - make_INTERFACES_CONFIG (const location_type& l) - { - return symbol_type (token::TOKEN_INTERFACES_CONFIG, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_INTERFACES (location_type l) - { - return symbol_type (token::TOKEN_INTERFACES, std::move (l)); - } -#else - static - symbol_type - make_INTERFACES (const location_type& l) - { - return symbol_type (token::TOKEN_INTERFACES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RE_DETECT (location_type l) - { - return symbol_type (token::TOKEN_RE_DETECT, std::move (l)); - } -#else - static - symbol_type - make_RE_DETECT (const location_type& l) - { - return symbol_type (token::TOKEN_RE_DETECT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LEASE_DATABASE (location_type l) - { - return symbol_type (token::TOKEN_LEASE_DATABASE, std::move (l)); - } -#else - static - symbol_type - make_LEASE_DATABASE (const location_type& l) - { - return symbol_type (token::TOKEN_LEASE_DATABASE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOSTS_DATABASE (location_type l) - { - return symbol_type (token::TOKEN_HOSTS_DATABASE, std::move (l)); - } -#else - static - symbol_type - make_HOSTS_DATABASE (const location_type& l) - { - return symbol_type (token::TOKEN_HOSTS_DATABASE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOSTS_DATABASES (location_type l) - { - return symbol_type (token::TOKEN_HOSTS_DATABASES, std::move (l)); - } -#else - static - symbol_type - make_HOSTS_DATABASES (const location_type& l) - { - return symbol_type (token::TOKEN_HOSTS_DATABASES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TYPE (location_type l) - { - return symbol_type (token::TOKEN_TYPE, std::move (l)); - } -#else - static - symbol_type - make_TYPE (const location_type& l) - { - return symbol_type (token::TOKEN_TYPE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MEMFILE (location_type l) - { - return symbol_type (token::TOKEN_MEMFILE, std::move (l)); - } -#else - static - symbol_type - make_MEMFILE (const location_type& l) - { - return symbol_type (token::TOKEN_MEMFILE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MYSQL (location_type l) - { - return symbol_type (token::TOKEN_MYSQL, std::move (l)); - } -#else - static - symbol_type - make_MYSQL (const location_type& l) - { - return symbol_type (token::TOKEN_MYSQL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_POSTGRESQL (location_type l) - { - return symbol_type (token::TOKEN_POSTGRESQL, std::move (l)); - } -#else - static - symbol_type - make_POSTGRESQL (const location_type& l) - { - return symbol_type (token::TOKEN_POSTGRESQL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CQL (location_type l) - { - return symbol_type (token::TOKEN_CQL, std::move (l)); - } -#else - static - symbol_type - make_CQL (const location_type& l) - { - return symbol_type (token::TOKEN_CQL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_USER (location_type l) - { - return symbol_type (token::TOKEN_USER, std::move (l)); - } -#else - static - symbol_type - make_USER (const location_type& l) - { - return symbol_type (token::TOKEN_USER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PASSWORD (location_type l) - { - return symbol_type (token::TOKEN_PASSWORD, std::move (l)); - } -#else - static - symbol_type - make_PASSWORD (const location_type& l) - { - return symbol_type (token::TOKEN_PASSWORD, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOST (location_type l) - { - return symbol_type (token::TOKEN_HOST, std::move (l)); - } -#else - static - symbol_type - make_HOST (const location_type& l) - { - return symbol_type (token::TOKEN_HOST, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PORT (location_type l) - { - return symbol_type (token::TOKEN_PORT, std::move (l)); - } -#else - static - symbol_type - make_PORT (const location_type& l) - { - return symbol_type (token::TOKEN_PORT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PERSIST (location_type l) - { - return symbol_type (token::TOKEN_PERSIST, std::move (l)); - } -#else - static - symbol_type - make_PERSIST (const location_type& l) - { - return symbol_type (token::TOKEN_PERSIST, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LFC_INTERVAL (location_type l) - { - return symbol_type (token::TOKEN_LFC_INTERVAL, std::move (l)); - } -#else - static - symbol_type - make_LFC_INTERVAL (const location_type& l) - { - return symbol_type (token::TOKEN_LFC_INTERVAL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_READONLY (location_type l) - { - return symbol_type (token::TOKEN_READONLY, std::move (l)); - } -#else - static - symbol_type - make_READONLY (const location_type& l) - { - return symbol_type (token::TOKEN_READONLY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONNECT_TIMEOUT (location_type l) - { - return symbol_type (token::TOKEN_CONNECT_TIMEOUT, std::move (l)); - } -#else - static - symbol_type - make_CONNECT_TIMEOUT (const location_type& l) - { - return symbol_type (token::TOKEN_CONNECT_TIMEOUT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONTACT_POINTS (location_type l) - { - return symbol_type (token::TOKEN_CONTACT_POINTS, std::move (l)); - } -#else - static - symbol_type - make_CONTACT_POINTS (const location_type& l) - { - return symbol_type (token::TOKEN_CONTACT_POINTS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_RECONNECT_TRIES (location_type l) - { - return symbol_type (token::TOKEN_MAX_RECONNECT_TRIES, std::move (l)); - } -#else - static - symbol_type - make_MAX_RECONNECT_TRIES (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_RECONNECT_TRIES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RECONNECT_WAIT_TIME (location_type l) - { - return symbol_type (token::TOKEN_RECONNECT_WAIT_TIME, std::move (l)); - } -#else - static - symbol_type - make_RECONNECT_WAIT_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_RECONNECT_WAIT_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_KEYSPACE (location_type l) - { - return symbol_type (token::TOKEN_KEYSPACE, std::move (l)); - } -#else - static - symbol_type - make_KEYSPACE (const location_type& l) - { - return symbol_type (token::TOKEN_KEYSPACE, l); - } + static inline + symbol_type + make_DATA_DIRECTORY (const location_type& l); + + static inline + symbol_type + make_CONFIG_CONTROL (const location_type& l); + + static inline + symbol_type + make_CONFIG_DATABASES (const location_type& l); + + static inline + symbol_type + make_INTERFACES_CONFIG (const location_type& l); + + static inline + symbol_type + make_INTERFACES (const location_type& l); + + static inline + symbol_type + make_RE_DETECT (const location_type& l); + + static inline + symbol_type + make_LEASE_DATABASE (const location_type& l); + + static inline + symbol_type + make_HOSTS_DATABASE (const location_type& l); + + static inline + symbol_type + make_HOSTS_DATABASES (const location_type& l); + + static inline + symbol_type + make_TYPE (const location_type& l); + + static inline + symbol_type + make_MEMFILE (const location_type& l); + + static inline + symbol_type + make_MYSQL (const location_type& l); + + static inline + symbol_type + make_POSTGRESQL (const location_type& l); + + static inline + symbol_type + make_CQL (const location_type& l); + + static inline + symbol_type + make_USER (const location_type& l); + + static inline + symbol_type + make_PASSWORD (const location_type& l); + + static inline + symbol_type + make_HOST (const location_type& l); + + static inline + symbol_type + make_PORT (const location_type& l); + + static inline + symbol_type + make_PERSIST (const location_type& l); + + static inline + symbol_type + make_LFC_INTERVAL (const location_type& l); + + static inline + symbol_type + make_READONLY (const location_type& l); + + static inline + symbol_type + make_CONNECT_TIMEOUT (const location_type& l); + + static inline + symbol_type + make_CONTACT_POINTS (const location_type& l); + + static inline + symbol_type + make_MAX_RECONNECT_TRIES (const location_type& l); + + static inline + symbol_type + make_RECONNECT_WAIT_TIME (const location_type& l); + + static inline + symbol_type + make_KEYSPACE (const location_type& l); + + static inline + symbol_type + make_CONSISTENCY (const location_type& l); + + static inline + symbol_type + make_SERIAL_CONSISTENCY (const location_type& l); + + static inline + symbol_type + make_REQUEST_TIMEOUT (const location_type& l); + + static inline + symbol_type + make_TCP_KEEPALIVE (const location_type& l); + + static inline + symbol_type + make_TCP_NODELAY (const location_type& l); + + static inline + symbol_type + make_PREFERRED_LIFETIME (const location_type& l); + + static inline + symbol_type + make_VALID_LIFETIME (const location_type& l); + + static inline + symbol_type + make_RENEW_TIMER (const location_type& l); + + static inline + symbol_type + make_REBIND_TIMER (const location_type& l); + + static inline + symbol_type + make_DECLINE_PROBATION_PERIOD (const location_type& l); + + static inline + symbol_type + make_SERVER_TAG (const location_type& l); + + static inline + symbol_type + make_SUBNET6 (const location_type& l); + + static inline + symbol_type + make_OPTION_DEF (const location_type& l); + + static inline + symbol_type + make_OPTION_DATA (const location_type& l); + + static inline + symbol_type + make_NAME (const location_type& l); + + static inline + symbol_type + make_DATA (const location_type& l); + + static inline + symbol_type + make_CODE (const location_type& l); + + static inline + symbol_type + make_SPACE (const location_type& l); + + static inline + symbol_type + make_CSV_FORMAT (const location_type& l); + + static inline + symbol_type + make_ALWAYS_SEND (const location_type& l); + + static inline + symbol_type + make_RECORD_TYPES (const location_type& l); + + static inline + symbol_type + make_ENCAPSULATE (const location_type& l); + + static inline + symbol_type + make_ARRAY (const location_type& l); + + static inline + symbol_type + make_POOLS (const location_type& l); + + static inline + symbol_type + make_POOL (const location_type& l); + + static inline + symbol_type + make_PD_POOLS (const location_type& l); + + static inline + symbol_type + make_PREFIX (const location_type& l); + + static inline + symbol_type + make_PREFIX_LEN (const location_type& l); + + static inline + symbol_type + make_EXCLUDED_PREFIX (const location_type& l); + + static inline + symbol_type + make_EXCLUDED_PREFIX_LEN (const location_type& l); + + static inline + symbol_type + make_DELEGATED_LEN (const location_type& l); + + static inline + symbol_type + make_USER_CONTEXT (const location_type& l); + + static inline + symbol_type + make_COMMENT (const location_type& l); + + static inline + symbol_type + make_SUBNET (const location_type& l); + + static inline + symbol_type + make_INTERFACE (const location_type& l); + + static inline + symbol_type + make_INTERFACE_ID (const location_type& l); + + static inline + symbol_type + make_ID (const location_type& l); + + static inline + symbol_type + make_RAPID_COMMIT (const location_type& l); + + static inline + symbol_type + make_RESERVATION_MODE (const location_type& l); + + static inline + symbol_type + make_DISABLED (const location_type& l); + + static inline + symbol_type + make_OUT_OF_POOL (const location_type& l); + + static inline + symbol_type + make_GLOBAL (const location_type& l); + + static inline + symbol_type + make_ALL (const location_type& l); + + static inline + symbol_type + make_SHARED_NETWORKS (const location_type& l); + + static inline + symbol_type + make_MAC_SOURCES (const location_type& l); + + static inline + symbol_type + make_RELAY_SUPPLIED_OPTIONS (const location_type& l); + + static inline + symbol_type + make_HOST_RESERVATION_IDENTIFIERS (const location_type& l); + + static inline + symbol_type + make_SANITY_CHECKS (const location_type& l); + + static inline + symbol_type + make_LEASE_CHECKS (const location_type& l); + + static inline + symbol_type + make_CLIENT_CLASSES (const location_type& l); + + static inline + symbol_type + make_REQUIRE_CLIENT_CLASSES (const location_type& l); + + static inline + symbol_type + make_TEST (const location_type& l); + + static inline + symbol_type + make_ONLY_IF_REQUIRED (const location_type& l); + + static inline + symbol_type + make_CLIENT_CLASS (const location_type& l); + + static inline + symbol_type + make_RESERVATIONS (const location_type& l); + + static inline + symbol_type + make_IP_ADDRESSES (const location_type& l); + + static inline + symbol_type + make_PREFIXES (const location_type& l); + + static inline + symbol_type + make_DUID (const location_type& l); + + static inline + symbol_type + make_HW_ADDRESS (const location_type& l); + + static inline + symbol_type + make_HOSTNAME (const location_type& l); + + static inline + symbol_type + make_FLEX_ID (const location_type& l); + + static inline + symbol_type + make_RELAY (const location_type& l); + + static inline + symbol_type + make_IP_ADDRESS (const location_type& l); + + static inline + symbol_type + make_HOOKS_LIBRARIES (const location_type& l); + + static inline + symbol_type + make_LIBRARY (const location_type& l); + + static inline + symbol_type + make_PARAMETERS (const location_type& l); + + static inline + symbol_type + make_EXPIRED_LEASES_PROCESSING (const location_type& l); + + static inline + symbol_type + make_RECLAIM_TIMER_WAIT_TIME (const location_type& l); + + static inline + symbol_type + make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (const location_type& l); + + static inline + symbol_type + make_HOLD_RECLAIMED_TIME (const location_type& l); + + static inline + symbol_type + make_MAX_RECLAIM_LEASES (const location_type& l); + + static inline + symbol_type + make_MAX_RECLAIM_TIME (const location_type& l); + + static inline + symbol_type + make_UNWARNED_RECLAIM_CYCLES (const location_type& l); + + static inline + symbol_type + make_SERVER_ID (const location_type& l); + + static inline + symbol_type + make_LLT (const location_type& l); + + static inline + symbol_type + make_EN (const location_type& l); + + static inline + symbol_type + make_LL (const location_type& l); + + static inline + symbol_type + make_IDENTIFIER (const location_type& l); + + static inline + symbol_type + make_HTYPE (const location_type& l); + + static inline + symbol_type + make_TIME (const location_type& l); + + static inline + symbol_type + make_ENTERPRISE_ID (const location_type& l); + + static inline + symbol_type + make_DHCP4O6_PORT (const location_type& l); + + static inline + symbol_type + make_CONTROL_SOCKET (const location_type& l); + + static inline + symbol_type + make_SOCKET_TYPE (const location_type& l); + + static inline + symbol_type + make_SOCKET_NAME (const location_type& l); + + static inline + symbol_type + make_DHCP_QUEUE_CONTROL (const location_type& l); + + static inline + symbol_type + make_DHCP_DDNS (const location_type& l); + + static inline + symbol_type + make_ENABLE_UPDATES (const location_type& l); + + static inline + symbol_type + make_QUALIFYING_SUFFIX (const location_type& l); + + static inline + symbol_type + make_SERVER_IP (const location_type& l); + + static inline + symbol_type + make_SERVER_PORT (const location_type& l); + + static inline + symbol_type + make_SENDER_IP (const location_type& l); + + static inline + symbol_type + make_SENDER_PORT (const location_type& l); + + static inline + symbol_type + make_MAX_QUEUE_SIZE (const location_type& l); + + static inline + symbol_type + make_NCR_PROTOCOL (const location_type& l); + + static inline + symbol_type + make_NCR_FORMAT (const location_type& l); + + static inline + symbol_type + make_OVERRIDE_NO_UPDATE (const location_type& l); + + static inline + symbol_type + make_OVERRIDE_CLIENT_UPDATE (const location_type& l); + + static inline + symbol_type + make_REPLACE_CLIENT_NAME (const location_type& l); + + static inline + symbol_type + make_GENERATED_PREFIX (const location_type& l); + + static inline + symbol_type + make_UDP (const location_type& l); + + static inline + symbol_type + make_TCP (const location_type& l); + + static inline + symbol_type + make_JSON (const location_type& l); + + static inline + symbol_type + make_WHEN_PRESENT (const location_type& l); + + static inline + symbol_type + make_NEVER (const location_type& l); + + static inline + symbol_type + make_ALWAYS (const location_type& l); + + static inline + symbol_type + make_WHEN_NOT_PRESENT (const location_type& l); + + static inline + symbol_type + make_HOSTNAME_CHAR_SET (const location_type& l); + + static inline + symbol_type + make_HOSTNAME_CHAR_REPLACEMENT (const location_type& l); + + static inline + symbol_type + make_LOGGING (const location_type& l); + + static inline + symbol_type + make_LOGGERS (const location_type& l); + + static inline + symbol_type + make_OUTPUT_OPTIONS (const location_type& l); + + static inline + symbol_type + make_OUTPUT (const location_type& l); + + static inline + symbol_type + make_DEBUGLEVEL (const location_type& l); + + static inline + symbol_type + make_SEVERITY (const location_type& l); + + static inline + symbol_type + make_FLUSH (const location_type& l); + + static inline + symbol_type + make_MAXSIZE (const location_type& l); + + static inline + symbol_type + make_MAXVER (const location_type& l); + + static inline + symbol_type + make_DHCP4 (const location_type& l); + + static inline + symbol_type + make_DHCPDDNS (const location_type& l); + + static inline + symbol_type + make_CONTROL_AGENT (const location_type& l); + + static inline + symbol_type + make_TOPLEVEL_JSON (const location_type& l); + + static inline + symbol_type + make_TOPLEVEL_DHCP6 (const location_type& l); + + static inline + symbol_type + make_SUB_DHCP6 (const location_type& l); + + static inline + symbol_type + make_SUB_INTERFACES6 (const location_type& l); + + static inline + symbol_type + make_SUB_SUBNET6 (const location_type& l); + + static inline + symbol_type + make_SUB_POOL6 (const location_type& l); + + static inline + symbol_type + make_SUB_PD_POOL (const location_type& l); + + static inline + symbol_type + make_SUB_RESERVATION (const location_type& l); + + static inline + symbol_type + make_SUB_OPTION_DEFS (const location_type& l); + + static inline + symbol_type + make_SUB_OPTION_DEF (const location_type& l); + + static inline + symbol_type + make_SUB_OPTION_DATA (const location_type& l); + + static inline + symbol_type + make_SUB_HOOKS_LIBRARY (const location_type& l); + + static inline + symbol_type + make_SUB_DHCP_DDNS (const location_type& l); + + static inline + symbol_type + make_SUB_LOGGING (const location_type& l); + + static inline + symbol_type + make_SUB_CONFIG_CONTROL (const location_type& l); + + static inline + symbol_type + make_STRING (const std::string& v, const location_type& l); + + static inline + symbol_type + make_INTEGER (const int64_t& v, const location_type& l); + + static inline + symbol_type + make_FLOAT (const double& v, const location_type& l); + + static inline + symbol_type + make_BOOLEAN (const bool& v, const location_type& l); + + + /// Build a parser object. + Dhcp6Parser (isc::dhcp::Parser6Context& ctx_yyarg); + virtual ~Dhcp6Parser (); + + /// Parse. + /// \returns 0 iff parsing succeeded. + virtual int parse (); + +#if PARSER6_DEBUG + /// The current debugging stream. + std::ostream& debug_stream () const YY_ATTRIBUTE_PURE; + /// Set the current debugging stream. + void set_debug_stream (std::ostream &); + + /// Type for debugging levels. + typedef int debug_level_type; + /// The current debugging level. + debug_level_type debug_level () const YY_ATTRIBUTE_PURE; + /// Set the current debugging level. + void set_debug_level (debug_level_type l); #endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_REQUEST_TIMEOUT (location_type l) - { - return symbol_type (token::TOKEN_REQUEST_TIMEOUT, std::move (l)); - } -#else - static - symbol_type - make_REQUEST_TIMEOUT (const location_type& l) - { - return symbol_type (token::TOKEN_REQUEST_TIMEOUT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TCP_KEEPALIVE (location_type l) - { - return symbol_type (token::TOKEN_TCP_KEEPALIVE, std::move (l)); - } -#else - static - symbol_type - make_TCP_KEEPALIVE (const location_type& l) - { - return symbol_type (token::TOKEN_TCP_KEEPALIVE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TCP_NODELAY (location_type l) - { - return symbol_type (token::TOKEN_TCP_NODELAY, std::move (l)); - } -#else - static - symbol_type - make_TCP_NODELAY (const location_type& l) - { - return symbol_type (token::TOKEN_TCP_NODELAY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PREFERRED_LIFETIME (location_type l) - { - return symbol_type (token::TOKEN_PREFERRED_LIFETIME, std::move (l)); - } -#else - static - symbol_type - make_PREFERRED_LIFETIME (const location_type& l) - { - return symbol_type (token::TOKEN_PREFERRED_LIFETIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_VALID_LIFETIME (location_type l) - { - return symbol_type (token::TOKEN_VALID_LIFETIME, std::move (l)); - } -#else - static - symbol_type - make_VALID_LIFETIME (const location_type& l) - { - return symbol_type (token::TOKEN_VALID_LIFETIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RENEW_TIMER (location_type l) - { - return symbol_type (token::TOKEN_RENEW_TIMER, std::move (l)); - } -#else - static - symbol_type - make_RENEW_TIMER (const location_type& l) - { - return symbol_type (token::TOKEN_RENEW_TIMER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_REBIND_TIMER (location_type l) - { - return symbol_type (token::TOKEN_REBIND_TIMER, std::move (l)); - } -#else - static - symbol_type - make_REBIND_TIMER (const location_type& l) - { - return symbol_type (token::TOKEN_REBIND_TIMER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DECLINE_PROBATION_PERIOD (location_type l) - { - return symbol_type (token::TOKEN_DECLINE_PROBATION_PERIOD, std::move (l)); - } -#else - static - symbol_type - make_DECLINE_PROBATION_PERIOD (const location_type& l) - { - return symbol_type (token::TOKEN_DECLINE_PROBATION_PERIOD, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SERVER_TAG (location_type l) - { - return symbol_type (token::TOKEN_SERVER_TAG, std::move (l)); - } -#else - static - symbol_type - make_SERVER_TAG (const location_type& l) - { - return symbol_type (token::TOKEN_SERVER_TAG, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUBNET6 (location_type l) - { - return symbol_type (token::TOKEN_SUBNET6, std::move (l)); - } -#else - static - symbol_type - make_SUBNET6 (const location_type& l) - { - return symbol_type (token::TOKEN_SUBNET6, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OPTION_DEF (location_type l) - { - return symbol_type (token::TOKEN_OPTION_DEF, std::move (l)); - } -#else - static - symbol_type - make_OPTION_DEF (const location_type& l) - { - return symbol_type (token::TOKEN_OPTION_DEF, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OPTION_DATA (location_type l) - { - return symbol_type (token::TOKEN_OPTION_DATA, std::move (l)); - } -#else - static - symbol_type - make_OPTION_DATA (const location_type& l) - { - return symbol_type (token::TOKEN_OPTION_DATA, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_NAME (location_type l) - { - return symbol_type (token::TOKEN_NAME, std::move (l)); - } -#else - static - symbol_type - make_NAME (const location_type& l) - { - return symbol_type (token::TOKEN_NAME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DATA (location_type l) - { - return symbol_type (token::TOKEN_DATA, std::move (l)); - } -#else - static - symbol_type - make_DATA (const location_type& l) - { - return symbol_type (token::TOKEN_DATA, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CODE (location_type l) - { - return symbol_type (token::TOKEN_CODE, std::move (l)); - } -#else - static - symbol_type - make_CODE (const location_type& l) - { - return symbol_type (token::TOKEN_CODE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SPACE (location_type l) - { - return symbol_type (token::TOKEN_SPACE, std::move (l)); - } -#else - static - symbol_type - make_SPACE (const location_type& l) - { - return symbol_type (token::TOKEN_SPACE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CSV_FORMAT (location_type l) - { - return symbol_type (token::TOKEN_CSV_FORMAT, std::move (l)); - } -#else - static - symbol_type - make_CSV_FORMAT (const location_type& l) - { - return symbol_type (token::TOKEN_CSV_FORMAT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ALWAYS_SEND (location_type l) - { - return symbol_type (token::TOKEN_ALWAYS_SEND, std::move (l)); - } -#else - static - symbol_type - make_ALWAYS_SEND (const location_type& l) - { - return symbol_type (token::TOKEN_ALWAYS_SEND, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RECORD_TYPES (location_type l) - { - return symbol_type (token::TOKEN_RECORD_TYPES, std::move (l)); - } -#else - static - symbol_type - make_RECORD_TYPES (const location_type& l) - { - return symbol_type (token::TOKEN_RECORD_TYPES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ENCAPSULATE (location_type l) - { - return symbol_type (token::TOKEN_ENCAPSULATE, std::move (l)); - } -#else - static - symbol_type - make_ENCAPSULATE (const location_type& l) - { - return symbol_type (token::TOKEN_ENCAPSULATE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ARRAY (location_type l) - { - return symbol_type (token::TOKEN_ARRAY, std::move (l)); - } -#else - static - symbol_type - make_ARRAY (const location_type& l) - { - return symbol_type (token::TOKEN_ARRAY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_POOLS (location_type l) - { - return symbol_type (token::TOKEN_POOLS, std::move (l)); - } -#else - static - symbol_type - make_POOLS (const location_type& l) - { - return symbol_type (token::TOKEN_POOLS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_POOL (location_type l) - { - return symbol_type (token::TOKEN_POOL, std::move (l)); - } -#else - static - symbol_type - make_POOL (const location_type& l) - { - return symbol_type (token::TOKEN_POOL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PD_POOLS (location_type l) - { - return symbol_type (token::TOKEN_PD_POOLS, std::move (l)); - } -#else - static - symbol_type - make_PD_POOLS (const location_type& l) - { - return symbol_type (token::TOKEN_PD_POOLS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PREFIX (location_type l) - { - return symbol_type (token::TOKEN_PREFIX, std::move (l)); - } -#else - static - symbol_type - make_PREFIX (const location_type& l) - { - return symbol_type (token::TOKEN_PREFIX, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PREFIX_LEN (location_type l) - { - return symbol_type (token::TOKEN_PREFIX_LEN, std::move (l)); - } -#else - static - symbol_type - make_PREFIX_LEN (const location_type& l) - { - return symbol_type (token::TOKEN_PREFIX_LEN, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_EXCLUDED_PREFIX (location_type l) - { - return symbol_type (token::TOKEN_EXCLUDED_PREFIX, std::move (l)); - } -#else - static - symbol_type - make_EXCLUDED_PREFIX (const location_type& l) - { - return symbol_type (token::TOKEN_EXCLUDED_PREFIX, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_EXCLUDED_PREFIX_LEN (location_type l) - { - return symbol_type (token::TOKEN_EXCLUDED_PREFIX_LEN, std::move (l)); - } -#else - static - symbol_type - make_EXCLUDED_PREFIX_LEN (const location_type& l) - { - return symbol_type (token::TOKEN_EXCLUDED_PREFIX_LEN, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DELEGATED_LEN (location_type l) - { - return symbol_type (token::TOKEN_DELEGATED_LEN, std::move (l)); - } -#else - static - symbol_type - make_DELEGATED_LEN (const location_type& l) - { - return symbol_type (token::TOKEN_DELEGATED_LEN, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_USER_CONTEXT (location_type l) - { - return symbol_type (token::TOKEN_USER_CONTEXT, std::move (l)); - } -#else - static - symbol_type - make_USER_CONTEXT (const location_type& l) - { - return symbol_type (token::TOKEN_USER_CONTEXT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_COMMENT (location_type l) - { - return symbol_type (token::TOKEN_COMMENT, std::move (l)); - } -#else - static - symbol_type - make_COMMENT (const location_type& l) - { - return symbol_type (token::TOKEN_COMMENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUBNET (location_type l) - { - return symbol_type (token::TOKEN_SUBNET, std::move (l)); - } -#else - static - symbol_type - make_SUBNET (const location_type& l) - { - return symbol_type (token::TOKEN_SUBNET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_INTERFACE (location_type l) - { - return symbol_type (token::TOKEN_INTERFACE, std::move (l)); - } -#else - static - symbol_type - make_INTERFACE (const location_type& l) - { - return symbol_type (token::TOKEN_INTERFACE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_INTERFACE_ID (location_type l) - { - return symbol_type (token::TOKEN_INTERFACE_ID, std::move (l)); - } -#else - static - symbol_type - make_INTERFACE_ID (const location_type& l) - { - return symbol_type (token::TOKEN_INTERFACE_ID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ID (location_type l) - { - return symbol_type (token::TOKEN_ID, std::move (l)); - } -#else - static - symbol_type - make_ID (const location_type& l) - { - return symbol_type (token::TOKEN_ID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RAPID_COMMIT (location_type l) - { - return symbol_type (token::TOKEN_RAPID_COMMIT, std::move (l)); - } -#else - static - symbol_type - make_RAPID_COMMIT (const location_type& l) - { - return symbol_type (token::TOKEN_RAPID_COMMIT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RESERVATION_MODE (location_type l) - { - return symbol_type (token::TOKEN_RESERVATION_MODE, std::move (l)); - } -#else - static - symbol_type - make_RESERVATION_MODE (const location_type& l) - { - return symbol_type (token::TOKEN_RESERVATION_MODE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DISABLED (location_type l) - { - return symbol_type (token::TOKEN_DISABLED, std::move (l)); - } -#else - static - symbol_type - make_DISABLED (const location_type& l) - { - return symbol_type (token::TOKEN_DISABLED, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OUT_OF_POOL (location_type l) - { - return symbol_type (token::TOKEN_OUT_OF_POOL, std::move (l)); - } -#else - static - symbol_type - make_OUT_OF_POOL (const location_type& l) - { - return symbol_type (token::TOKEN_OUT_OF_POOL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_GLOBAL (location_type l) - { - return symbol_type (token::TOKEN_GLOBAL, std::move (l)); - } -#else - static - symbol_type - make_GLOBAL (const location_type& l) - { - return symbol_type (token::TOKEN_GLOBAL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ALL (location_type l) - { - return symbol_type (token::TOKEN_ALL, std::move (l)); - } -#else - static - symbol_type - make_ALL (const location_type& l) - { - return symbol_type (token::TOKEN_ALL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SHARED_NETWORKS (location_type l) - { - return symbol_type (token::TOKEN_SHARED_NETWORKS, std::move (l)); - } -#else - static - symbol_type - make_SHARED_NETWORKS (const location_type& l) - { - return symbol_type (token::TOKEN_SHARED_NETWORKS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAC_SOURCES (location_type l) - { - return symbol_type (token::TOKEN_MAC_SOURCES, std::move (l)); - } -#else - static - symbol_type - make_MAC_SOURCES (const location_type& l) - { - return symbol_type (token::TOKEN_MAC_SOURCES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RELAY_SUPPLIED_OPTIONS (location_type l) - { - return symbol_type (token::TOKEN_RELAY_SUPPLIED_OPTIONS, std::move (l)); - } -#else - static - symbol_type - make_RELAY_SUPPLIED_OPTIONS (const location_type& l) - { - return symbol_type (token::TOKEN_RELAY_SUPPLIED_OPTIONS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOST_RESERVATION_IDENTIFIERS (location_type l) - { - return symbol_type (token::TOKEN_HOST_RESERVATION_IDENTIFIERS, std::move (l)); - } -#else - static - symbol_type - make_HOST_RESERVATION_IDENTIFIERS (const location_type& l) - { - return symbol_type (token::TOKEN_HOST_RESERVATION_IDENTIFIERS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SANITY_CHECKS (location_type l) - { - return symbol_type (token::TOKEN_SANITY_CHECKS, std::move (l)); - } -#else - static - symbol_type - make_SANITY_CHECKS (const location_type& l) - { - return symbol_type (token::TOKEN_SANITY_CHECKS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LEASE_CHECKS (location_type l) - { - return symbol_type (token::TOKEN_LEASE_CHECKS, std::move (l)); - } -#else - static - symbol_type - make_LEASE_CHECKS (const location_type& l) - { - return symbol_type (token::TOKEN_LEASE_CHECKS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CLIENT_CLASSES (location_type l) - { - return symbol_type (token::TOKEN_CLIENT_CLASSES, std::move (l)); - } -#else - static - symbol_type - make_CLIENT_CLASSES (const location_type& l) - { - return symbol_type (token::TOKEN_CLIENT_CLASSES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_REQUIRE_CLIENT_CLASSES (location_type l) - { - return symbol_type (token::TOKEN_REQUIRE_CLIENT_CLASSES, std::move (l)); - } -#else - static - symbol_type - make_REQUIRE_CLIENT_CLASSES (const location_type& l) - { - return symbol_type (token::TOKEN_REQUIRE_CLIENT_CLASSES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TEST (location_type l) - { - return symbol_type (token::TOKEN_TEST, std::move (l)); - } -#else - static - symbol_type - make_TEST (const location_type& l) - { - return symbol_type (token::TOKEN_TEST, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ONLY_IF_REQUIRED (location_type l) - { - return symbol_type (token::TOKEN_ONLY_IF_REQUIRED, std::move (l)); - } -#else - static - symbol_type - make_ONLY_IF_REQUIRED (const location_type& l) - { - return symbol_type (token::TOKEN_ONLY_IF_REQUIRED, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CLIENT_CLASS (location_type l) - { - return symbol_type (token::TOKEN_CLIENT_CLASS, std::move (l)); - } -#else - static - symbol_type - make_CLIENT_CLASS (const location_type& l) - { - return symbol_type (token::TOKEN_CLIENT_CLASS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RESERVATIONS (location_type l) - { - return symbol_type (token::TOKEN_RESERVATIONS, std::move (l)); - } -#else - static - symbol_type - make_RESERVATIONS (const location_type& l) - { - return symbol_type (token::TOKEN_RESERVATIONS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_IP_ADDRESSES (location_type l) - { - return symbol_type (token::TOKEN_IP_ADDRESSES, std::move (l)); - } -#else - static - symbol_type - make_IP_ADDRESSES (const location_type& l) - { - return symbol_type (token::TOKEN_IP_ADDRESSES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PREFIXES (location_type l) - { - return symbol_type (token::TOKEN_PREFIXES, std::move (l)); - } -#else - static - symbol_type - make_PREFIXES (const location_type& l) - { - return symbol_type (token::TOKEN_PREFIXES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DUID (location_type l) - { - return symbol_type (token::TOKEN_DUID, std::move (l)); - } -#else - static - symbol_type - make_DUID (const location_type& l) - { - return symbol_type (token::TOKEN_DUID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HW_ADDRESS (location_type l) - { - return symbol_type (token::TOKEN_HW_ADDRESS, std::move (l)); - } -#else - static - symbol_type - make_HW_ADDRESS (const location_type& l) - { - return symbol_type (token::TOKEN_HW_ADDRESS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOSTNAME (location_type l) - { - return symbol_type (token::TOKEN_HOSTNAME, std::move (l)); - } -#else - static - symbol_type - make_HOSTNAME (const location_type& l) - { - return symbol_type (token::TOKEN_HOSTNAME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_FLEX_ID (location_type l) - { - return symbol_type (token::TOKEN_FLEX_ID, std::move (l)); - } -#else - static - symbol_type - make_FLEX_ID (const location_type& l) - { - return symbol_type (token::TOKEN_FLEX_ID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RELAY (location_type l) - { - return symbol_type (token::TOKEN_RELAY, std::move (l)); - } -#else - static - symbol_type - make_RELAY (const location_type& l) - { - return symbol_type (token::TOKEN_RELAY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_IP_ADDRESS (location_type l) - { - return symbol_type (token::TOKEN_IP_ADDRESS, std::move (l)); - } -#else - static - symbol_type - make_IP_ADDRESS (const location_type& l) - { - return symbol_type (token::TOKEN_IP_ADDRESS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOOKS_LIBRARIES (location_type l) - { - return symbol_type (token::TOKEN_HOOKS_LIBRARIES, std::move (l)); - } -#else - static - symbol_type - make_HOOKS_LIBRARIES (const location_type& l) - { - return symbol_type (token::TOKEN_HOOKS_LIBRARIES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LIBRARY (location_type l) - { - return symbol_type (token::TOKEN_LIBRARY, std::move (l)); - } -#else - static - symbol_type - make_LIBRARY (const location_type& l) - { - return symbol_type (token::TOKEN_LIBRARY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PARAMETERS (location_type l) - { - return symbol_type (token::TOKEN_PARAMETERS, std::move (l)); - } -#else - static - symbol_type - make_PARAMETERS (const location_type& l) - { - return symbol_type (token::TOKEN_PARAMETERS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_EXPIRED_LEASES_PROCESSING (location_type l) - { - return symbol_type (token::TOKEN_EXPIRED_LEASES_PROCESSING, std::move (l)); - } -#else - static - symbol_type - make_EXPIRED_LEASES_PROCESSING (const location_type& l) - { - return symbol_type (token::TOKEN_EXPIRED_LEASES_PROCESSING, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RECLAIM_TIMER_WAIT_TIME (location_type l) - { - return symbol_type (token::TOKEN_RECLAIM_TIMER_WAIT_TIME, std::move (l)); - } -#else - static - symbol_type - make_RECLAIM_TIMER_WAIT_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_RECLAIM_TIMER_WAIT_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (location_type l) - { - return symbol_type (token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME, std::move (l)); - } -#else - static - symbol_type - make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOLD_RECLAIMED_TIME (location_type l) - { - return symbol_type (token::TOKEN_HOLD_RECLAIMED_TIME, std::move (l)); - } -#else - static - symbol_type - make_HOLD_RECLAIMED_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_HOLD_RECLAIMED_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_RECLAIM_LEASES (location_type l) - { - return symbol_type (token::TOKEN_MAX_RECLAIM_LEASES, std::move (l)); - } -#else - static - symbol_type - make_MAX_RECLAIM_LEASES (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_RECLAIM_LEASES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_RECLAIM_TIME (location_type l) - { - return symbol_type (token::TOKEN_MAX_RECLAIM_TIME, std::move (l)); - } -#else - static - symbol_type - make_MAX_RECLAIM_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_RECLAIM_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_UNWARNED_RECLAIM_CYCLES (location_type l) - { - return symbol_type (token::TOKEN_UNWARNED_RECLAIM_CYCLES, std::move (l)); - } -#else - static - symbol_type - make_UNWARNED_RECLAIM_CYCLES (const location_type& l) - { - return symbol_type (token::TOKEN_UNWARNED_RECLAIM_CYCLES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SERVER_ID (location_type l) - { - return symbol_type (token::TOKEN_SERVER_ID, std::move (l)); - } -#else - static - symbol_type - make_SERVER_ID (const location_type& l) - { - return symbol_type (token::TOKEN_SERVER_ID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LLT (location_type l) - { - return symbol_type (token::TOKEN_LLT, std::move (l)); - } -#else - static - symbol_type - make_LLT (const location_type& l) - { - return symbol_type (token::TOKEN_LLT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_EN (location_type l) - { - return symbol_type (token::TOKEN_EN, std::move (l)); - } -#else - static - symbol_type - make_EN (const location_type& l) - { - return symbol_type (token::TOKEN_EN, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LL (location_type l) - { - return symbol_type (token::TOKEN_LL, std::move (l)); - } -#else - static - symbol_type - make_LL (const location_type& l) - { - return symbol_type (token::TOKEN_LL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_IDENTIFIER (location_type l) - { - return symbol_type (token::TOKEN_IDENTIFIER, std::move (l)); - } -#else - static - symbol_type - make_IDENTIFIER (const location_type& l) - { - return symbol_type (token::TOKEN_IDENTIFIER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HTYPE (location_type l) - { - return symbol_type (token::TOKEN_HTYPE, std::move (l)); - } -#else - static - symbol_type - make_HTYPE (const location_type& l) - { - return symbol_type (token::TOKEN_HTYPE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TIME (location_type l) - { - return symbol_type (token::TOKEN_TIME, std::move (l)); - } -#else - static - symbol_type - make_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ENTERPRISE_ID (location_type l) - { - return symbol_type (token::TOKEN_ENTERPRISE_ID, std::move (l)); - } -#else - static - symbol_type - make_ENTERPRISE_ID (const location_type& l) - { - return symbol_type (token::TOKEN_ENTERPRISE_ID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCP4O6_PORT (location_type l) - { - return symbol_type (token::TOKEN_DHCP4O6_PORT, std::move (l)); - } -#else - static - symbol_type - make_DHCP4O6_PORT (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP4O6_PORT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONTROL_SOCKET (location_type l) - { - return symbol_type (token::TOKEN_CONTROL_SOCKET, std::move (l)); - } -#else - static - symbol_type - make_CONTROL_SOCKET (const location_type& l) - { - return symbol_type (token::TOKEN_CONTROL_SOCKET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SOCKET_TYPE (location_type l) - { - return symbol_type (token::TOKEN_SOCKET_TYPE, std::move (l)); - } -#else - static - symbol_type - make_SOCKET_TYPE (const location_type& l) - { - return symbol_type (token::TOKEN_SOCKET_TYPE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SOCKET_NAME (location_type l) - { - return symbol_type (token::TOKEN_SOCKET_NAME, std::move (l)); - } -#else - static - symbol_type - make_SOCKET_NAME (const location_type& l) - { - return symbol_type (token::TOKEN_SOCKET_NAME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCP_QUEUE_CONTROL (location_type l) - { - return symbol_type (token::TOKEN_DHCP_QUEUE_CONTROL, std::move (l)); - } -#else - static - symbol_type - make_DHCP_QUEUE_CONTROL (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP_QUEUE_CONTROL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCP_DDNS (location_type l) - { - return symbol_type (token::TOKEN_DHCP_DDNS, std::move (l)); - } -#else - static - symbol_type - make_DHCP_DDNS (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP_DDNS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ENABLE_UPDATES (location_type l) - { - return symbol_type (token::TOKEN_ENABLE_UPDATES, std::move (l)); - } -#else - static - symbol_type - make_ENABLE_UPDATES (const location_type& l) - { - return symbol_type (token::TOKEN_ENABLE_UPDATES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_QUALIFYING_SUFFIX (location_type l) - { - return symbol_type (token::TOKEN_QUALIFYING_SUFFIX, std::move (l)); - } -#else - static - symbol_type - make_QUALIFYING_SUFFIX (const location_type& l) - { - return symbol_type (token::TOKEN_QUALIFYING_SUFFIX, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SERVER_IP (location_type l) - { - return symbol_type (token::TOKEN_SERVER_IP, std::move (l)); - } -#else - static - symbol_type - make_SERVER_IP (const location_type& l) - { - return symbol_type (token::TOKEN_SERVER_IP, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SERVER_PORT (location_type l) - { - return symbol_type (token::TOKEN_SERVER_PORT, std::move (l)); - } -#else - static - symbol_type - make_SERVER_PORT (const location_type& l) - { - return symbol_type (token::TOKEN_SERVER_PORT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SENDER_IP (location_type l) - { - return symbol_type (token::TOKEN_SENDER_IP, std::move (l)); - } -#else - static - symbol_type - make_SENDER_IP (const location_type& l) - { - return symbol_type (token::TOKEN_SENDER_IP, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SENDER_PORT (location_type l) - { - return symbol_type (token::TOKEN_SENDER_PORT, std::move (l)); - } -#else - static - symbol_type - make_SENDER_PORT (const location_type& l) - { - return symbol_type (token::TOKEN_SENDER_PORT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_QUEUE_SIZE (location_type l) - { - return symbol_type (token::TOKEN_MAX_QUEUE_SIZE, std::move (l)); - } -#else - static - symbol_type - make_MAX_QUEUE_SIZE (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_QUEUE_SIZE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_NCR_PROTOCOL (location_type l) - { - return symbol_type (token::TOKEN_NCR_PROTOCOL, std::move (l)); - } -#else - static - symbol_type - make_NCR_PROTOCOL (const location_type& l) - { - return symbol_type (token::TOKEN_NCR_PROTOCOL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_NCR_FORMAT (location_type l) - { - return symbol_type (token::TOKEN_NCR_FORMAT, std::move (l)); - } -#else - static - symbol_type - make_NCR_FORMAT (const location_type& l) - { - return symbol_type (token::TOKEN_NCR_FORMAT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OVERRIDE_NO_UPDATE (location_type l) - { - return symbol_type (token::TOKEN_OVERRIDE_NO_UPDATE, std::move (l)); - } -#else - static - symbol_type - make_OVERRIDE_NO_UPDATE (const location_type& l) - { - return symbol_type (token::TOKEN_OVERRIDE_NO_UPDATE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OVERRIDE_CLIENT_UPDATE (location_type l) - { - return symbol_type (token::TOKEN_OVERRIDE_CLIENT_UPDATE, std::move (l)); - } -#else - static - symbol_type - make_OVERRIDE_CLIENT_UPDATE (const location_type& l) - { - return symbol_type (token::TOKEN_OVERRIDE_CLIENT_UPDATE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_REPLACE_CLIENT_NAME (location_type l) - { - return symbol_type (token::TOKEN_REPLACE_CLIENT_NAME, std::move (l)); - } -#else - static - symbol_type - make_REPLACE_CLIENT_NAME (const location_type& l) - { - return symbol_type (token::TOKEN_REPLACE_CLIENT_NAME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_GENERATED_PREFIX (location_type l) - { - return symbol_type (token::TOKEN_GENERATED_PREFIX, std::move (l)); - } -#else - static - symbol_type - make_GENERATED_PREFIX (const location_type& l) - { - return symbol_type (token::TOKEN_GENERATED_PREFIX, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_UDP (location_type l) - { - return symbol_type (token::TOKEN_UDP, std::move (l)); - } -#else - static - symbol_type - make_UDP (const location_type& l) - { - return symbol_type (token::TOKEN_UDP, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TCP (location_type l) - { - return symbol_type (token::TOKEN_TCP, std::move (l)); - } -#else - static - symbol_type - make_TCP (const location_type& l) - { - return symbol_type (token::TOKEN_TCP, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_JSON (location_type l) - { - return symbol_type (token::TOKEN_JSON, std::move (l)); - } -#else - static - symbol_type - make_JSON (const location_type& l) - { - return symbol_type (token::TOKEN_JSON, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_WHEN_PRESENT (location_type l) - { - return symbol_type (token::TOKEN_WHEN_PRESENT, std::move (l)); - } -#else - static - symbol_type - make_WHEN_PRESENT (const location_type& l) - { - return symbol_type (token::TOKEN_WHEN_PRESENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_NEVER (location_type l) - { - return symbol_type (token::TOKEN_NEVER, std::move (l)); - } -#else - static - symbol_type - make_NEVER (const location_type& l) - { - return symbol_type (token::TOKEN_NEVER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ALWAYS (location_type l) - { - return symbol_type (token::TOKEN_ALWAYS, std::move (l)); - } -#else - static - symbol_type - make_ALWAYS (const location_type& l) - { - return symbol_type (token::TOKEN_ALWAYS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_WHEN_NOT_PRESENT (location_type l) - { - return symbol_type (token::TOKEN_WHEN_NOT_PRESENT, std::move (l)); - } -#else - static - symbol_type - make_WHEN_NOT_PRESENT (const location_type& l) - { - return symbol_type (token::TOKEN_WHEN_NOT_PRESENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOSTNAME_CHAR_SET (location_type l) - { - return symbol_type (token::TOKEN_HOSTNAME_CHAR_SET, std::move (l)); - } -#else - static - symbol_type - make_HOSTNAME_CHAR_SET (const location_type& l) - { - return symbol_type (token::TOKEN_HOSTNAME_CHAR_SET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOSTNAME_CHAR_REPLACEMENT (location_type l) - { - return symbol_type (token::TOKEN_HOSTNAME_CHAR_REPLACEMENT, std::move (l)); - } -#else - static - symbol_type - make_HOSTNAME_CHAR_REPLACEMENT (const location_type& l) - { - return symbol_type (token::TOKEN_HOSTNAME_CHAR_REPLACEMENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LOGGING (location_type l) - { - return symbol_type (token::TOKEN_LOGGING, std::move (l)); - } -#else - static - symbol_type - make_LOGGING (const location_type& l) - { - return symbol_type (token::TOKEN_LOGGING, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LOGGERS (location_type l) - { - return symbol_type (token::TOKEN_LOGGERS, std::move (l)); - } -#else - static - symbol_type - make_LOGGERS (const location_type& l) - { - return symbol_type (token::TOKEN_LOGGERS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OUTPUT_OPTIONS (location_type l) - { - return symbol_type (token::TOKEN_OUTPUT_OPTIONS, std::move (l)); - } -#else - static - symbol_type - make_OUTPUT_OPTIONS (const location_type& l) - { - return symbol_type (token::TOKEN_OUTPUT_OPTIONS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OUTPUT (location_type l) - { - return symbol_type (token::TOKEN_OUTPUT, std::move (l)); - } -#else - static - symbol_type - make_OUTPUT (const location_type& l) - { - return symbol_type (token::TOKEN_OUTPUT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DEBUGLEVEL (location_type l) - { - return symbol_type (token::TOKEN_DEBUGLEVEL, std::move (l)); - } -#else - static - symbol_type - make_DEBUGLEVEL (const location_type& l) - { - return symbol_type (token::TOKEN_DEBUGLEVEL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SEVERITY (location_type l) - { - return symbol_type (token::TOKEN_SEVERITY, std::move (l)); - } -#else - static - symbol_type - make_SEVERITY (const location_type& l) - { - return symbol_type (token::TOKEN_SEVERITY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_FLUSH (location_type l) - { - return symbol_type (token::TOKEN_FLUSH, std::move (l)); - } -#else - static - symbol_type - make_FLUSH (const location_type& l) - { - return symbol_type (token::TOKEN_FLUSH, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAXSIZE (location_type l) - { - return symbol_type (token::TOKEN_MAXSIZE, std::move (l)); - } -#else - static - symbol_type - make_MAXSIZE (const location_type& l) - { - return symbol_type (token::TOKEN_MAXSIZE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAXVER (location_type l) - { - return symbol_type (token::TOKEN_MAXVER, std::move (l)); - } -#else - static - symbol_type - make_MAXVER (const location_type& l) - { - return symbol_type (token::TOKEN_MAXVER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCP4 (location_type l) - { - return symbol_type (token::TOKEN_DHCP4, std::move (l)); - } -#else - static - symbol_type - make_DHCP4 (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP4, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCPDDNS (location_type l) - { - return symbol_type (token::TOKEN_DHCPDDNS, std::move (l)); - } -#else - static - symbol_type - make_DHCPDDNS (const location_type& l) - { - return symbol_type (token::TOKEN_DHCPDDNS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONTROL_AGENT (location_type l) - { - return symbol_type (token::TOKEN_CONTROL_AGENT, std::move (l)); - } -#else - static - symbol_type - make_CONTROL_AGENT (const location_type& l) - { - return symbol_type (token::TOKEN_CONTROL_AGENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TOPLEVEL_JSON (location_type l) - { - return symbol_type (token::TOKEN_TOPLEVEL_JSON, std::move (l)); - } -#else - static - symbol_type - make_TOPLEVEL_JSON (const location_type& l) - { - return symbol_type (token::TOKEN_TOPLEVEL_JSON, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TOPLEVEL_DHCP6 (location_type l) - { - return symbol_type (token::TOKEN_TOPLEVEL_DHCP6, std::move (l)); - } -#else - static - symbol_type - make_TOPLEVEL_DHCP6 (const location_type& l) - { - return symbol_type (token::TOKEN_TOPLEVEL_DHCP6, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_DHCP6 (location_type l) - { - return symbol_type (token::TOKEN_SUB_DHCP6, std::move (l)); - } -#else - static - symbol_type - make_SUB_DHCP6 (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_DHCP6, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_INTERFACES6 (location_type l) - { - return symbol_type (token::TOKEN_SUB_INTERFACES6, std::move (l)); - } -#else - static - symbol_type - make_SUB_INTERFACES6 (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_INTERFACES6, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_SUBNET6 (location_type l) - { - return symbol_type (token::TOKEN_SUB_SUBNET6, std::move (l)); - } -#else - static - symbol_type - make_SUB_SUBNET6 (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_SUBNET6, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_POOL6 (location_type l) - { - return symbol_type (token::TOKEN_SUB_POOL6, std::move (l)); - } -#else - static - symbol_type - make_SUB_POOL6 (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_POOL6, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_PD_POOL (location_type l) - { - return symbol_type (token::TOKEN_SUB_PD_POOL, std::move (l)); - } -#else - static - symbol_type - make_SUB_PD_POOL (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_PD_POOL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_RESERVATION (location_type l) - { - return symbol_type (token::TOKEN_SUB_RESERVATION, std::move (l)); - } -#else - static - symbol_type - make_SUB_RESERVATION (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_RESERVATION, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_OPTION_DEFS (location_type l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DEFS, std::move (l)); - } -#else - static - symbol_type - make_SUB_OPTION_DEFS (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DEFS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_OPTION_DEF (location_type l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DEF, std::move (l)); - } -#else - static - symbol_type - make_SUB_OPTION_DEF (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DEF, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_OPTION_DATA (location_type l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DATA, std::move (l)); - } -#else - static - symbol_type - make_SUB_OPTION_DATA (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DATA, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_HOOKS_LIBRARY (location_type l) - { - return symbol_type (token::TOKEN_SUB_HOOKS_LIBRARY, std::move (l)); - } -#else - static - symbol_type - make_SUB_HOOKS_LIBRARY (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_HOOKS_LIBRARY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_DHCP_DDNS (location_type l) - { - return symbol_type (token::TOKEN_SUB_DHCP_DDNS, std::move (l)); - } -#else - static - symbol_type - make_SUB_DHCP_DDNS (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_DHCP_DDNS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_LOGGING (location_type l) - { - return symbol_type (token::TOKEN_SUB_LOGGING, std::move (l)); - } -#else - static - symbol_type - make_SUB_LOGGING (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_LOGGING, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_CONFIG_CONTROL (location_type l) - { - return symbol_type (token::TOKEN_SUB_CONFIG_CONTROL, std::move (l)); - } -#else - static - symbol_type - make_SUB_CONFIG_CONTROL (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_CONFIG_CONTROL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_STRING (std::string v, location_type l) - { - return symbol_type (token::TOKEN_STRING, std::move (v), std::move (l)); - } -#else - static - symbol_type - make_STRING (const std::string& v, const location_type& l) - { - return symbol_type (token::TOKEN_STRING, v, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_INTEGER (int64_t v, location_type l) - { - return symbol_type (token::TOKEN_INTEGER, std::move (v), std::move (l)); - } -#else - static - symbol_type - make_INTEGER (const int64_t& v, const location_type& l) - { - return symbol_type (token::TOKEN_INTEGER, v, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_FLOAT (double v, location_type l) - { - return symbol_type (token::TOKEN_FLOAT, std::move (v), std::move (l)); - } -#else - static - symbol_type - make_FLOAT (const double& v, const location_type& l) - { - return symbol_type (token::TOKEN_FLOAT, v, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_BOOLEAN (bool v, location_type l) - { - return symbol_type (token::TOKEN_BOOLEAN, std::move (v), std::move (l)); - } -#else - static - symbol_type - make_BOOLEAN (const bool& v, const location_type& l) - { - return symbol_type (token::TOKEN_BOOLEAN, v, l); - } + + /// Report a syntax error. + /// \param loc where the syntax error is found. + /// \param msg a description of the syntax error. + virtual void error (const location_type& loc, const std::string& msg); + + /// Report a syntax error. + void error (const syntax_error& err); + + private: + /// This class is not copyable. + Dhcp6Parser (const Dhcp6Parser&); + Dhcp6Parser& operator= (const Dhcp6Parser&); + + /// State numbers. + typedef int state_type; + + /// Generate an error message. + /// \param yystate the state where the error occurred. + /// \param yyla the lookahead token. + virtual std::string yysyntax_error_ (state_type yystate, + const symbol_type& yyla) const; + + /// Compute post-reduction state. + /// \param yystate the current state + /// \param yysym the nonterminal to push on the stack + state_type yy_lr_goto_state_ (state_type yystate, int yysym); + + /// Whether the given \c yypact_ value indicates a defaulted state. + /// \param yyvalue the value to check + static bool yy_pact_value_is_default_ (int yyvalue); + + /// Whether the given \c yytable_ value indicates a syntax error. + /// \param yyvalue the value to check + static bool yy_table_value_is_error_ (int yyvalue); + + static const short int yypact_ninf_; + static const signed char yytable_ninf_; + + /// Convert a scanner token number \a t to a symbol number. + static token_number_type yytranslate_ (token_type t); + + // Tables. + // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + // STATE-NUM. + static const short int yypact_[]; + + // YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. + // Performed when YYTABLE does not specify something else to do. Zero + // means the default is an error. + static const unsigned short int yydefact_[]; + + // YYPGOTO[NTERM-NUM]. + static const short int yypgoto_[]; + + // YYDEFGOTO[NTERM-NUM]. + static const short int yydefgoto_[]; + + // YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + // positive, shift that token. If negative, reduce the rule whose + // number is the opposite. If YYTABLE_NINF, syntax error. + static const unsigned short int yytable_[]; + + static const short int yycheck_[]; + + // YYSTOS[STATE-NUM] -- The (internal number of the) accessing + // symbol of state STATE-NUM. + static const unsigned short int yystos_[]; + + // YYR1[YYN] -- Symbol number of symbol that rule YYN derives. + static const unsigned short int yyr1_[]; + + // YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. + static const unsigned char yyr2_[]; + + + /// Convert the symbol name \a n to a form suitable for a diagnostic. + static std::string yytnamerr_ (const char *n); + + + /// For a symbol, its name in clear. + static const char* const yytname_[]; +#if PARSER6_DEBUG + // YYRLINE[YYN] -- Source line where rule number YYN was defined. + static const unsigned short int yyrline_[]; + /// Report on the debug stream that the rule \a r is going to be reduced. + virtual void yy_reduce_print_ (int r); + /// Print the state stack on the debug stream. + virtual void yystack_print_ (); + + // Debugging. + int yydebug_; + std::ostream* yycdebug_; + + /// \brief Display a symbol type, value and location. + /// \param yyo The output stream. + /// \param yysym The symbol. + template + void yy_print_ (std::ostream& yyo, const basic_symbol& yysym) const; #endif + /// \brief Reclaim the memory associated to a symbol. + /// \param yymsg Why this token is reclaimed. + /// If null, print nothing. + /// \param yysym The symbol. + template + void yy_destroy_ (const char* yymsg, basic_symbol& yysym) const; + + private: + /// Type access provider for state based symbols. + struct by_state + { + /// Default constructor. + by_state (); + + /// The symbol type as needed by the constructor. + typedef state_type kind_type; + + /// Constructor. + by_state (kind_type s); + + /// Copy constructor. + by_state (const by_state& other); + + /// Record that this symbol is empty. + void clear (); + + /// Steal the symbol type from \a that. + void move (by_state& that); + + /// The (internal) type number (corresponding to \a state). + /// \a empty_symbol when empty. + symbol_number_type type_get () const; + + /// The state number used to denote an empty symbol. + enum { empty_state = -1 }; + + /// The state. + /// \a empty when empty. + state_type state; + }; + + /// "Internal" symbol: element of the stack. + struct stack_symbol_type : basic_symbol + { + /// Superclass. + typedef basic_symbol super_type; + /// Construct an empty symbol. + stack_symbol_type (); + /// Steal the contents from \a sym to build this. + stack_symbol_type (state_type s, symbol_type& sym); + /// Assignment, needed by push_back. + stack_symbol_type& operator= (const stack_symbol_type& that); + }; + + /// Stack type. + typedef stack stack_type; + + /// The stack. + stack_type yystack_; + + /// Push a new state on the stack. + /// \param m a debug message to display + /// if null, no trace is output. + /// \param s the symbol + /// \warning the contents of \a s.value is stolen. + void yypush_ (const char* m, stack_symbol_type& s); + + /// Push a new look ahead token on the state on the stack. + /// \param m a debug message to display + /// if null, no trace is output. + /// \param s the state + /// \param sym the symbol (for its value and location). + /// \warning the contents of \a s.value is stolen. + void yypush_ (const char* m, state_type s, symbol_type& sym); + + /// Pop \a n symbols the three stacks. + void yypop_ (unsigned int n = 1); + + /// Constants. + enum + { + yyeof_ = 0, + yylast_ = 1035, ///< Last index in yytable_. + yynnts_ = 395, ///< Number of nonterminal symbols. + yyfinal_ = 32, ///< Termination state number. + yyterror_ = 1, + yyerrcode_ = 256, + yyntokens_ = 177 ///< Number of tokens. + }; + + + // User arguments. + isc::dhcp::Parser6Context& ctx; + }; + + // Symbol number corresponding to token number t. + inline + Dhcp6Parser::token_number_type + Dhcp6Parser::yytranslate_ (token_type t) + { + static + const token_number_type + translate_table[] = + { + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176 + }; + const unsigned int user_token_number_max_ = 431; + const token_number_type undef_token_ = 2; + + if (static_cast(t) <= yyeof_) + return yyeof_; + else if (static_cast (t) <= user_token_number_max_) + return translate_table[t]; + else + return undef_token_; + } + + inline + Dhcp6Parser::syntax_error::syntax_error (const location_type& l, const std::string& m) + : std::runtime_error (m) + , location (l) + {} + + // basic_symbol. + template + inline + Dhcp6Parser::basic_symbol::basic_symbol () + : value () + {} + + template + inline + Dhcp6Parser::basic_symbol::basic_symbol (const basic_symbol& other) + : Base (other) + , value () + , location (other.location) + { + switch (other.type_get ()) + { + case 194: // value + case 198: // map_value + case 252: // db_type + case 345: // hr_mode + case 481: // duid_type + case 516: // ncr_protocol_value + case 523: // replace_client_name_value + value.copy< ElementPtr > (other.value); + break; + + case 176: // "boolean" + value.copy< bool > (other.value); + break; + + case 175: // "floating point" + value.copy< double > (other.value); + break; + + case 174: // "integer" + value.copy< int64_t > (other.value); + break; + + case 173: // "constant string" + value.copy< std::string > (other.value); + break; + + default: + break; + } + + } + + + template + inline + Dhcp6Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const semantic_type& v, const location_type& l) + : Base (t) + , value () + , location (l) + { + (void) v; + switch (this->type_get ()) + { + case 194: // value + case 198: // map_value + case 252: // db_type + case 345: // hr_mode + case 481: // duid_type + case 516: // ncr_protocol_value + case 523: // replace_client_name_value + value.copy< ElementPtr > (v); + break; + + case 176: // "boolean" + value.copy< bool > (v); + break; + + case 175: // "floating point" + value.copy< double > (v); + break; + + case 174: // "integer" + value.copy< int64_t > (v); + break; + + case 173: // "constant string" + value.copy< std::string > (v); + break; + + default: + break; + } +} + + + // Implementation of basic_symbol constructor for each type. + + template + Dhcp6Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const location_type& l) + : Base (t) + , value () + , location (l) + {} + + template + Dhcp6Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const ElementPtr v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} + + template + Dhcp6Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const bool v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} + + template + Dhcp6Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const double v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} + + template + Dhcp6Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const int64_t v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} + + template + Dhcp6Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const std::string v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} + + + template + inline + Dhcp6Parser::basic_symbol::~basic_symbol () + { + clear (); + } + + template + inline + void + Dhcp6Parser::basic_symbol::clear () + { + // User destructor. + symbol_number_type yytype = this->type_get (); + basic_symbol& yysym = *this; + (void) yysym; + switch (yytype) + { + default: + break; + } + + // Type destructor. + switch (yytype) + { + case 194: // value + case 198: // map_value + case 252: // db_type + case 345: // hr_mode + case 481: // duid_type + case 516: // ncr_protocol_value + case 523: // replace_client_name_value + value.template destroy< ElementPtr > (); + break; + + case 176: // "boolean" + value.template destroy< bool > (); + break; + + case 175: // "floating point" + value.template destroy< double > (); + break; + + case 174: // "integer" + value.template destroy< int64_t > (); + break; + + case 173: // "constant string" + value.template destroy< std::string > (); + break; + + default: + break; + } + + Base::clear (); + } + + template + inline + bool + Dhcp6Parser::basic_symbol::empty () const + { + return Base::type_get () == empty_symbol; + } + + template + inline + void + Dhcp6Parser::basic_symbol::move (basic_symbol& s) + { + super_type::move(s); + switch (this->type_get ()) + { + case 194: // value + case 198: // map_value + case 252: // db_type + case 345: // hr_mode + case 481: // duid_type + case 516: // ncr_protocol_value + case 523: // replace_client_name_value + value.move< ElementPtr > (s.value); + break; + + case 176: // "boolean" + value.move< bool > (s.value); + break; + + case 175: // "floating point" + value.move< double > (s.value); + break; + + case 174: // "integer" + value.move< int64_t > (s.value); + break; + + case 173: // "constant string" + value.move< std::string > (s.value); + break; + + default: + break; + } + + location = s.location; + } + + // by_type. + inline + Dhcp6Parser::by_type::by_type () + : type (empty_symbol) + {} + + inline + Dhcp6Parser::by_type::by_type (const by_type& other) + : type (other.type) + {} + + inline + Dhcp6Parser::by_type::by_type (token_type t) + : type (yytranslate_ (t)) + {} + + inline + void + Dhcp6Parser::by_type::clear () + { + type = empty_symbol; + } + + inline + void + Dhcp6Parser::by_type::move (by_type& that) + { + type = that.type; + that.clear (); + } + + inline + int + Dhcp6Parser::by_type::type_get () const + { + return type; + } + + inline + Dhcp6Parser::token_type + Dhcp6Parser::by_type::token () const + { + // YYTOKNUM[NUM] -- (External) token number corresponding to the + // (internal) symbol number NUM (which must be that of a token). */ + static + const unsigned short int + yytoken_number_[] = + { + 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431 + }; + return static_cast (yytoken_number_[type]); + } + // Implementation of make_symbol for each symbol type. + Dhcp6Parser::symbol_type + Dhcp6Parser::make_END (const location_type& l) + { + return symbol_type (token::TOKEN_END, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_COMMA (const location_type& l) + { + return symbol_type (token::TOKEN_COMMA, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_COLON (const location_type& l) + { + return symbol_type (token::TOKEN_COLON, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LSQUARE_BRACKET (const location_type& l) + { + return symbol_type (token::TOKEN_LSQUARE_BRACKET, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RSQUARE_BRACKET (const location_type& l) + { + return symbol_type (token::TOKEN_RSQUARE_BRACKET, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LCURLY_BRACKET (const location_type& l) + { + return symbol_type (token::TOKEN_LCURLY_BRACKET, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RCURLY_BRACKET (const location_type& l) + { + return symbol_type (token::TOKEN_RCURLY_BRACKET, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_NULL_TYPE (const location_type& l) + { + return symbol_type (token::TOKEN_NULL_TYPE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DHCP6 (const location_type& l) + { + return symbol_type (token::TOKEN_DHCP6, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DATA_DIRECTORY (const location_type& l) + { + return symbol_type (token::TOKEN_DATA_DIRECTORY, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CONFIG_CONTROL (const location_type& l) + { + return symbol_type (token::TOKEN_CONFIG_CONTROL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CONFIG_DATABASES (const location_type& l) + { + return symbol_type (token::TOKEN_CONFIG_DATABASES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_INTERFACES_CONFIG (const location_type& l) + { + return symbol_type (token::TOKEN_INTERFACES_CONFIG, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_INTERFACES (const location_type& l) + { + return symbol_type (token::TOKEN_INTERFACES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RE_DETECT (const location_type& l) + { + return symbol_type (token::TOKEN_RE_DETECT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LEASE_DATABASE (const location_type& l) + { + return symbol_type (token::TOKEN_LEASE_DATABASE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOSTS_DATABASE (const location_type& l) + { + return symbol_type (token::TOKEN_HOSTS_DATABASE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOSTS_DATABASES (const location_type& l) + { + return symbol_type (token::TOKEN_HOSTS_DATABASES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_TYPE (const location_type& l) + { + return symbol_type (token::TOKEN_TYPE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MEMFILE (const location_type& l) + { + return symbol_type (token::TOKEN_MEMFILE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MYSQL (const location_type& l) + { + return symbol_type (token::TOKEN_MYSQL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_POSTGRESQL (const location_type& l) + { + return symbol_type (token::TOKEN_POSTGRESQL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CQL (const location_type& l) + { + return symbol_type (token::TOKEN_CQL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_USER (const location_type& l) + { + return symbol_type (token::TOKEN_USER, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PASSWORD (const location_type& l) + { + return symbol_type (token::TOKEN_PASSWORD, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOST (const location_type& l) + { + return symbol_type (token::TOKEN_HOST, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PORT (const location_type& l) + { + return symbol_type (token::TOKEN_PORT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PERSIST (const location_type& l) + { + return symbol_type (token::TOKEN_PERSIST, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LFC_INTERVAL (const location_type& l) + { + return symbol_type (token::TOKEN_LFC_INTERVAL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_READONLY (const location_type& l) + { + return symbol_type (token::TOKEN_READONLY, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CONNECT_TIMEOUT (const location_type& l) + { + return symbol_type (token::TOKEN_CONNECT_TIMEOUT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CONTACT_POINTS (const location_type& l) + { + return symbol_type (token::TOKEN_CONTACT_POINTS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAX_RECONNECT_TRIES (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_RECONNECT_TRIES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RECONNECT_WAIT_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_RECONNECT_WAIT_TIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_KEYSPACE (const location_type& l) + { + return symbol_type (token::TOKEN_KEYSPACE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CONSISTENCY (const location_type& l) + { + return symbol_type (token::TOKEN_CONSISTENCY, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SERIAL_CONSISTENCY (const location_type& l) + { + return symbol_type (token::TOKEN_SERIAL_CONSISTENCY, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_REQUEST_TIMEOUT (const location_type& l) + { + return symbol_type (token::TOKEN_REQUEST_TIMEOUT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_TCP_KEEPALIVE (const location_type& l) + { + return symbol_type (token::TOKEN_TCP_KEEPALIVE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_TCP_NODELAY (const location_type& l) + { + return symbol_type (token::TOKEN_TCP_NODELAY, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PREFERRED_LIFETIME (const location_type& l) + { + return symbol_type (token::TOKEN_PREFERRED_LIFETIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_VALID_LIFETIME (const location_type& l) + { + return symbol_type (token::TOKEN_VALID_LIFETIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RENEW_TIMER (const location_type& l) + { + return symbol_type (token::TOKEN_RENEW_TIMER, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_REBIND_TIMER (const location_type& l) + { + return symbol_type (token::TOKEN_REBIND_TIMER, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DECLINE_PROBATION_PERIOD (const location_type& l) + { + return symbol_type (token::TOKEN_DECLINE_PROBATION_PERIOD, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SERVER_TAG (const location_type& l) + { + return symbol_type (token::TOKEN_SERVER_TAG, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUBNET6 (const location_type& l) + { + return symbol_type (token::TOKEN_SUBNET6, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_OPTION_DEF (const location_type& l) + { + return symbol_type (token::TOKEN_OPTION_DEF, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_OPTION_DATA (const location_type& l) + { + return symbol_type (token::TOKEN_OPTION_DATA, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_NAME (const location_type& l) + { + return symbol_type (token::TOKEN_NAME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DATA (const location_type& l) + { + return symbol_type (token::TOKEN_DATA, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CODE (const location_type& l) + { + return symbol_type (token::TOKEN_CODE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SPACE (const location_type& l) + { + return symbol_type (token::TOKEN_SPACE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CSV_FORMAT (const location_type& l) + { + return symbol_type (token::TOKEN_CSV_FORMAT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ALWAYS_SEND (const location_type& l) + { + return symbol_type (token::TOKEN_ALWAYS_SEND, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RECORD_TYPES (const location_type& l) + { + return symbol_type (token::TOKEN_RECORD_TYPES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ENCAPSULATE (const location_type& l) + { + return symbol_type (token::TOKEN_ENCAPSULATE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ARRAY (const location_type& l) + { + return symbol_type (token::TOKEN_ARRAY, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_POOLS (const location_type& l) + { + return symbol_type (token::TOKEN_POOLS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_POOL (const location_type& l) + { + return symbol_type (token::TOKEN_POOL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PD_POOLS (const location_type& l) + { + return symbol_type (token::TOKEN_PD_POOLS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PREFIX (const location_type& l) + { + return symbol_type (token::TOKEN_PREFIX, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PREFIX_LEN (const location_type& l) + { + return symbol_type (token::TOKEN_PREFIX_LEN, l); + } - private: - /// This class is not copyable. - Dhcp6Parser (const Dhcp6Parser&); - Dhcp6Parser& operator= (const Dhcp6Parser&); + Dhcp6Parser::symbol_type + Dhcp6Parser::make_EXCLUDED_PREFIX (const location_type& l) + { + return symbol_type (token::TOKEN_EXCLUDED_PREFIX, l); + } - /// State numbers. - typedef int state_type; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_EXCLUDED_PREFIX_LEN (const location_type& l) + { + return symbol_type (token::TOKEN_EXCLUDED_PREFIX_LEN, l); + } - /// Generate an error message. - /// \param yystate the state where the error occurred. - /// \param yyla the lookahead token. - virtual std::string yysyntax_error_ (state_type yystate, - const symbol_type& yyla) const; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DELEGATED_LEN (const location_type& l) + { + return symbol_type (token::TOKEN_DELEGATED_LEN, l); + } - /// Compute post-reduction state. - /// \param yystate the current state - /// \param yysym the nonterminal to push on the stack - state_type yy_lr_goto_state_ (state_type yystate, int yysym); + Dhcp6Parser::symbol_type + Dhcp6Parser::make_USER_CONTEXT (const location_type& l) + { + return symbol_type (token::TOKEN_USER_CONTEXT, l); + } - /// Whether the given \c yypact_ value indicates a defaulted state. - /// \param yyvalue the value to check - static bool yy_pact_value_is_default_ (int yyvalue); + Dhcp6Parser::symbol_type + Dhcp6Parser::make_COMMENT (const location_type& l) + { + return symbol_type (token::TOKEN_COMMENT, l); + } - /// Whether the given \c yytable_ value indicates a syntax error. - /// \param yyvalue the value to check - static bool yy_table_value_is_error_ (int yyvalue); + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUBNET (const location_type& l) + { + return symbol_type (token::TOKEN_SUBNET, l); + } - static const short yypact_ninf_; - static const signed char yytable_ninf_; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_INTERFACE (const location_type& l) + { + return symbol_type (token::TOKEN_INTERFACE, l); + } - /// Convert a scanner token number \a t to a symbol number. - static token_number_type yytranslate_ (token_type t); + Dhcp6Parser::symbol_type + Dhcp6Parser::make_INTERFACE_ID (const location_type& l) + { + return symbol_type (token::TOKEN_INTERFACE_ID, l); + } - // Tables. - // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - // STATE-NUM. - static const short yypact_[]; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ID (const location_type& l) + { + return symbol_type (token::TOKEN_ID, l); + } - // YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. - // Performed when YYTABLE does not specify something else to do. Zero - // means the default is an error. - static const unsigned short yydefact_[]; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RAPID_COMMIT (const location_type& l) + { + return symbol_type (token::TOKEN_RAPID_COMMIT, l); + } - // YYPGOTO[NTERM-NUM]. - static const short yypgoto_[]; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RESERVATION_MODE (const location_type& l) + { + return symbol_type (token::TOKEN_RESERVATION_MODE, l); + } - // YYDEFGOTO[NTERM-NUM]. - static const short yydefgoto_[]; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DISABLED (const location_type& l) + { + return symbol_type (token::TOKEN_DISABLED, l); + } - // YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If - // positive, shift that token. If negative, reduce the rule whose - // number is the opposite. If YYTABLE_NINF, syntax error. - static const unsigned short yytable_[]; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_OUT_OF_POOL (const location_type& l) + { + return symbol_type (token::TOKEN_OUT_OF_POOL, l); + } - static const short yycheck_[]; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_GLOBAL (const location_type& l) + { + return symbol_type (token::TOKEN_GLOBAL, l); + } - // YYSTOS[STATE-NUM] -- The (internal number of the) accessing - // symbol of state STATE-NUM. - static const unsigned short yystos_[]; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ALL (const location_type& l) + { + return symbol_type (token::TOKEN_ALL, l); + } - // YYR1[YYN] -- Symbol number of symbol that rule YYN derives. - static const unsigned short yyr1_[]; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SHARED_NETWORKS (const location_type& l) + { + return symbol_type (token::TOKEN_SHARED_NETWORKS, l); + } - // YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. - static const unsigned char yyr2_[]; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAC_SOURCES (const location_type& l) + { + return symbol_type (token::TOKEN_MAC_SOURCES, l); + } + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RELAY_SUPPLIED_OPTIONS (const location_type& l) + { + return symbol_type (token::TOKEN_RELAY_SUPPLIED_OPTIONS, l); + } - /// Convert the symbol name \a n to a form suitable for a diagnostic. - static std::string yytnamerr_ (const char *n); + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOST_RESERVATION_IDENTIFIERS (const location_type& l) + { + return symbol_type (token::TOKEN_HOST_RESERVATION_IDENTIFIERS, l); + } + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SANITY_CHECKS (const location_type& l) + { + return symbol_type (token::TOKEN_SANITY_CHECKS, l); + } - /// For a symbol, its name in clear. - static const char* const yytname_[]; -#if PARSER6_DEBUG - // YYRLINE[YYN] -- Source line where rule number YYN was defined. - static const unsigned short yyrline_[]; - /// Report on the debug stream that the rule \a r is going to be reduced. - virtual void yy_reduce_print_ (int r); - /// Print the state stack on the debug stream. - virtual void yystack_print_ (); + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LEASE_CHECKS (const location_type& l) + { + return symbol_type (token::TOKEN_LEASE_CHECKS, l); + } - /// Debugging level. - int yydebug_; - /// Debug stream. - std::ostream* yycdebug_; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CLIENT_CLASSES (const location_type& l) + { + return symbol_type (token::TOKEN_CLIENT_CLASSES, l); + } - /// \brief Display a symbol type, value and location. - /// \param yyo The output stream. - /// \param yysym The symbol. - template - void yy_print_ (std::ostream& yyo, const basic_symbol& yysym) const; -#endif + Dhcp6Parser::symbol_type + Dhcp6Parser::make_REQUIRE_CLIENT_CLASSES (const location_type& l) + { + return symbol_type (token::TOKEN_REQUIRE_CLIENT_CLASSES, l); + } - /// \brief Reclaim the memory associated to a symbol. - /// \param yymsg Why this token is reclaimed. - /// If null, print nothing. - /// \param yysym The symbol. - template - void yy_destroy_ (const char* yymsg, basic_symbol& yysym) const; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_TEST (const location_type& l) + { + return symbol_type (token::TOKEN_TEST, l); + } - private: - /// Type access provider for state based symbols. - struct by_state - { - /// Default constructor. - by_state () YY_NOEXCEPT; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ONLY_IF_REQUIRED (const location_type& l) + { + return symbol_type (token::TOKEN_ONLY_IF_REQUIRED, l); + } - /// The symbol type as needed by the constructor. - typedef state_type kind_type; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CLIENT_CLASS (const location_type& l) + { + return symbol_type (token::TOKEN_CLIENT_CLASS, l); + } - /// Constructor. - by_state (kind_type s) YY_NOEXCEPT; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RESERVATIONS (const location_type& l) + { + return symbol_type (token::TOKEN_RESERVATIONS, l); + } - /// Copy constructor. - by_state (const by_state& that) YY_NOEXCEPT; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_IP_ADDRESSES (const location_type& l) + { + return symbol_type (token::TOKEN_IP_ADDRESSES, l); + } - /// Record that this symbol is empty. - void clear () YY_NOEXCEPT; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PREFIXES (const location_type& l) + { + return symbol_type (token::TOKEN_PREFIXES, l); + } - /// Steal the symbol type from \a that. - void move (by_state& that); + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DUID (const location_type& l) + { + return symbol_type (token::TOKEN_DUID, l); + } - /// The (internal) type number (corresponding to \a state). - /// \a empty_symbol when empty. - symbol_number_type type_get () const YY_NOEXCEPT; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HW_ADDRESS (const location_type& l) + { + return symbol_type (token::TOKEN_HW_ADDRESS, l); + } - /// The state number used to denote an empty symbol. - enum { empty_state = -1 }; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOSTNAME (const location_type& l) + { + return symbol_type (token::TOKEN_HOSTNAME, l); + } - /// The state. - /// \a empty when empty. - state_type state; - }; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_FLEX_ID (const location_type& l) + { + return symbol_type (token::TOKEN_FLEX_ID, l); + } - /// "Internal" symbol: element of the stack. - struct stack_symbol_type : basic_symbol - { - /// Superclass. - typedef basic_symbol super_type; - /// Construct an empty symbol. - stack_symbol_type (); - /// Move or copy construction. - stack_symbol_type (YY_RVREF (stack_symbol_type) that); - /// Steal the contents from \a sym to build this. - stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) sym); -#if YY_CPLUSPLUS < 201103L - /// Assignment, needed by push_back by some old implementations. - /// Moves the contents of that. - stack_symbol_type& operator= (stack_symbol_type& that); -#endif - }; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RELAY (const location_type& l) + { + return symbol_type (token::TOKEN_RELAY, l); + } - /// A stack with random access from its top. - template > - class stack - { - public: - // Hide our reversed order. - typedef typename S::reverse_iterator iterator; - typedef typename S::const_reverse_iterator const_iterator; - typedef typename S::size_type size_type; - - stack (size_type n = 200) - : seq_ (n) - {} - - /// Random access. - /// - /// Index 0 returns the topmost element. - T& - operator[] (size_type i) - { - return seq_[size () - 1 - i]; - } - - /// Random access. - /// - /// Index 0 returns the topmost element. - T& - operator[] (int i) - { - return operator[] (size_type (i)); - } - - /// Random access. - /// - /// Index 0 returns the topmost element. - const T& - operator[] (size_type i) const - { - return seq_[size () - 1 - i]; - } - - /// Random access. - /// - /// Index 0 returns the topmost element. - const T& - operator[] (int i) const - { - return operator[] (size_type (i)); - } - - /// Steal the contents of \a t. - /// - /// Close to move-semantics. - void - push (YY_MOVE_REF (T) t) - { - seq_.push_back (T ()); - operator[] (0).move (t); - } + Dhcp6Parser::symbol_type + Dhcp6Parser::make_IP_ADDRESS (const location_type& l) + { + return symbol_type (token::TOKEN_IP_ADDRESS, l); + } - /// Pop elements from the stack. - void - pop (int n = 1) YY_NOEXCEPT - { - for (; 0 < n; --n) - seq_.pop_back (); - } + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOOKS_LIBRARIES (const location_type& l) + { + return symbol_type (token::TOKEN_HOOKS_LIBRARIES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LIBRARY (const location_type& l) + { + return symbol_type (token::TOKEN_LIBRARY, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PARAMETERS (const location_type& l) + { + return symbol_type (token::TOKEN_PARAMETERS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_EXPIRED_LEASES_PROCESSING (const location_type& l) + { + return symbol_type (token::TOKEN_EXPIRED_LEASES_PROCESSING, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RECLAIM_TIMER_WAIT_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_RECLAIM_TIMER_WAIT_TIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOLD_RECLAIMED_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_HOLD_RECLAIMED_TIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAX_RECLAIM_LEASES (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_RECLAIM_LEASES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAX_RECLAIM_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_RECLAIM_TIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_UNWARNED_RECLAIM_CYCLES (const location_type& l) + { + return symbol_type (token::TOKEN_UNWARNED_RECLAIM_CYCLES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SERVER_ID (const location_type& l) + { + return symbol_type (token::TOKEN_SERVER_ID, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LLT (const location_type& l) + { + return symbol_type (token::TOKEN_LLT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_EN (const location_type& l) + { + return symbol_type (token::TOKEN_EN, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LL (const location_type& l) + { + return symbol_type (token::TOKEN_LL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_IDENTIFIER (const location_type& l) + { + return symbol_type (token::TOKEN_IDENTIFIER, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HTYPE (const location_type& l) + { + return symbol_type (token::TOKEN_HTYPE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_TIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ENTERPRISE_ID (const location_type& l) + { + return symbol_type (token::TOKEN_ENTERPRISE_ID, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DHCP4O6_PORT (const location_type& l) + { + return symbol_type (token::TOKEN_DHCP4O6_PORT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CONTROL_SOCKET (const location_type& l) + { + return symbol_type (token::TOKEN_CONTROL_SOCKET, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SOCKET_TYPE (const location_type& l) + { + return symbol_type (token::TOKEN_SOCKET_TYPE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SOCKET_NAME (const location_type& l) + { + return symbol_type (token::TOKEN_SOCKET_NAME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DHCP_QUEUE_CONTROL (const location_type& l) + { + return symbol_type (token::TOKEN_DHCP_QUEUE_CONTROL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DHCP_DDNS (const location_type& l) + { + return symbol_type (token::TOKEN_DHCP_DDNS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ENABLE_UPDATES (const location_type& l) + { + return symbol_type (token::TOKEN_ENABLE_UPDATES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_QUALIFYING_SUFFIX (const location_type& l) + { + return symbol_type (token::TOKEN_QUALIFYING_SUFFIX, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SERVER_IP (const location_type& l) + { + return symbol_type (token::TOKEN_SERVER_IP, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SERVER_PORT (const location_type& l) + { + return symbol_type (token::TOKEN_SERVER_PORT, l); + } - /// Pop all elements from the stack. - void - clear () YY_NOEXCEPT - { - seq_.clear (); - } + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SENDER_IP (const location_type& l) + { + return symbol_type (token::TOKEN_SENDER_IP, l); + } - /// Number of elements on the stack. - size_type - size () const YY_NOEXCEPT - { - return seq_.size (); - } + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SENDER_PORT (const location_type& l) + { + return symbol_type (token::TOKEN_SENDER_PORT, l); + } - /// Iterator on top of the stack (going downwards). - const_iterator - begin () const YY_NOEXCEPT - { - return seq_.rbegin (); - } + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAX_QUEUE_SIZE (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_QUEUE_SIZE, l); + } - /// Bottom of the stack. - const_iterator - end () const YY_NOEXCEPT - { - return seq_.rend (); - } + Dhcp6Parser::symbol_type + Dhcp6Parser::make_NCR_PROTOCOL (const location_type& l) + { + return symbol_type (token::TOKEN_NCR_PROTOCOL, l); + } - /// Present a slice of the top of a stack. - class slice - { - public: - slice (const stack& stack, int range) - : stack_ (stack) - , range_ (range) - {} - - const T& - operator[] (int i) const - { - return stack_[range_ - i]; - } - - private: - const stack& stack_; - int range_; - }; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_NCR_FORMAT (const location_type& l) + { + return symbol_type (token::TOKEN_NCR_FORMAT, l); + } - private: - stack (const stack&); - stack& operator= (const stack&); - /// The wrapped container. - S seq_; - }; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_OVERRIDE_NO_UPDATE (const location_type& l) + { + return symbol_type (token::TOKEN_OVERRIDE_NO_UPDATE, l); + } + Dhcp6Parser::symbol_type + Dhcp6Parser::make_OVERRIDE_CLIENT_UPDATE (const location_type& l) + { + return symbol_type (token::TOKEN_OVERRIDE_CLIENT_UPDATE, l); + } - /// Stack type. - typedef stack stack_type; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_REPLACE_CLIENT_NAME (const location_type& l) + { + return symbol_type (token::TOKEN_REPLACE_CLIENT_NAME, l); + } - /// The stack. - stack_type yystack_; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_GENERATED_PREFIX (const location_type& l) + { + return symbol_type (token::TOKEN_GENERATED_PREFIX, l); + } - /// Push a new state on the stack. - /// \param m a debug message to display - /// if null, no trace is output. - /// \param sym the symbol - /// \warning the contents of \a s.value is stolen. - void yypush_ (const char* m, YY_MOVE_REF (stack_symbol_type) sym); + Dhcp6Parser::symbol_type + Dhcp6Parser::make_UDP (const location_type& l) + { + return symbol_type (token::TOKEN_UDP, l); + } - /// Push a new look ahead token on the state on the stack. - /// \param m a debug message to display - /// if null, no trace is output. - /// \param s the state - /// \param sym the symbol (for its value and location). - /// \warning the contents of \a sym.value is stolen. - void yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym); + Dhcp6Parser::symbol_type + Dhcp6Parser::make_TCP (const location_type& l) + { + return symbol_type (token::TOKEN_TCP, l); + } - /// Pop \a n symbols from the stack. - void yypop_ (int n = 1); + Dhcp6Parser::symbol_type + Dhcp6Parser::make_JSON (const location_type& l) + { + return symbol_type (token::TOKEN_JSON, l); + } - /// Constants. - enum - { - yyeof_ = 0, - yylast_ = 1025, ///< Last index in yytable_. - yynnts_ = 391, ///< Number of nonterminal symbols. - yyfinal_ = 32, ///< Termination state number. - yyterror_ = 1, - yyerrcode_ = 256, - yyntokens_ = 175 ///< Number of tokens. - }; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_WHEN_PRESENT (const location_type& l) + { + return symbol_type (token::TOKEN_WHEN_PRESENT, l); + } + Dhcp6Parser::symbol_type + Dhcp6Parser::make_NEVER (const location_type& l) + { + return symbol_type (token::TOKEN_NEVER, l); + } - // User arguments. - isc::dhcp::Parser6Context& ctx; - }; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ALWAYS (const location_type& l) + { + return symbol_type (token::TOKEN_ALWAYS, l); + } - inline - Dhcp6Parser::token_number_type - Dhcp6Parser::yytranslate_ (token_type t) + Dhcp6Parser::symbol_type + Dhcp6Parser::make_WHEN_NOT_PRESENT (const location_type& l) { - // YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to - // TOKEN-NUM as returned by yylex. - static - const token_number_type - translate_table[] = - { - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174 - }; - const unsigned user_token_number_max_ = 429; - const token_number_type undef_token_ = 2; + return symbol_type (token::TOKEN_WHEN_NOT_PRESENT, l); + } - if (static_cast (t) <= yyeof_) - return yyeof_; - else if (static_cast (t) <= user_token_number_max_) - return translate_table[t]; - else - return undef_token_; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOSTNAME_CHAR_SET (const location_type& l) + { + return symbol_type (token::TOKEN_HOSTNAME_CHAR_SET, l); } - // basic_symbol. -#if 201103L <= YY_CPLUSPLUS - template - Dhcp6Parser::basic_symbol::basic_symbol (basic_symbol&& that) - : Base (std::move (that)) - , value () - , location (std::move (that.location)) + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOSTNAME_CHAR_REPLACEMENT (const location_type& l) { - switch (this->type_get ()) - { - case 192: // value - case 196: // map_value - case 250: // db_type - case 339: // hr_mode - case 475: // duid_type - case 510: // ncr_protocol_value - case 517: // replace_client_name_value - value.move< ElementPtr > (std::move (that.value)); - break; + return symbol_type (token::TOKEN_HOSTNAME_CHAR_REPLACEMENT, l); + } - case 174: // "boolean" - value.move< bool > (std::move (that.value)); - break; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LOGGING (const location_type& l) + { + return symbol_type (token::TOKEN_LOGGING, l); + } - case 173: // "floating point" - value.move< double > (std::move (that.value)); - break; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LOGGERS (const location_type& l) + { + return symbol_type (token::TOKEN_LOGGERS, l); + } - case 172: // "integer" - value.move< int64_t > (std::move (that.value)); - break; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_OUTPUT_OPTIONS (const location_type& l) + { + return symbol_type (token::TOKEN_OUTPUT_OPTIONS, l); + } - case 171: // "constant string" - value.move< std::string > (std::move (that.value)); - break; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_OUTPUT (const location_type& l) + { + return symbol_type (token::TOKEN_OUTPUT, l); + } - default: - break; - } + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DEBUGLEVEL (const location_type& l) + { + return symbol_type (token::TOKEN_DEBUGLEVEL, l); + } + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SEVERITY (const location_type& l) + { + return symbol_type (token::TOKEN_SEVERITY, l); } -#endif - template - Dhcp6Parser::basic_symbol::basic_symbol (const basic_symbol& that) - : Base (that) - , value () - , location (that.location) + Dhcp6Parser::symbol_type + Dhcp6Parser::make_FLUSH (const location_type& l) { - switch (this->type_get ()) - { - case 192: // value - case 196: // map_value - case 250: // db_type - case 339: // hr_mode - case 475: // duid_type - case 510: // ncr_protocol_value - case 517: // replace_client_name_value - value.copy< ElementPtr > (YY_MOVE (that.value)); - break; + return symbol_type (token::TOKEN_FLUSH, l); + } - case 174: // "boolean" - value.copy< bool > (YY_MOVE (that.value)); - break; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAXSIZE (const location_type& l) + { + return symbol_type (token::TOKEN_MAXSIZE, l); + } - case 173: // "floating point" - value.copy< double > (YY_MOVE (that.value)); - break; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAXVER (const location_type& l) + { + return symbol_type (token::TOKEN_MAXVER, l); + } - case 172: // "integer" - value.copy< int64_t > (YY_MOVE (that.value)); - break; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DHCP4 (const location_type& l) + { + return symbol_type (token::TOKEN_DHCP4, l); + } - case 171: // "constant string" - value.copy< std::string > (YY_MOVE (that.value)); - break; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DHCPDDNS (const location_type& l) + { + return symbol_type (token::TOKEN_DHCPDDNS, l); + } - default: - break; - } + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CONTROL_AGENT (const location_type& l) + { + return symbol_type (token::TOKEN_CONTROL_AGENT, l); + } + Dhcp6Parser::symbol_type + Dhcp6Parser::make_TOPLEVEL_JSON (const location_type& l) + { + return symbol_type (token::TOKEN_TOPLEVEL_JSON, l); } + Dhcp6Parser::symbol_type + Dhcp6Parser::make_TOPLEVEL_DHCP6 (const location_type& l) + { + return symbol_type (token::TOKEN_TOPLEVEL_DHCP6, l); + } + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_DHCP6 (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_DHCP6, l); + } - template - bool - Dhcp6Parser::basic_symbol::empty () const YY_NOEXCEPT + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_INTERFACES6 (const location_type& l) { - return Base::type_get () == empty_symbol; + return symbol_type (token::TOKEN_SUB_INTERFACES6, l); } - template - void - Dhcp6Parser::basic_symbol::move (basic_symbol& s) + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_SUBNET6 (const location_type& l) { - super_type::move (s); - switch (this->type_get ()) - { - case 192: // value - case 196: // map_value - case 250: // db_type - case 339: // hr_mode - case 475: // duid_type - case 510: // ncr_protocol_value - case 517: // replace_client_name_value - value.move< ElementPtr > (YY_MOVE (s.value)); - break; + return symbol_type (token::TOKEN_SUB_SUBNET6, l); + } - case 174: // "boolean" - value.move< bool > (YY_MOVE (s.value)); - break; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_POOL6 (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_POOL6, l); + } - case 173: // "floating point" - value.move< double > (YY_MOVE (s.value)); - break; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_PD_POOL (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_PD_POOL, l); + } - case 172: // "integer" - value.move< int64_t > (YY_MOVE (s.value)); - break; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_RESERVATION (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_RESERVATION, l); + } - case 171: // "constant string" - value.move< std::string > (YY_MOVE (s.value)); - break; + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_OPTION_DEFS (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_OPTION_DEFS, l); + } - default: - break; - } + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_OPTION_DEF (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_OPTION_DEF, l); + } - location = YY_MOVE (s.location); + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_OPTION_DATA (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_OPTION_DATA, l); } - // by_type. - inline - Dhcp6Parser::by_type::by_type () - : type (empty_symbol) - {} + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_HOOKS_LIBRARY (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_HOOKS_LIBRARY, l); + } -#if 201103L <= YY_CPLUSPLUS - inline - Dhcp6Parser::by_type::by_type (by_type&& that) - : type (that.type) + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_DHCP_DDNS (const location_type& l) { - that.clear (); + return symbol_type (token::TOKEN_SUB_DHCP_DDNS, l); } -#endif - inline - Dhcp6Parser::by_type::by_type (const by_type& that) - : type (that.type) - {} + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_LOGGING (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_LOGGING, l); + } - inline - Dhcp6Parser::by_type::by_type (token_type t) - : type (yytranslate_ (t)) - {} + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_CONFIG_CONTROL (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_CONFIG_CONTROL, l); + } - inline - void - Dhcp6Parser::by_type::clear () + Dhcp6Parser::symbol_type + Dhcp6Parser::make_STRING (const std::string& v, const location_type& l) { - type = empty_symbol; + return symbol_type (token::TOKEN_STRING, v, l); } - inline - void - Dhcp6Parser::by_type::move (by_type& that) + Dhcp6Parser::symbol_type + Dhcp6Parser::make_INTEGER (const int64_t& v, const location_type& l) { - type = that.type; - that.clear (); + return symbol_type (token::TOKEN_INTEGER, v, l); } - inline - int - Dhcp6Parser::by_type::type_get () const YY_NOEXCEPT + Dhcp6Parser::symbol_type + Dhcp6Parser::make_FLOAT (const double& v, const location_type& l) { - return type; + return symbol_type (token::TOKEN_FLOAT, v, l); } - inline - Dhcp6Parser::token_type - Dhcp6Parser::by_type::token () const YY_NOEXCEPT + Dhcp6Parser::symbol_type + Dhcp6Parser::make_BOOLEAN (const bool& v, const location_type& l) { - // YYTOKNUM[NUM] -- (External) token number corresponding to the - // (internal) symbol number NUM (which must be that of a token). */ - static - const unsigned short - yytoken_number_[] = - { - 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429 - }; - return token_type (yytoken_number_[type]); + return symbol_type (token::TOKEN_BOOLEAN, v, l); } -#line 14 "dhcp6_parser.yy" // lalr1.cc:401 + +#line 14 "dhcp6_parser.yy" // lalr1.cc:377 } } // isc::dhcp -#line 4163 "dhcp6_parser.h" // lalr1.cc:401 +#line 2994 "dhcp6_parser.h" // lalr1.cc:377 -- cgit v1.2.3