diff options
author | Francis Dupont <fdupont@isc.org> | 2020-04-24 14:57:23 +0200 |
---|---|---|
committer | Francis Dupont <fdupont@isc.org> | 2020-04-24 14:57:23 +0200 |
commit | 0129727111b06f60bdae96113bde19b3a25077cb (patch) | |
tree | 9782dfacc67bb64dec1eb9c2ca47d715f669c65b /src/bin/dhcp4/dhcp4_parser.h | |
parent | [#1185] Removed extra spaces (diff) | |
download | kea-0129727111b06f60bdae96113bde19b3a25077cb.tar.xz kea-0129727111b06f60bdae96113bde19b3a25077cb.zip |
[#1185] Regen flex and bison
Diffstat (limited to 'src/bin/dhcp4/dhcp4_parser.h')
-rw-r--r-- | src/bin/dhcp4/dhcp4_parser.h | 5881 |
1 files changed, 3577 insertions, 2304 deletions
diff --git a/src/bin/dhcp4/dhcp4_parser.h b/src/bin/dhcp4/dhcp4_parser.h index 160f418d3f..12e0216007 100644 --- a/src/bin/dhcp4/dhcp4_parser.h +++ b/src/bin/dhcp4/dhcp4_parser.h @@ -1,8 +1,8 @@ -// A Bison parser, made by GNU Bison 3.0.4. +// A Bison parser, made by GNU Bison 3.5.4. // Skeleton interface for Bison LALR(1) parsers in C++ -// Copyright (C) 2002-2015 Free Software Foundation, Inc. +// Copyright (C) 2002-2015, 2018-2020 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,6 +30,7 @@ // This special exception was added by the Free Software Foundation in // version 2.2 of Bison. + /** ** \file dhcp4_parser.h ** Define the isc::dhcp::parser class. @@ -37,10 +38,13 @@ // 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_PARSER4_DHCP4_PARSER_H_INCLUDED # define YY_PARSER4_DHCP4_PARSER_H_INCLUDED -// // "%code requires" blocks. -#line 17 "dhcp4_parser.yy" // lalr1.cc:377 +// "%code requires" blocks. +#line 17 "dhcp4_parser.yy" #include <string> #include <cc/data.h> @@ -52,7 +56,7 @@ using namespace isc::dhcp; using namespace isc::data; using namespace std; -#line 56 "dhcp4_parser.h" // lalr1.cc:377 +#line 60 "dhcp4_parser.h" # include <cassert> # include <cstdlib> // std::abort @@ -60,39 +64,64 @@ using namespace std; # include <stdexcept> # include <string> # include <vector> -# include "stack.hh" + +#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 "location.hh" #include <typeinfo> -#ifndef YYASSERT +#ifndef YY_ASSERT # include <cassert> -# define YYASSERT assert +# define YY_ASSERT assert #endif -#ifndef YY_ATTRIBUTE -# if (defined __GNUC__ \ - && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ - || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C -# define YY_ATTRIBUTE(Spec) __attribute__(Spec) +#ifndef YY_ATTRIBUTE_PURE +# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) # else -# define YY_ATTRIBUTE(Spec) /* empty */ +# define YY_ATTRIBUTE_PURE # endif #endif -#ifndef YY_ATTRIBUTE_PURE -# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) -#endif - #ifndef YY_ATTRIBUTE_UNUSED -# 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) +# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) # else -# define _Noreturn YY_ATTRIBUTE ((__noreturn__)) +# define YY_ATTRIBUTE_UNUSED # endif #endif @@ -103,13 +132,13 @@ using namespace std; # define YYUSE(E) /* empty */ #endif -#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ /* Suppress an incorrect diagnostic about yylval being uninitialized. */ -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else # define YY_INITIAL_VALUE(Value) Value @@ -122,6 +151,39 @@ using namespace std; # define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif +#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ +# define YY_IGNORE_USELESS_CAST_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") +# define YY_IGNORE_USELESS_CAST_END \ + _Pragma ("GCC diagnostic pop") +#endif +#ifndef YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_END +#endif + +# ifndef YY_CAST +# ifdef __cplusplus +# define YY_CAST(Type, Val) static_cast<Type> (Val) +# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val) +# else +# define YY_CAST(Type, Val) ((Type) (Val)) +# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) +# endif +# 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 PARSER4_DEBUG # if defined YYDEBUG @@ -135,120 +197,175 @@ using namespace std; # endif /* ! defined YYDEBUG */ #endif /* ! defined PARSER4_DEBUG */ -#line 14 "dhcp4_parser.yy" // lalr1.cc:377 +#line 14 "dhcp4_parser.yy" namespace isc { namespace dhcp { -#line 141 "dhcp4_parser.h" // lalr1.cc:377 +#line 203 "dhcp4_parser.h" - /// A char[S] buffer to store and retrieve objects. + + /// A Bison parser. + class Dhcp4Parser + { + public: +#ifndef PARSER4_STYPE + /// A 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 state. - template <size_t S> - struct variant + /// via the current parser state. + class semantic_type { + public: /// Type of *this. - typedef variant<S> self_type; + typedef semantic_type self_type; /// Empty construction. - variant () - : yytypeid_ (YY_NULLPTR) + semantic_type () YY_NOEXCEPT + : yybuffer_ () + , yytypeid_ (YY_NULLPTR) {} /// Construct and fill. template <typename T> - variant (const T& t) + semantic_type (YY_RVREF (T) t) : yytypeid_ (&typeid (T)) { - YYASSERT (sizeof (T) <= S); - new (yyas_<T> ()) T (t); + YY_ASSERT (sizeof (T) <= size); + new (yyas_<T> ()) T (YY_MOVE (t)); } /// Destruction, allowed only if empty. - ~variant () + ~semantic_type () YY_NOEXCEPT { - YYASSERT (!yytypeid_); + YY_ASSERT (!yytypeid_); } +# if 201103L <= YY_CPLUSPLUS + /// Instantiate a \a T in here from \a t. + template <typename T, typename... U> + T& + emplace (U&&... u) + { + YY_ASSERT (!yytypeid_); + YY_ASSERT (sizeof (T) <= size); + yytypeid_ = & typeid (T); + return *new (yyas_<T> ()) T (std::forward <U>(u)...); + } +# else /// Instantiate an empty \a T in here. template <typename T> T& - build () + emplace () { - YYASSERT (!yytypeid_); - YYASSERT (sizeof (T) <= S); + YY_ASSERT (!yytypeid_); + YY_ASSERT (sizeof (T) <= size); yytypeid_ = & typeid (T); - return *new (yyas_<T> ()) T; + return *new (yyas_<T> ()) T (); } /// Instantiate a \a T in here from \a t. template <typename T> T& - build (const T& t) + emplace (const T& t) { - YYASSERT (!yytypeid_); - YYASSERT (sizeof (T) <= S); + YY_ASSERT (!yytypeid_); + YY_ASSERT (sizeof (T) <= size); yytypeid_ = & typeid (T); return *new (yyas_<T> ()) T (t); } +# endif + + /// Instantiate an empty \a T in here. + /// Obsolete, use emplace. + template <typename T> + T& + build () + { + return emplace<T> (); + } + + /// Instantiate a \a T in here from \a t. + /// Obsolete, use emplace. + template <typename T> + T& + build (const T& t) + { + return emplace<T> (t); + } /// Accessor to a built \a T. template <typename T> T& - as () + as () YY_NOEXCEPT { - YYASSERT (*yytypeid_ == typeid (T)); - YYASSERT (sizeof (T) <= S); + YY_ASSERT (yytypeid_); + YY_ASSERT (*yytypeid_ == typeid (T)); + YY_ASSERT (sizeof (T) <= size); return *yyas_<T> (); } /// Const accessor to a built \a T (for %printer). template <typename T> const T& - as () const + as () const YY_NOEXCEPT { - YYASSERT (*yytypeid_ == typeid (T)); - YYASSERT (sizeof (T) <= S); + YY_ASSERT (yytypeid_); + YY_ASSERT (*yytypeid_ == typeid (T)); + YY_ASSERT (sizeof (T) <= size); return *yyas_<T> (); } - /// Swap the content with \a other, of same type. + /// Swap the content with \a that, 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 responsability. + /// should not be the variant's responsibility. /// Swapping between built and (possibly) non-built is done with - /// variant::move (). + /// self_type::move (). template <typename T> void - swap (self_type& other) + swap (self_type& that) YY_NOEXCEPT { - YYASSERT (yytypeid_); - YYASSERT (*yytypeid_ == *other.yytypeid_); - std::swap (as<T> (), other.as<T> ()); + YY_ASSERT (yytypeid_); + YY_ASSERT (*yytypeid_ == *that.yytypeid_); + std::swap (as<T> (), that.as<T> ()); } - /// Move the content of \a other to this. + /// Move the content of \a that to this. /// - /// Destroys \a other. + /// Destroys \a that. template <typename T> void - move (self_type& other) + move (self_type& that) { - build<T> (); - swap<T> (other); - other.destroy<T> (); +# if 201103L <= YY_CPLUSPLUS + emplace<T> (std::move (that.as<T> ())); +# else + emplace<T> (); + swap<T> (that); +# endif + that.destroy<T> (); } - /// Copy the content of \a other to this. +# if 201103L <= YY_CPLUSPLUS + /// Move the content of \a that to this. template <typename T> void - copy (const self_type& other) + move (self_type&& that) { - build<T> (other.as<T> ()); + emplace<T> (std::move (that.as<T> ())); + that.destroy<T> (); + } +#endif + + /// Copy the content of \a that to this. + template <typename T> + void + copy (const self_type& that) + { + emplace<T> (that.as<T> ()); } /// Destroy the stored \a T. @@ -262,13 +379,13 @@ namespace isc { namespace dhcp { private: /// Prohibit blind copies. - self_type& operator=(const self_type&); - variant (const self_type&); + self_type& operator= (const self_type&); + semantic_type (const self_type&); /// Accessor to raw memory as \a T. template <typename T> T* - yyas_ () + yyas_ () YY_NOEXCEPT { void *yyp = yybuffer_.yyraw; return static_cast<T*> (yyp); @@ -277,30 +394,12 @@ namespace isc { namespace dhcp { /// Const accessor to raw memory as \a T. template <typename T> const T* - yyas_ () const + yyas_ () const YY_NOEXCEPT { const void *yyp = yybuffer_.yyraw; return static_cast<const T*> (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 Dhcp4Parser - { - public: -#ifndef PARSER4_STYPE /// An auxiliary type to compute the largest semantic type. union union_type { @@ -312,23 +411,37 @@ namespace isc { namespace dhcp { // db_type // hr_mode // ncr_protocol_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)]; -}; + 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_; + }; - /// Symbol semantic values. - typedef variant<sizeof(union_type)> semantic_type; #else typedef PARSER4_STYPE semantic_type; #endif @@ -338,7 +451,18 @@ 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); + 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; + location_type location; }; @@ -558,7 +682,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 <typename Base> @@ -568,39 +692,155 @@ namespace isc { namespace dhcp { typedef Base super_type; /// Default constructor. - basic_symbol (); + basic_symbol () + : value () + , location () + {} + +#if 201103L <= YY_CPLUSPLUS + /// Move constructor. + basic_symbol (basic_symbol&& that); +#endif /// Copy constructor. - basic_symbol (const basic_symbol& other); + basic_symbol (const basic_symbol& that); /// 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 - basic_symbol (typename Base::kind_type t, const location_type& l); - - basic_symbol (typename Base::kind_type t, const ElementPtr v, const location_type& l); - - basic_symbol (typename Base::kind_type t, const bool v, const location_type& l); + /// Destroy the symbol. + ~basic_symbol () + { + clear (); + } - basic_symbol (typename Base::kind_type t, const double v, const location_type& l); + /// Destroy contents, and record that is empty. + void clear () + { + // User destructor. + symbol_number_type yytype = this->type_get (); + basic_symbol<Base>& yysym = *this; + (void) yysym; + switch (yytype) + { + default: + break; + } + + // Type destructor. +switch (yytype) + { + case 211: // value + case 215: // map_value + case 256: // ddns_replace_client_name_value + case 278: // socket_type + case 281: // outbound_interface_value + case 303: // db_type + case 397: // hr_mode + case 552: // ncr_protocol_value + value.template destroy< ElementPtr > (); + break; - basic_symbol (typename Base::kind_type t, const int64_t v, const location_type& l); + case 194: // "boolean" + value.template destroy< bool > (); + break; - basic_symbol (typename Base::kind_type t, const std::string v, const location_type& l); + case 193: // "floating point" + value.template destroy< double > (); + break; + case 192: // "integer" + value.template destroy< int64_t > (); + break; - /// Constructor for symbols with semantic value. - basic_symbol (typename Base::kind_type t, - const semantic_type& v, - const location_type& l); + case 191: // "constant string" + value.template destroy< std::string > (); + break; - /// Destroy the symbol. - ~basic_symbol (); + default: + break; + } - /// Destroy contents, and record that is empty. - void clear (); + Base::clear (); + } /// Whether empty. - bool empty () const; + bool empty () const YY_NOEXCEPT; /// Destructive move, \a s is emptied into this. void move (basic_symbol& s); @@ -612,8 +852,10 @@ namespace isc { namespace dhcp { location_type location; private: +#if YY_CPLUSPLUS < 201103L /// Assignment operator. - basic_symbol& operator= (const basic_symbol& other); + basic_symbol& operator= (const basic_symbol& that); +#endif }; /// Type access provider for token (enum) based symbols. @@ -622,8 +864,13 @@ namespace isc { namespace dhcp { /// Default constructor. by_type (); +#if 201103L <= YY_CPLUSPLUS + /// Move constructor. + by_type (by_type&& that); +#endif + /// Copy constructor. - by_type (const by_type& other); + by_type (const by_type& that); /// The symbol type as needed by the constructor. typedef token_type kind_type; @@ -639,10 +886,7 @@ namespace isc { namespace dhcp { /// The (internal) type number (corresponding to \a type). /// \a empty when empty. - symbol_number_type type_get () const; - - /// The token. - token_type token () const; + symbol_number_type type_get () const YY_NOEXCEPT; /// The symbol type. /// \a empty_symbol when empty. @@ -651,786 +895,90 @@ namespace isc { namespace dhcp { }; /// "External" symbols: returned by the scanner. - typedef basic_symbol<by_type> symbol_type; - - // Symbol constructors declarations. - static inline - symbol_type - make_END (const location_type& l); - - static inline - symbol_type - make_COMMA (const location_type& l); - - static inline - symbol_type - make_COLON (const location_type& l); - - static inline - symbol_type - make_LSQUARE_BRACKET (const location_type& l); - - static inline - symbol_type - make_RSQUARE_BRACKET (const location_type& l); - - static inline - symbol_type - make_LCURLY_BRACKET (const location_type& l); - - static inline - symbol_type - make_RCURLY_BRACKET (const location_type& l); - - static inline - symbol_type - make_NULL_TYPE (const location_type& l); - - static inline - symbol_type - make_DHCP4 (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_CONFIG_FETCH_WAIT_TIME (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_DHCP_SOCKET_TYPE (const location_type& l); - - static inline - symbol_type - make_RAW (const location_type& l); - - static inline - symbol_type - make_UDP (const location_type& l); - - static inline - symbol_type - make_OUTBOUND_INTERFACE (const location_type& l); - - static inline - symbol_type - make_SAME_AS_INBOUND (const location_type& l); - - static inline - symbol_type - make_USE_ROUTING (const location_type& l); - - static inline - symbol_type - make_RE_DETECT (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_ECHO_CLIENT_ID (const location_type& l); - - static inline - symbol_type - make_MATCH_CLIENT_ID (const location_type& l); - - static inline - symbol_type - make_AUTHORITATIVE (const location_type& l); - - static inline - symbol_type - make_NEXT_SERVER (const location_type& l); - - static inline - symbol_type - make_SERVER_HOSTNAME (const location_type& l); - - static inline - symbol_type - make_BOOT_FILE_NAME (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_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_MAX_RECONNECT_TRIES (const location_type& l); - - static inline - symbol_type - make_RECONNECT_WAIT_TIME (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_MAX_ROW_ERRORS (const location_type& l); - - static inline - symbol_type - make_VALID_LIFETIME (const location_type& l); - - static inline - symbol_type - make_MIN_VALID_LIFETIME (const location_type& l); - - static inline - symbol_type - make_MAX_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_CALCULATE_TEE_TIMES (const location_type& l); - - static inline - symbol_type - make_T1_PERCENT (const location_type& l); - - static inline - symbol_type - make_T2_PERCENT (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_STATISTIC_DEFAULT_SAMPLE_COUNT (const location_type& l); - - static inline - symbol_type - make_STATISTIC_DEFAULT_SAMPLE_AGE (const location_type& l); - - static inline - symbol_type - make_DDNS_SEND_UPDATES (const location_type& l); - - static inline - symbol_type - make_DDNS_OVERRIDE_NO_UPDATE (const location_type& l); - - static inline - symbol_type - make_DDNS_OVERRIDE_CLIENT_UPDATE (const location_type& l); - - static inline - symbol_type - make_DDNS_REPLACE_CLIENT_NAME (const location_type& l); - - static inline - symbol_type - make_DDNS_GENERATED_PREFIX (const location_type& l); - - static inline - symbol_type - make_DDNS_QUALIFYING_SUFFIX (const location_type& l); - - static inline - symbol_type - make_STORE_EXTENDED_INFO (const location_type& l); - - static inline - symbol_type - make_SUBNET4 (const location_type& l); - - static inline - symbol_type - make_SUBNET_4O6_INTERFACE (const location_type& l); - - static inline - symbol_type - make_SUBNET_4O6_INTERFACE_ID (const location_type& l); - - static inline - symbol_type - make_SUBNET_4O6_SUBNET (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_SHARED_NETWORKS (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_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_ID (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_HOST_RESERVATION_IDENTIFIERS (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_DUID (const location_type& l); - - static inline - symbol_type - make_HW_ADDRESS (const location_type& l); - - static inline - symbol_type - make_CIRCUIT_ID (const location_type& l); - - static inline - symbol_type - make_CLIENT_ID (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_IP_ADDRESSES (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_DHCP4O6_PORT (const location_type& l); - - static inline - symbol_type - make_DHCP_MULTI_THREADING (const location_type& l); - - static inline - symbol_type - make_ENABLE_MULTI_THREADING (const location_type& l); - - static inline - symbol_type - make_THREAD_POOL_SIZE (const location_type& l); - - static inline - symbol_type - make_PACKET_QUEUE_SIZE (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_ENABLE_QUEUE (const location_type& l); - - static inline - symbol_type - make_QUEUE_TYPE (const location_type& l); - - static inline - symbol_type - make_CAPACITY (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_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_PATTERN (const location_type& l); - - static inline - symbol_type - make_DHCP6 (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_DHCP4 (const location_type& l); - - static inline - symbol_type - make_SUB_DHCP4 (const location_type& l); - - static inline - symbol_type - make_SUB_INTERFACES4 (const location_type& l); - - static inline - symbol_type - make_SUB_SUBNET4 (const location_type& l); - - static inline - symbol_type - make_SUB_POOL4 (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); + struct symbol_type : basic_symbol<by_type> + { + /// Superclass. + typedef basic_symbol<by_type> super_type; - static inline - symbol_type - make_BOOLEAN (const bool& v, const location_type& l); + /// Empty symbol. + symbol_type () {} + /// 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)) + { + YY_ASSERT (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_DHCP4 || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_DHCP_SOCKET_TYPE || tok == token::TOKEN_RAW || tok == token::TOKEN_UDP || tok == token::TOKEN_OUTBOUND_INTERFACE || tok == token::TOKEN_SAME_AS_INBOUND || tok == token::TOKEN_USE_ROUTING || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_ECHO_CLIENT_ID || tok == token::TOKEN_MATCH_CLIENT_ID || tok == token::TOKEN_AUTHORITATIVE || tok == token::TOKEN_NEXT_SERVER || tok == token::TOKEN_SERVER_HOSTNAME || tok == token::TOKEN_BOOT_FILE_NAME || 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_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET4 || tok == token::TOKEN_SUBNET_4O6_INTERFACE || tok == token::TOKEN_SUBNET_4O6_INTERFACE_ID || tok == token::TOKEN_SUBNET_4O6_SUBNET || 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_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_ID || 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_HOST_RESERVATION_IDENTIFIERS || 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_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_CIRCUIT_ID || tok == token::TOKEN_CLIENT_ID || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_IP_ADDRESSES || 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_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || 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_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_PATTERN || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP4 || tok == token::TOKEN_SUB_DHCP4 || tok == token::TOKEN_SUB_INTERFACES4 || tok == token::TOKEN_SUB_SUBNET4 || tok == token::TOKEN_SUB_POOL4 || 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) + { + YY_ASSERT (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_DHCP4 || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_DHCP_SOCKET_TYPE || tok == token::TOKEN_RAW || tok == token::TOKEN_UDP || tok == token::TOKEN_OUTBOUND_INTERFACE || tok == token::TOKEN_SAME_AS_INBOUND || tok == token::TOKEN_USE_ROUTING || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_ECHO_CLIENT_ID || tok == token::TOKEN_MATCH_CLIENT_ID || tok == token::TOKEN_AUTHORITATIVE || tok == token::TOKEN_NEXT_SERVER || tok == token::TOKEN_SERVER_HOSTNAME || tok == token::TOKEN_BOOT_FILE_NAME || 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_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET4 || tok == token::TOKEN_SUBNET_4O6_INTERFACE || tok == token::TOKEN_SUBNET_4O6_INTERFACE_ID || tok == token::TOKEN_SUBNET_4O6_SUBNET || 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_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_ID || 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_HOST_RESERVATION_IDENTIFIERS || 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_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_CIRCUIT_ID || tok == token::TOKEN_CLIENT_ID || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_IP_ADDRESSES || 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_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || 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_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_PATTERN || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP4 || tok == token::TOKEN_SUB_DHCP4 || tok == token::TOKEN_SUB_INTERFACES4 || tok == token::TOKEN_SUB_SUBNET4 || tok == token::TOKEN_SUB_POOL4 || 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)) + { + YY_ASSERT (tok == token::TOKEN_BOOLEAN); + } +#else + symbol_type (int tok, const bool& v, const location_type& l) + : super_type(token_type (tok), v, l) + { + YY_ASSERT (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)) + { + YY_ASSERT (tok == token::TOKEN_FLOAT); + } +#else + symbol_type (int tok, const double& v, const location_type& l) + : super_type(token_type (tok), v, l) + { + YY_ASSERT (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)) + { + YY_ASSERT (tok == token::TOKEN_INTEGER); + } +#else + symbol_type (int tok, const int64_t& v, const location_type& l) + : super_type(token_type (tok), v, l) + { + YY_ASSERT (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)) + { + YY_ASSERT (tok == token::TOKEN_STRING); + } +#else + symbol_type (int tok, const std::string& v, const location_type& l) + : super_type(token_type (tok), v, l) + { + YY_ASSERT (tok == token::TOKEN_STRING); + } +#endif + }; /// Build a parser object. Dhcp4Parser (isc::dhcp::Parser4Context& ctx_yyarg); virtual ~Dhcp4Parser (); + /// Parse. An alias for parse (). + /// \returns 0 iff parsing succeeded. + int operator() (); + /// Parse. /// \returns 0 iff parsing succeeded. virtual int parse (); @@ -1457,13 +1005,2911 @@ namespace isc { namespace dhcp { /// Report a syntax error. void error (const syntax_error& err); + // 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_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_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_CONFIG_FETCH_WAIT_TIME (location_type l) + { + return symbol_type (token::TOKEN_CONFIG_FETCH_WAIT_TIME, std::move (l)); + } +#else + static + symbol_type + make_CONFIG_FETCH_WAIT_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_CONFIG_FETCH_WAIT_TIME, 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_DHCP_SOCKET_TYPE (location_type l) + { + return symbol_type (token::TOKEN_DHCP_SOCKET_TYPE, std::move (l)); + } +#else + static + symbol_type + make_DHCP_SOCKET_TYPE (const location_type& l) + { + return symbol_type (token::TOKEN_DHCP_SOCKET_TYPE, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_RAW (location_type l) + { + return symbol_type (token::TOKEN_RAW, std::move (l)); + } +#else + static + symbol_type + make_RAW (const location_type& l) + { + return symbol_type (token::TOKEN_RAW, 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_OUTBOUND_INTERFACE (location_type l) + { + return symbol_type (token::TOKEN_OUTBOUND_INTERFACE, std::move (l)); + } +#else + static + symbol_type + make_OUTBOUND_INTERFACE (const location_type& l) + { + return symbol_type (token::TOKEN_OUTBOUND_INTERFACE, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SAME_AS_INBOUND (location_type l) + { + return symbol_type (token::TOKEN_SAME_AS_INBOUND, std::move (l)); + } +#else + static + symbol_type + make_SAME_AS_INBOUND (const location_type& l) + { + return symbol_type (token::TOKEN_SAME_AS_INBOUND, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_USE_ROUTING (location_type l) + { + return symbol_type (token::TOKEN_USE_ROUTING, std::move (l)); + } +#else + static + symbol_type + make_USE_ROUTING (const location_type& l) + { + return symbol_type (token::TOKEN_USE_ROUTING, 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_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_ECHO_CLIENT_ID (location_type l) + { + return symbol_type (token::TOKEN_ECHO_CLIENT_ID, std::move (l)); + } +#else + static + symbol_type + make_ECHO_CLIENT_ID (const location_type& l) + { + return symbol_type (token::TOKEN_ECHO_CLIENT_ID, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_MATCH_CLIENT_ID (location_type l) + { + return symbol_type (token::TOKEN_MATCH_CLIENT_ID, std::move (l)); + } +#else + static + symbol_type + make_MATCH_CLIENT_ID (const location_type& l) + { + return symbol_type (token::TOKEN_MATCH_CLIENT_ID, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_AUTHORITATIVE (location_type l) + { + return symbol_type (token::TOKEN_AUTHORITATIVE, std::move (l)); + } +#else + static + symbol_type + make_AUTHORITATIVE (const location_type& l) + { + return symbol_type (token::TOKEN_AUTHORITATIVE, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_NEXT_SERVER (location_type l) + { + return symbol_type (token::TOKEN_NEXT_SERVER, std::move (l)); + } +#else + static + symbol_type + make_NEXT_SERVER (const location_type& l) + { + return symbol_type (token::TOKEN_NEXT_SERVER, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SERVER_HOSTNAME (location_type l) + { + return symbol_type (token::TOKEN_SERVER_HOSTNAME, std::move (l)); + } +#else + static + symbol_type + make_SERVER_HOSTNAME (const location_type& l) + { + return symbol_type (token::TOKEN_SERVER_HOSTNAME, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_BOOT_FILE_NAME (location_type l) + { + return symbol_type (token::TOKEN_BOOT_FILE_NAME, std::move (l)); + } +#else + static + symbol_type + make_BOOT_FILE_NAME (const location_type& l) + { + return symbol_type (token::TOKEN_BOOT_FILE_NAME, 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_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); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_CONSISTENCY (location_type l) + { + return symbol_type (token::TOKEN_CONSISTENCY, std::move (l)); + } +#else + static + symbol_type + make_CONSISTENCY (const location_type& l) + { + return symbol_type (token::TOKEN_CONSISTENCY, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SERIAL_CONSISTENCY (location_type l) + { + return symbol_type (token::TOKEN_SERIAL_CONSISTENCY, std::move (l)); + } +#else + static + symbol_type + make_SERIAL_CONSISTENCY (const location_type& l) + { + return symbol_type (token::TOKEN_SERIAL_CONSISTENCY, 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_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_MAX_ROW_ERRORS (location_type l) + { + return symbol_type (token::TOKEN_MAX_ROW_ERRORS, std::move (l)); + } +#else + static + symbol_type + make_MAX_ROW_ERRORS (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_ROW_ERRORS, 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_MIN_VALID_LIFETIME (location_type l) + { + return symbol_type (token::TOKEN_MIN_VALID_LIFETIME, std::move (l)); + } +#else + static + symbol_type + make_MIN_VALID_LIFETIME (const location_type& l) + { + return symbol_type (token::TOKEN_MIN_VALID_LIFETIME, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_MAX_VALID_LIFETIME (location_type l) + { + return symbol_type (token::TOKEN_MAX_VALID_LIFETIME, std::move (l)); + } +#else + static + symbol_type + make_MAX_VALID_LIFETIME (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_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_CALCULATE_TEE_TIMES (location_type l) + { + return symbol_type (token::TOKEN_CALCULATE_TEE_TIMES, std::move (l)); + } +#else + static + symbol_type + make_CALCULATE_TEE_TIMES (const location_type& l) + { + return symbol_type (token::TOKEN_CALCULATE_TEE_TIMES, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_T1_PERCENT (location_type l) + { + return symbol_type (token::TOKEN_T1_PERCENT, std::move (l)); + } +#else + static + symbol_type + make_T1_PERCENT (const location_type& l) + { + return symbol_type (token::TOKEN_T1_PERCENT, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_T2_PERCENT (location_type l) + { + return symbol_type (token::TOKEN_T2_PERCENT, std::move (l)); + } +#else + static + symbol_type + make_T2_PERCENT (const location_type& l) + { + return symbol_type (token::TOKEN_T2_PERCENT, 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_STATISTIC_DEFAULT_SAMPLE_COUNT (location_type l) + { + return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT, std::move (l)); + } +#else + static + symbol_type + make_STATISTIC_DEFAULT_SAMPLE_COUNT (const location_type& l) + { + return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_STATISTIC_DEFAULT_SAMPLE_AGE (location_type l) + { + return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE, std::move (l)); + } +#else + static + symbol_type + make_STATISTIC_DEFAULT_SAMPLE_AGE (const location_type& l) + { + return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_DDNS_SEND_UPDATES (location_type l) + { + return symbol_type (token::TOKEN_DDNS_SEND_UPDATES, std::move (l)); + } +#else + static + symbol_type + make_DDNS_SEND_UPDATES (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_SEND_UPDATES, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_DDNS_OVERRIDE_NO_UPDATE (location_type l) + { + return symbol_type (token::TOKEN_DDNS_OVERRIDE_NO_UPDATE, std::move (l)); + } +#else + static + symbol_type + make_DDNS_OVERRIDE_NO_UPDATE (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_OVERRIDE_NO_UPDATE, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_DDNS_OVERRIDE_CLIENT_UPDATE (location_type l) + { + return symbol_type (token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE, std::move (l)); + } +#else + static + symbol_type + make_DDNS_OVERRIDE_CLIENT_UPDATE (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_DDNS_REPLACE_CLIENT_NAME (location_type l) + { + return symbol_type (token::TOKEN_DDNS_REPLACE_CLIENT_NAME, std::move (l)); + } +#else + static + symbol_type + make_DDNS_REPLACE_CLIENT_NAME (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_REPLACE_CLIENT_NAME, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_DDNS_GENERATED_PREFIX (location_type l) + { + return symbol_type (token::TOKEN_DDNS_GENERATED_PREFIX, std::move (l)); + } +#else + static + symbol_type + make_DDNS_GENERATED_PREFIX (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_GENERATED_PREFIX, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_DDNS_QUALIFYING_SUFFIX (location_type l) + { + return symbol_type (token::TOKEN_DDNS_QUALIFYING_SUFFIX, std::move (l)); + } +#else + static + symbol_type + make_DDNS_QUALIFYING_SUFFIX (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_QUALIFYING_SUFFIX, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_STORE_EXTENDED_INFO (location_type l) + { + return symbol_type (token::TOKEN_STORE_EXTENDED_INFO, std::move (l)); + } +#else + static + symbol_type + make_STORE_EXTENDED_INFO (const location_type& l) + { + return symbol_type (token::TOKEN_STORE_EXTENDED_INFO, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SUBNET4 (location_type l) + { + return symbol_type (token::TOKEN_SUBNET4, std::move (l)); + } +#else + static + symbol_type + make_SUBNET4 (const location_type& l) + { + return symbol_type (token::TOKEN_SUBNET4, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SUBNET_4O6_INTERFACE (location_type l) + { + return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE, std::move (l)); + } +#else + static + symbol_type + make_SUBNET_4O6_INTERFACE (const location_type& l) + { + return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SUBNET_4O6_INTERFACE_ID (location_type l) + { + return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE_ID, std::move (l)); + } +#else + static + symbol_type + make_SUBNET_4O6_INTERFACE_ID (const location_type& l) + { + return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE_ID, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SUBNET_4O6_SUBNET (location_type l) + { + return symbol_type (token::TOKEN_SUBNET_4O6_SUBNET, std::move (l)); + } +#else + static + symbol_type + make_SUBNET_4O6_SUBNET (const location_type& l) + { + return symbol_type (token::TOKEN_SUBNET_4O6_SUBNET, 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_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_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_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_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_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_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_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_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_CIRCUIT_ID (location_type l) + { + return symbol_type (token::TOKEN_CIRCUIT_ID, std::move (l)); + } +#else + static + symbol_type + make_CIRCUIT_ID (const location_type& l) + { + return symbol_type (token::TOKEN_CIRCUIT_ID, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_CLIENT_ID (location_type l) + { + return symbol_type (token::TOKEN_CLIENT_ID, std::move (l)); + } +#else + static + symbol_type + make_CLIENT_ID (const location_type& l) + { + return symbol_type (token::TOKEN_CLIENT_ID, 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_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_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_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_DHCP_MULTI_THREADING (location_type l) + { + return symbol_type (token::TOKEN_DHCP_MULTI_THREADING, std::move (l)); + } +#else + static + symbol_type + make_DHCP_MULTI_THREADING (const location_type& l) + { + return symbol_type (token::TOKEN_DHCP_MULTI_THREADING, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_ENABLE_MULTI_THREADING (location_type l) + { + return symbol_type (token::TOKEN_ENABLE_MULTI_THREADING, std::move (l)); + } +#else + static + symbol_type + make_ENABLE_MULTI_THREADING (const location_type& l) + { + return symbol_type (token::TOKEN_ENABLE_MULTI_THREADING, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_THREAD_POOL_SIZE (location_type l) + { + return symbol_type (token::TOKEN_THREAD_POOL_SIZE, std::move (l)); + } +#else + static + symbol_type + make_THREAD_POOL_SIZE (const location_type& l) + { + return symbol_type (token::TOKEN_THREAD_POOL_SIZE, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_PACKET_QUEUE_SIZE (location_type l) + { + return symbol_type (token::TOKEN_PACKET_QUEUE_SIZE, std::move (l)); + } +#else + static + symbol_type + make_PACKET_QUEUE_SIZE (const location_type& l) + { + return symbol_type (token::TOKEN_PACKET_QUEUE_SIZE, 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_ENABLE_QUEUE (location_type l) + { + return symbol_type (token::TOKEN_ENABLE_QUEUE, std::move (l)); + } +#else + static + symbol_type + make_ENABLE_QUEUE (const location_type& l) + { + return symbol_type (token::TOKEN_ENABLE_QUEUE, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_QUEUE_TYPE (location_type l) + { + return symbol_type (token::TOKEN_QUEUE_TYPE, std::move (l)); + } +#else + static + symbol_type + make_QUEUE_TYPE (const location_type& l) + { + return symbol_type (token::TOKEN_QUEUE_TYPE, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_CAPACITY (location_type l) + { + return symbol_type (token::TOKEN_CAPACITY, std::move (l)); + } +#else + static + symbol_type + make_CAPACITY (const location_type& l) + { + return symbol_type (token::TOKEN_CAPACITY, 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_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_PATTERN (location_type l) + { + return symbol_type (token::TOKEN_PATTERN, std::move (l)); + } +#else + static + symbol_type + make_PATTERN (const location_type& l) + { + return symbol_type (token::TOKEN_PATTERN, 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_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_DHCP4 (location_type l) + { + return symbol_type (token::TOKEN_TOPLEVEL_DHCP4, std::move (l)); + } +#else + static + symbol_type + make_TOPLEVEL_DHCP4 (const location_type& l) + { + return symbol_type (token::TOKEN_TOPLEVEL_DHCP4, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SUB_DHCP4 (location_type l) + { + return symbol_type (token::TOKEN_SUB_DHCP4, std::move (l)); + } +#else + static + symbol_type + make_SUB_DHCP4 (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_DHCP4, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SUB_INTERFACES4 (location_type l) + { + return symbol_type (token::TOKEN_SUB_INTERFACES4, std::move (l)); + } +#else + static + symbol_type + make_SUB_INTERFACES4 (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_INTERFACES4, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SUB_SUBNET4 (location_type l) + { + return symbol_type (token::TOKEN_SUB_SUBNET4, std::move (l)); + } +#else + static + symbol_type + make_SUB_SUBNET4 (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_SUBNET4, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SUB_POOL4 (location_type l) + { + return symbol_type (token::TOKEN_SUB_POOL4, std::move (l)); + } +#else + static + symbol_type + make_SUB_POOL4 (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_POOL4, 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); + } +#endif + + private: /// This class is not copyable. Dhcp4Parser (const Dhcp4Parser&); Dhcp4Parser& operator= (const Dhcp4Parser&); - /// State numbers. - typedef int state_type; + /// Stored state numbers (used for stacks). + typedef short state_type; /// Generate an error message. /// \param yystate the state where the error occurred. @@ -1474,7 +3920,7 @@ namespace isc { namespace dhcp { /// 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); + static 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 @@ -1484,44 +3930,46 @@ namespace isc { namespace dhcp { /// \param yyvalue the value to check static bool yy_table_value_is_error_ (int yyvalue); - static const short int yypact_ninf_; + static const short 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); + /// In theory \a t should be a token_type, but character literals + /// are valid, yet not members of the token_type enum. + static token_number_type yytranslate_ (int t); // Tables. - // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - // STATE-NUM. - static const short int yypact_[]; + // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + // STATE-NUM. + static const short 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_[]; + // 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 short yydefact_[]; - // YYPGOTO[NTERM-NUM]. - static const short int yypgoto_[]; + // YYPGOTO[NTERM-NUM]. + static const short yypgoto_[]; - // YYDEFGOTO[NTERM-NUM]. - static const short int yydefgoto_[]; + // YYDEFGOTO[NTERM-NUM]. + static const short 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_[]; + // 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 short yytable_[]; - static const short int yycheck_[]; + static const short yycheck_[]; - // YYSTOS[STATE-NUM] -- The (internal number of the) accessing - // symbol of state STATE-NUM. - static const unsigned short int yystos_[]; + // YYSTOS[STATE-NUM] -- The (internal number of the) accessing + // symbol of state STATE-NUM. + static const short yystos_[]; - // YYR1[YYN] -- Symbol number of symbol that rule YYN derives. - static const unsigned short int yyr1_[]; + // YYR1[YYN] -- Symbol number of symbol that rule YYN derives. + static const short yyr1_[]; - // YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. - static const unsigned char yyr2_[]; + // YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. + static const signed char yyr2_[]; /// Convert the symbol name \a n to a form suitable for a diagnostic. @@ -1531,15 +3979,16 @@ namespace isc { namespace dhcp { /// For a symbol, its name in clear. static const char* const yytname_[]; #if PARSER4_DEBUG - // YYRLINE[YYN] -- Source line where rule number YYN was defined. - static const unsigned short int yyrline_[]; + // YYRLINE[YYN] -- Source line where rule number YYN was defined. + static const 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_ (); - // Debugging. + /// Debugging level. int yydebug_; + /// Debug stream. std::ostream* yycdebug_; /// \brief Display a symbol type, value and location. @@ -1561,29 +4010,30 @@ namespace isc { namespace dhcp { struct by_state { /// Default constructor. - by_state (); + by_state () YY_NOEXCEPT; /// The symbol type as needed by the constructor. typedef state_type kind_type; /// Constructor. - by_state (kind_type s); + by_state (kind_type s) YY_NOEXCEPT; /// Copy constructor. - by_state (const by_state& other); + by_state (const by_state& that) YY_NOEXCEPT; /// Record that this symbol is empty. - void clear (); + void clear () YY_NOEXCEPT; /// 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; + symbol_number_type type_get () const YY_NOEXCEPT; /// The state number used to denote an empty symbol. - enum { empty_state = -1 }; + /// We use the initial state, as it does not have a value. + enum { empty_state = 0 }; /// The state. /// \a empty when empty. @@ -1597,12 +4047,134 @@ namespace isc { namespace dhcp { typedef basic_symbol<by_state> 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, symbol_type& sym); - /// Assignment, needed by push_back. + 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); + + /// Assignment, needed by push_back by other implementations. + /// Needed by some other old implementations. stack_symbol_type& operator= (const stack_symbol_type& that); +#endif }; + /// A stack with random access from its top. + template <typename T, typename S = std::vector<T> > + 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; + typedef typename std::ptrdiff_t index_type; + + stack (size_type n = 200) + : seq_ (n) + {} + + /// Random access. + /// + /// Index 0 returns the topmost element. + const T& + operator[] (index_type i) const + { + return seq_[size_type (size () - 1 - i)]; + } + + /// Random access. + /// + /// Index 0 returns the topmost element. + T& + operator[] (index_type i) + { + return seq_[size_type (size () - 1 - 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); + } + + /// Pop elements from the stack. + void + pop (std::ptrdiff_t n = 1) YY_NOEXCEPT + { + for (; 0 < n; --n) + seq_.pop_back (); + } + + /// Pop all elements from the stack. + void + clear () YY_NOEXCEPT + { + seq_.clear (); + } + + /// Number of elements on the stack. + index_type + size () const YY_NOEXCEPT + { + return index_type (seq_.size ()); + } + + std::ptrdiff_t + ssize () const YY_NOEXCEPT + { + return std::ptrdiff_t (size ()); + } + + /// Iterator on top of the stack (going downwards). + const_iterator + begin () const YY_NOEXCEPT + { + return seq_.rbegin (); + } + + /// Bottom of the stack. + const_iterator + end () const YY_NOEXCEPT + { + return seq_.rend (); + } + + /// Present a slice of the top of a stack. + class slice + { + public: + slice (const stack& stack, index_type range) + : stack_ (stack) + , range_ (range) + {} + + const T& + operator[] (index_type i) const + { + return stack_[range_ - i]; + } + + private: + const stack& stack_; + index_type range_; + }; + + private: + stack (const stack&); + stack& operator= (const stack&); + /// The wrapped container. + S seq_; + }; + + /// Stack type. typedef stack<stack_symbol_type> stack_type; @@ -1612,20 +4184,24 @@ namespace isc { namespace dhcp { /// Push a new state on the stack. /// \param m a debug message to display /// if null, no trace is output. - /// \param s the symbol + /// \param sym the symbol /// \warning the contents of \a s.value is stolen. - void yypush_ (const char* m, stack_symbol_type& s); + void yypush_ (const char* m, YY_MOVE_REF (stack_symbol_type) sym); /// 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); + /// \warning the contents of \a sym.value is stolen. + void yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym); + + /// Pop \a n symbols from the stack. + void yypop_ (int n = 1); - /// Pop \a n symbols the three stacks. - void yypop_ (unsigned int n = 1); + /// Some specific tokens. + static const token_number_type yy_error_token_ = 1; + static const token_number_type yy_undef_token_ = 2; /// Constants. enum @@ -1634,8 +4210,6 @@ namespace isc { namespace dhcp { yylast_ = 1357, ///< Last index in yytable_. yynnts_ = 417, ///< Number of nonterminal symbols. yyfinal_ = 30, ///< Termination state number. - yyterror_ = 1, - yyerrcode_ = 256, yyntokens_ = 195 ///< Number of tokens. }; @@ -1644,16 +4218,17 @@ namespace isc { namespace dhcp { isc::dhcp::Parser4Context& ctx; }; - // Symbol number corresponding to token number t. inline Dhcp4Parser::token_number_type - Dhcp4Parser::yytranslate_ (token_type t) + Dhcp4Parser::yytranslate_ (int t) { + // 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, + 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, @@ -1699,38 +4274,25 @@ namespace isc { namespace dhcp { 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194 }; - const unsigned int user_token_number_max_ = 449; - const token_number_type undef_token_ = 2; + const int user_token_number_max_ = 449; - if (static_cast<int>(t) <= yyeof_) + if (t <= 0) return yyeof_; - else if (static_cast<unsigned int> (t) <= user_token_number_max_) + else if (t <= user_token_number_max_) return translate_table[t]; else - return undef_token_; + return yy_undef_token_; } - inline - Dhcp4Parser::syntax_error::syntax_error (const location_type& l, const std::string& m) - : std::runtime_error (m) - , location (l) - {} - // basic_symbol. +#if 201103L <= YY_CPLUSPLUS template <typename Base> - inline - Dhcp4Parser::basic_symbol<Base>::basic_symbol () - : value () - {} - - template <typename Base> - inline - Dhcp4Parser::basic_symbol<Base>::basic_symbol (const basic_symbol& other) - : Base (other) + Dhcp4Parser::basic_symbol<Base>::basic_symbol (basic_symbol&& that) + : Base (std::move (that)) , value () - , location (other.location) + , location (std::move (that.location)) { - switch (other.type_get ()) + switch (this->type_get ()) { case 211: // value case 215: // map_value @@ -1740,23 +4302,23 @@ namespace isc { namespace dhcp { case 303: // db_type case 397: // hr_mode case 552: // ncr_protocol_value - value.copy< ElementPtr > (other.value); + value.move< ElementPtr > (std::move (that.value)); break; case 194: // "boolean" - value.copy< bool > (other.value); + value.move< bool > (std::move (that.value)); break; case 193: // "floating point" - value.copy< double > (other.value); + value.move< double > (std::move (that.value)); break; case 192: // "integer" - value.copy< int64_t > (other.value); + value.move< int64_t > (std::move (that.value)); break; case 191: // "constant string" - value.copy< std::string > (other.value); + value.move< std::string > (std::move (that.value)); break; default: @@ -1764,17 +4326,15 @@ namespace isc { namespace dhcp { } } - +#endif template <typename Base> - inline - Dhcp4Parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const semantic_type& v, const location_type& l) - : Base (t) + Dhcp4Parser::basic_symbol<Base>::basic_symbol (const basic_symbol& that) + : Base (that) , value () - , location (l) + , location (that.location) { - (void) v; - switch (this->type_get ()) + switch (this->type_get ()) { case 211: // value case 215: // map_value @@ -1784,150 +4344,46 @@ namespace isc { namespace dhcp { case 303: // db_type case 397: // hr_mode case 552: // ncr_protocol_value - value.copy< ElementPtr > (v); + value.copy< ElementPtr > (YY_MOVE (that.value)); break; case 194: // "boolean" - value.copy< bool > (v); + value.copy< bool > (YY_MOVE (that.value)); break; case 193: // "floating point" - value.copy< double > (v); + value.copy< double > (YY_MOVE (that.value)); break; case 192: // "integer" - value.copy< int64_t > (v); + value.copy< int64_t > (YY_MOVE (that.value)); break; case 191: // "constant string" - value.copy< std::string > (v); + value.copy< std::string > (YY_MOVE (that.value)); break; default: break; } -} - - - // Implementation of basic_symbol constructor for each type. - - template <typename Base> - Dhcp4Parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const location_type& l) - : Base (t) - , value () - , location (l) - {} - - template <typename Base> - Dhcp4Parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const ElementPtr v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} - - template <typename Base> - Dhcp4Parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const bool v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} - template <typename Base> - Dhcp4Parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const double v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} - - template <typename Base> - Dhcp4Parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const int64_t v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} - - template <typename Base> - Dhcp4Parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const std::string v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} - - - template <typename Base> - inline - Dhcp4Parser::basic_symbol<Base>::~basic_symbol () - { - clear (); } - template <typename Base> - inline - void - Dhcp4Parser::basic_symbol<Base>::clear () - { - // User destructor. - symbol_number_type yytype = this->type_get (); - basic_symbol<Base>& yysym = *this; - (void) yysym; - switch (yytype) - { - default: - break; - } - // Type destructor. - switch (yytype) - { - case 211: // value - case 215: // map_value - case 256: // ddns_replace_client_name_value - case 278: // socket_type - case 281: // outbound_interface_value - case 303: // db_type - case 397: // hr_mode - case 552: // ncr_protocol_value - value.template destroy< ElementPtr > (); - break; - - case 194: // "boolean" - value.template destroy< bool > (); - break; - - case 193: // "floating point" - value.template destroy< double > (); - break; - - case 192: // "integer" - value.template destroy< int64_t > (); - break; - - case 191: // "constant string" - value.template destroy< std::string > (); - break; - - default: - break; - } - - Base::clear (); - } template <typename Base> - inline bool - Dhcp4Parser::basic_symbol<Base>::empty () const + Dhcp4Parser::basic_symbol<Base>::empty () const YY_NOEXCEPT { return Base::type_get () == empty_symbol; } template <typename Base> - inline void Dhcp4Parser::basic_symbol<Base>::move (basic_symbol& s) { - super_type::move(s); - switch (this->type_get ()) + super_type::move (s); + switch (this->type_get ()) { case 211: // value case 215: // map_value @@ -1937,30 +4393,30 @@ namespace isc { namespace dhcp { case 303: // db_type case 397: // hr_mode case 552: // ncr_protocol_value - value.move< ElementPtr > (s.value); + value.move< ElementPtr > (YY_MOVE (s.value)); break; case 194: // "boolean" - value.move< bool > (s.value); + value.move< bool > (YY_MOVE (s.value)); break; case 193: // "floating point" - value.move< double > (s.value); + value.move< double > (YY_MOVE (s.value)); break; case 192: // "integer" - value.move< int64_t > (s.value); + value.move< int64_t > (YY_MOVE (s.value)); break; case 191: // "constant string" - value.move< std::string > (s.value); + value.move< std::string > (YY_MOVE (s.value)); break; default: break; } - location = s.location; + location = YY_MOVE (s.location); } // by_type. @@ -1969,9 +4425,18 @@ namespace isc { namespace dhcp { : type (empty_symbol) {} +#if 201103L <= YY_CPLUSPLUS + inline + Dhcp4Parser::by_type::by_type (by_type&& that) + : type (that.type) + { + that.clear (); + } +#endif + inline - Dhcp4Parser::by_type::by_type (const by_type& other) - : type (other.type) + Dhcp4Parser::by_type::by_type (const by_type& that) + : type (that.type) {} inline @@ -1996,1207 +4461,15 @@ namespace isc { namespace dhcp { inline int - Dhcp4Parser::by_type::type_get () const + Dhcp4Parser::by_type::type_get () const YY_NOEXCEPT { return type; } - inline - Dhcp4Parser::token_type - Dhcp4Parser::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, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 447, 448, 449 - }; - return static_cast<token_type> (yytoken_number_[type]); - } - // Implementation of make_symbol for each symbol type. - Dhcp4Parser::symbol_type - Dhcp4Parser::make_END (const location_type& l) - { - return symbol_type (token::TOKEN_END, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_COMMA (const location_type& l) - { - return symbol_type (token::TOKEN_COMMA, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_COLON (const location_type& l) - { - return symbol_type (token::TOKEN_COLON, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_LSQUARE_BRACKET (const location_type& l) - { - return symbol_type (token::TOKEN_LSQUARE_BRACKET, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_RSQUARE_BRACKET (const location_type& l) - { - return symbol_type (token::TOKEN_RSQUARE_BRACKET, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_LCURLY_BRACKET (const location_type& l) - { - return symbol_type (token::TOKEN_LCURLY_BRACKET, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_RCURLY_BRACKET (const location_type& l) - { - return symbol_type (token::TOKEN_RCURLY_BRACKET, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_NULL_TYPE (const location_type& l) - { - return symbol_type (token::TOKEN_NULL_TYPE, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_DHCP4 (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP4, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_CONFIG_CONTROL (const location_type& l) - { - return symbol_type (token::TOKEN_CONFIG_CONTROL, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_CONFIG_DATABASES (const location_type& l) - { - return symbol_type (token::TOKEN_CONFIG_DATABASES, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_CONFIG_FETCH_WAIT_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_CONFIG_FETCH_WAIT_TIME, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_INTERFACES_CONFIG (const location_type& l) - { - return symbol_type (token::TOKEN_INTERFACES_CONFIG, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_INTERFACES (const location_type& l) - { - return symbol_type (token::TOKEN_INTERFACES, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_DHCP_SOCKET_TYPE (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP_SOCKET_TYPE, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_RAW (const location_type& l) - { - return symbol_type (token::TOKEN_RAW, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_UDP (const location_type& l) - { - return symbol_type (token::TOKEN_UDP, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_OUTBOUND_INTERFACE (const location_type& l) - { - return symbol_type (token::TOKEN_OUTBOUND_INTERFACE, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_SAME_AS_INBOUND (const location_type& l) - { - return symbol_type (token::TOKEN_SAME_AS_INBOUND, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_USE_ROUTING (const location_type& l) - { - return symbol_type (token::TOKEN_USE_ROUTING, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_RE_DETECT (const location_type& l) - { - return symbol_type (token::TOKEN_RE_DETECT, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_SANITY_CHECKS (const location_type& l) - { - return symbol_type (token::TOKEN_SANITY_CHECKS, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_LEASE_CHECKS (const location_type& l) - { - return symbol_type (token::TOKEN_LEASE_CHECKS, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_ECHO_CLIENT_ID (const location_type& l) - { - return symbol_type (token::TOKEN_ECHO_CLIENT_ID, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_MATCH_CLIENT_ID (const location_type& l) - { - return symbol_type (token::TOKEN_MATCH_CLIENT_ID, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_AUTHORITATIVE (const location_type& l) - { - return symbol_type (token::TOKEN_AUTHORITATIVE, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_NEXT_SERVER (const location_type& l) - { - return symbol_type (token::TOKEN_NEXT_SERVER, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_SERVER_HOSTNAME (const location_type& l) - { - return symbol_type (token::TOKEN_SERVER_HOSTNAME, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_BOOT_FILE_NAME (const location_type& l) - { - return symbol_type (token::TOKEN_BOOT_FILE_NAME, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_LEASE_DATABASE (const location_type& l) - { - return symbol_type (token::TOKEN_LEASE_DATABASE, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_HOSTS_DATABASE (const location_type& l) - { - return symbol_type (token::TOKEN_HOSTS_DATABASE, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_HOSTS_DATABASES (const location_type& l) - { - return symbol_type (token::TOKEN_HOSTS_DATABASES, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_TYPE (const location_type& l) - { - return symbol_type (token::TOKEN_TYPE, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_MEMFILE (const location_type& l) - { - return symbol_type (token::TOKEN_MEMFILE, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_MYSQL (const location_type& l) - { - return symbol_type (token::TOKEN_MYSQL, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_POSTGRESQL (const location_type& l) - { - return symbol_type (token::TOKEN_POSTGRESQL, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_CQL (const location_type& l) - { - return symbol_type (token::TOKEN_CQL, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_USER (const location_type& l) - { - return symbol_type (token::TOKEN_USER, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_PASSWORD (const location_type& l) - { - return symbol_type (token::TOKEN_PASSWORD, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_HOST (const location_type& l) - { - return symbol_type (token::TOKEN_HOST, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_PORT (const location_type& l) - { - return symbol_type (token::TOKEN_PORT, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_PERSIST (const location_type& l) - { - return symbol_type (token::TOKEN_PERSIST, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_LFC_INTERVAL (const location_type& l) - { - return symbol_type (token::TOKEN_LFC_INTERVAL, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_READONLY (const location_type& l) - { - return symbol_type (token::TOKEN_READONLY, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_CONNECT_TIMEOUT (const location_type& l) - { - return symbol_type (token::TOKEN_CONNECT_TIMEOUT, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_CONTACT_POINTS (const location_type& l) - { - return symbol_type (token::TOKEN_CONTACT_POINTS, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_KEYSPACE (const location_type& l) - { - return symbol_type (token::TOKEN_KEYSPACE, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_CONSISTENCY (const location_type& l) - { - return symbol_type (token::TOKEN_CONSISTENCY, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_SERIAL_CONSISTENCY (const location_type& l) - { - return symbol_type (token::TOKEN_SERIAL_CONSISTENCY, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_MAX_RECONNECT_TRIES (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_RECONNECT_TRIES, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_RECONNECT_WAIT_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_RECONNECT_WAIT_TIME, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_REQUEST_TIMEOUT (const location_type& l) - { - return symbol_type (token::TOKEN_REQUEST_TIMEOUT, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_TCP_KEEPALIVE (const location_type& l) - { - return symbol_type (token::TOKEN_TCP_KEEPALIVE, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_TCP_NODELAY (const location_type& l) - { - return symbol_type (token::TOKEN_TCP_NODELAY, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_MAX_ROW_ERRORS (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_ROW_ERRORS, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_VALID_LIFETIME (const location_type& l) - { - return symbol_type (token::TOKEN_VALID_LIFETIME, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_MIN_VALID_LIFETIME (const location_type& l) - { - return symbol_type (token::TOKEN_MIN_VALID_LIFETIME, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_MAX_VALID_LIFETIME (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_VALID_LIFETIME, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_RENEW_TIMER (const location_type& l) - { - return symbol_type (token::TOKEN_RENEW_TIMER, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_REBIND_TIMER (const location_type& l) - { - return symbol_type (token::TOKEN_REBIND_TIMER, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_CALCULATE_TEE_TIMES (const location_type& l) - { - return symbol_type (token::TOKEN_CALCULATE_TEE_TIMES, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_T1_PERCENT (const location_type& l) - { - return symbol_type (token::TOKEN_T1_PERCENT, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_T2_PERCENT (const location_type& l) - { - return symbol_type (token::TOKEN_T2_PERCENT, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_DECLINE_PROBATION_PERIOD (const location_type& l) - { - return symbol_type (token::TOKEN_DECLINE_PROBATION_PERIOD, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_SERVER_TAG (const location_type& l) - { - return symbol_type (token::TOKEN_SERVER_TAG, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_STATISTIC_DEFAULT_SAMPLE_COUNT (const location_type& l) - { - return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_STATISTIC_DEFAULT_SAMPLE_AGE (const location_type& l) - { - return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_DDNS_SEND_UPDATES (const location_type& l) - { - return symbol_type (token::TOKEN_DDNS_SEND_UPDATES, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_DDNS_OVERRIDE_NO_UPDATE (const location_type& l) - { - return symbol_type (token::TOKEN_DDNS_OVERRIDE_NO_UPDATE, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_DDNS_OVERRIDE_CLIENT_UPDATE (const location_type& l) - { - return symbol_type (token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_DDNS_REPLACE_CLIENT_NAME (const location_type& l) - { - return symbol_type (token::TOKEN_DDNS_REPLACE_CLIENT_NAME, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_DDNS_GENERATED_PREFIX (const location_type& l) - { - return symbol_type (token::TOKEN_DDNS_GENERATED_PREFIX, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_DDNS_QUALIFYING_SUFFIX (const location_type& l) - { - return symbol_type (token::TOKEN_DDNS_QUALIFYING_SUFFIX, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_STORE_EXTENDED_INFO (const location_type& l) - { - return symbol_type (token::TOKEN_STORE_EXTENDED_INFO, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_SUBNET4 (const location_type& l) - { - return symbol_type (token::TOKEN_SUBNET4, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_SUBNET_4O6_INTERFACE (const location_type& l) - { - return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_SUBNET_4O6_INTERFACE_ID (const location_type& l) - { - return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE_ID, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_SUBNET_4O6_SUBNET (const location_type& l) - { - return symbol_type (token::TOKEN_SUBNET_4O6_SUBNET, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_OPTION_DEF (const location_type& l) - { - return symbol_type (token::TOKEN_OPTION_DEF, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_OPTION_DATA (const location_type& l) - { - return symbol_type (token::TOKEN_OPTION_DATA, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_NAME (const location_type& l) - { - return symbol_type (token::TOKEN_NAME, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_DATA (const location_type& l) - { - return symbol_type (token::TOKEN_DATA, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_CODE (const location_type& l) - { - return symbol_type (token::TOKEN_CODE, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_SPACE (const location_type& l) - { - return symbol_type (token::TOKEN_SPACE, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_CSV_FORMAT (const location_type& l) - { - return symbol_type (token::TOKEN_CSV_FORMAT, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_ALWAYS_SEND (const location_type& l) - { - return symbol_type (token::TOKEN_ALWAYS_SEND, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_RECORD_TYPES (const location_type& l) - { - return symbol_type (token::TOKEN_RECORD_TYPES, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_ENCAPSULATE (const location_type& l) - { - return symbol_type (token::TOKEN_ENCAPSULATE, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_ARRAY (const location_type& l) - { - return symbol_type (token::TOKEN_ARRAY, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_SHARED_NETWORKS (const location_type& l) - { - return symbol_type (token::TOKEN_SHARED_NETWORKS, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_POOLS (const location_type& l) - { - return symbol_type (token::TOKEN_POOLS, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_POOL (const location_type& l) - { - return symbol_type (token::TOKEN_POOL, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_USER_CONTEXT (const location_type& l) - { - return symbol_type (token::TOKEN_USER_CONTEXT, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_COMMENT (const location_type& l) - { - return symbol_type (token::TOKEN_COMMENT, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_SUBNET (const location_type& l) - { - return symbol_type (token::TOKEN_SUBNET, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_INTERFACE (const location_type& l) - { - return symbol_type (token::TOKEN_INTERFACE, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_ID (const location_type& l) - { - return symbol_type (token::TOKEN_ID, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_RESERVATION_MODE (const location_type& l) - { - return symbol_type (token::TOKEN_RESERVATION_MODE, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_DISABLED (const location_type& l) - { - return symbol_type (token::TOKEN_DISABLED, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_OUT_OF_POOL (const location_type& l) - { - return symbol_type (token::TOKEN_OUT_OF_POOL, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_GLOBAL (const location_type& l) - { - return symbol_type (token::TOKEN_GLOBAL, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_ALL (const location_type& l) - { - return symbol_type (token::TOKEN_ALL, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_HOST_RESERVATION_IDENTIFIERS (const location_type& l) - { - return symbol_type (token::TOKEN_HOST_RESERVATION_IDENTIFIERS, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_CLIENT_CLASSES (const location_type& l) - { - return symbol_type (token::TOKEN_CLIENT_CLASSES, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_REQUIRE_CLIENT_CLASSES (const location_type& l) - { - return symbol_type (token::TOKEN_REQUIRE_CLIENT_CLASSES, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_TEST (const location_type& l) - { - return symbol_type (token::TOKEN_TEST, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_ONLY_IF_REQUIRED (const location_type& l) - { - return symbol_type (token::TOKEN_ONLY_IF_REQUIRED, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_CLIENT_CLASS (const location_type& l) - { - return symbol_type (token::TOKEN_CLIENT_CLASS, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_RESERVATIONS (const location_type& l) - { - return symbol_type (token::TOKEN_RESERVATIONS, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_DUID (const location_type& l) - { - return symbol_type (token::TOKEN_DUID, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_HW_ADDRESS (const location_type& l) - { - return symbol_type (token::TOKEN_HW_ADDRESS, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_CIRCUIT_ID (const location_type& l) - { - return symbol_type (token::TOKEN_CIRCUIT_ID, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_CLIENT_ID (const location_type& l) - { - return symbol_type (token::TOKEN_CLIENT_ID, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_HOSTNAME (const location_type& l) - { - return symbol_type (token::TOKEN_HOSTNAME, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_FLEX_ID (const location_type& l) - { - return symbol_type (token::TOKEN_FLEX_ID, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_RELAY (const location_type& l) - { - return symbol_type (token::TOKEN_RELAY, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_IP_ADDRESS (const location_type& l) - { - return symbol_type (token::TOKEN_IP_ADDRESS, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_IP_ADDRESSES (const location_type& l) - { - return symbol_type (token::TOKEN_IP_ADDRESSES, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_HOOKS_LIBRARIES (const location_type& l) - { - return symbol_type (token::TOKEN_HOOKS_LIBRARIES, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_LIBRARY (const location_type& l) - { - return symbol_type (token::TOKEN_LIBRARY, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_PARAMETERS (const location_type& l) - { - return symbol_type (token::TOKEN_PARAMETERS, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_EXPIRED_LEASES_PROCESSING (const location_type& l) - { - return symbol_type (token::TOKEN_EXPIRED_LEASES_PROCESSING, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_RECLAIM_TIMER_WAIT_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_RECLAIM_TIMER_WAIT_TIME, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_HOLD_RECLAIMED_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_HOLD_RECLAIMED_TIME, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_MAX_RECLAIM_LEASES (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_RECLAIM_LEASES, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_MAX_RECLAIM_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_RECLAIM_TIME, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_UNWARNED_RECLAIM_CYCLES (const location_type& l) - { - return symbol_type (token::TOKEN_UNWARNED_RECLAIM_CYCLES, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_DHCP4O6_PORT (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP4O6_PORT, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_DHCP_MULTI_THREADING (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP_MULTI_THREADING, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_ENABLE_MULTI_THREADING (const location_type& l) - { - return symbol_type (token::TOKEN_ENABLE_MULTI_THREADING, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_THREAD_POOL_SIZE (const location_type& l) - { - return symbol_type (token::TOKEN_THREAD_POOL_SIZE, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_PACKET_QUEUE_SIZE (const location_type& l) - { - return symbol_type (token::TOKEN_PACKET_QUEUE_SIZE, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_CONTROL_SOCKET (const location_type& l) - { - return symbol_type (token::TOKEN_CONTROL_SOCKET, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_SOCKET_TYPE (const location_type& l) - { - return symbol_type (token::TOKEN_SOCKET_TYPE, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_SOCKET_NAME (const location_type& l) - { - return symbol_type (token::TOKEN_SOCKET_NAME, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_DHCP_QUEUE_CONTROL (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP_QUEUE_CONTROL, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_ENABLE_QUEUE (const location_type& l) - { - return symbol_type (token::TOKEN_ENABLE_QUEUE, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_QUEUE_TYPE (const location_type& l) - { - return symbol_type (token::TOKEN_QUEUE_TYPE, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_CAPACITY (const location_type& l) - { - return symbol_type (token::TOKEN_CAPACITY, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_DHCP_DDNS (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP_DDNS, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_ENABLE_UPDATES (const location_type& l) - { - return symbol_type (token::TOKEN_ENABLE_UPDATES, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_QUALIFYING_SUFFIX (const location_type& l) - { - return symbol_type (token::TOKEN_QUALIFYING_SUFFIX, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_SERVER_IP (const location_type& l) - { - return symbol_type (token::TOKEN_SERVER_IP, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_SERVER_PORT (const location_type& l) - { - return symbol_type (token::TOKEN_SERVER_PORT, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_SENDER_IP (const location_type& l) - { - return symbol_type (token::TOKEN_SENDER_IP, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_SENDER_PORT (const location_type& l) - { - return symbol_type (token::TOKEN_SENDER_PORT, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_MAX_QUEUE_SIZE (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_QUEUE_SIZE, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_NCR_PROTOCOL (const location_type& l) - { - return symbol_type (token::TOKEN_NCR_PROTOCOL, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_NCR_FORMAT (const location_type& l) - { - return symbol_type (token::TOKEN_NCR_FORMAT, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_OVERRIDE_NO_UPDATE (const location_type& l) - { - return symbol_type (token::TOKEN_OVERRIDE_NO_UPDATE, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_OVERRIDE_CLIENT_UPDATE (const location_type& l) - { - return symbol_type (token::TOKEN_OVERRIDE_CLIENT_UPDATE, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_REPLACE_CLIENT_NAME (const location_type& l) - { - return symbol_type (token::TOKEN_REPLACE_CLIENT_NAME, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_GENERATED_PREFIX (const location_type& l) - { - return symbol_type (token::TOKEN_GENERATED_PREFIX, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_TCP (const location_type& l) - { - return symbol_type (token::TOKEN_TCP, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_JSON (const location_type& l) - { - return symbol_type (token::TOKEN_JSON, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_WHEN_PRESENT (const location_type& l) - { - return symbol_type (token::TOKEN_WHEN_PRESENT, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_NEVER (const location_type& l) - { - return symbol_type (token::TOKEN_NEVER, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_ALWAYS (const location_type& l) - { - return symbol_type (token::TOKEN_ALWAYS, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_WHEN_NOT_PRESENT (const location_type& l) - { - return symbol_type (token::TOKEN_WHEN_NOT_PRESENT, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_HOSTNAME_CHAR_SET (const location_type& l) - { - return symbol_type (token::TOKEN_HOSTNAME_CHAR_SET, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_HOSTNAME_CHAR_REPLACEMENT (const location_type& l) - { - return symbol_type (token::TOKEN_HOSTNAME_CHAR_REPLACEMENT, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_LOGGING (const location_type& l) - { - return symbol_type (token::TOKEN_LOGGING, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_LOGGERS (const location_type& l) - { - return symbol_type (token::TOKEN_LOGGERS, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_OUTPUT_OPTIONS (const location_type& l) - { - return symbol_type (token::TOKEN_OUTPUT_OPTIONS, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_OUTPUT (const location_type& l) - { - return symbol_type (token::TOKEN_OUTPUT, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_DEBUGLEVEL (const location_type& l) - { - return symbol_type (token::TOKEN_DEBUGLEVEL, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_SEVERITY (const location_type& l) - { - return symbol_type (token::TOKEN_SEVERITY, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_FLUSH (const location_type& l) - { - return symbol_type (token::TOKEN_FLUSH, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_MAXSIZE (const location_type& l) - { - return symbol_type (token::TOKEN_MAXSIZE, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_MAXVER (const location_type& l) - { - return symbol_type (token::TOKEN_MAXVER, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_PATTERN (const location_type& l) - { - return symbol_type (token::TOKEN_PATTERN, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_DHCP6 (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP6, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_DHCPDDNS (const location_type& l) - { - return symbol_type (token::TOKEN_DHCPDDNS, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_CONTROL_AGENT (const location_type& l) - { - return symbol_type (token::TOKEN_CONTROL_AGENT, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_TOPLEVEL_JSON (const location_type& l) - { - return symbol_type (token::TOKEN_TOPLEVEL_JSON, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_TOPLEVEL_DHCP4 (const location_type& l) - { - return symbol_type (token::TOKEN_TOPLEVEL_DHCP4, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_SUB_DHCP4 (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_DHCP4, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_SUB_INTERFACES4 (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_INTERFACES4, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_SUB_SUBNET4 (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_SUBNET4, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_SUB_POOL4 (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_POOL4, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_SUB_RESERVATION (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_RESERVATION, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_SUB_OPTION_DEFS (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DEFS, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_SUB_OPTION_DEF (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DEF, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_SUB_OPTION_DATA (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DATA, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_SUB_HOOKS_LIBRARY (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_HOOKS_LIBRARY, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_SUB_DHCP_DDNS (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_DHCP_DDNS, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_SUB_LOGGING (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_LOGGING, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_SUB_CONFIG_CONTROL (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_CONFIG_CONTROL, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_STRING (const std::string& v, const location_type& l) - { - return symbol_type (token::TOKEN_STRING, v, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_INTEGER (const int64_t& v, const location_type& l) - { - return symbol_type (token::TOKEN_INTEGER, v, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_FLOAT (const double& v, const location_type& l) - { - return symbol_type (token::TOKEN_FLOAT, v, l); - } - - Dhcp4Parser::symbol_type - Dhcp4Parser::make_BOOLEAN (const bool& v, const location_type& l) - { - return symbol_type (token::TOKEN_BOOLEAN, v, l); - } - - -#line 14 "dhcp4_parser.yy" // lalr1.cc:377 +#line 14 "dhcp4_parser.yy" } } // isc::dhcp -#line 3200 "dhcp4_parser.h" // lalr1.cc:377 +#line 4472 "dhcp4_parser.h" + |