2
0
mirror of https://gitlab.isc.org/isc-projects/kea synced 2025-08-31 14:05:33 +00:00

[5184] Generate lexer and parser files

This change is a separate commit to reduce noise.
This commit is contained in:
Sebastian Schrader
2018-10-19 16:55:37 +02:00
committed by Tomek Mrugalski
parent 09987b3f2d
commit 1ac65d772f
11 changed files with 3421 additions and 3302 deletions

View File

@@ -1,8 +1,8 @@
// A Bison parser, made by GNU Bison 3.0.4.
// A Bison parser, made by GNU Bison 3.1.
// Skeleton interface for Bison LALR(1) parsers in C++
// Copyright (C) 2002-2015 Free Software Foundation, Inc.
// Copyright (C) 2002-2015, 2018 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
@@ -40,7 +40,7 @@
#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
#line 17 "dhcp4_parser.yy" // lalr1.cc:380
#include <string>
#include <cc/data.h>
@@ -52,7 +52,7 @@ using namespace isc::dhcp;
using namespace isc::data;
using namespace std;
#line 56 "dhcp4_parser.h" // lalr1.cc:377
#line 56 "dhcp4_parser.h" // lalr1.cc:380
# include <cassert>
# include <cstdlib> // std::abort
@@ -103,7 +103,7 @@ 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") \
@@ -122,6 +122,13 @@ using namespace std;
# define YY_INITIAL_VALUE(Value) /* Nothing. */
#endif
# ifndef YY_NULLPTR
# if defined __cplusplus && 201103L <= __cplusplus
# define YY_NULLPTR nullptr
# else
# define YY_NULLPTR 0
# endif
# endif
/* Debug traces. */
#ifndef PARSER4_DEBUG
# if defined YYDEBUG
@@ -135,9 +142,9 @@ using namespace std;
# endif /* ! defined YYDEBUG */
#endif /* ! defined PARSER4_DEBUG */
#line 14 "dhcp4_parser.yy" // lalr1.cc:377
#line 14 "dhcp4_parser.yy" // lalr1.cc:380
namespace isc { namespace dhcp {
#line 141 "dhcp4_parser.h" // lalr1.cc:377
#line 148 "dhcp4_parser.h" // lalr1.cc:380
@@ -154,7 +161,8 @@ namespace isc { namespace dhcp {
/// Empty construction.
variant ()
: yytypeid_ (YY_NULLPTR)
: yybuffer_ ()
, yytypeid_ (YY_NULLPTR)
{}
/// Construct and fill.
@@ -180,7 +188,7 @@ namespace isc { namespace dhcp {
YYASSERT (!yytypeid_);
YYASSERT (sizeof (T) <= S);
yytypeid_ = & typeid (T);
return *new (yyas_<T> ()) T;
return *new (yyas_<T> ()) T ();
}
/// Instantiate a \a T in here from \a t.
@@ -199,6 +207,7 @@ namespace isc { namespace dhcp {
T&
as ()
{
YYASSERT (yytypeid_);
YYASSERT (*yytypeid_ == typeid (T));
YYASSERT (sizeof (T) <= S);
return *yyas_<T> ();
@@ -209,6 +218,7 @@ namespace isc { namespace dhcp {
const T&
as () const
{
YYASSERT (yytypeid_);
YYASSERT (*yytypeid_ == typeid (T));
YYASSERT (sizeof (T) <= S);
return *yyas_<T> ();
@@ -371,148 +381,149 @@ namespace isc { namespace dhcp {
TOKEN_LEASE_CHECKS = 278,
TOKEN_ECHO_CLIENT_ID = 279,
TOKEN_MATCH_CLIENT_ID = 280,
TOKEN_NEXT_SERVER = 281,
TOKEN_SERVER_HOSTNAME = 282,
TOKEN_BOOT_FILE_NAME = 283,
TOKEN_LEASE_DATABASE = 284,
TOKEN_HOSTS_DATABASE = 285,
TOKEN_HOSTS_DATABASES = 286,
TOKEN_TYPE = 287,
TOKEN_MEMFILE = 288,
TOKEN_MYSQL = 289,
TOKEN_POSTGRESQL = 290,
TOKEN_CQL = 291,
TOKEN_USER = 292,
TOKEN_PASSWORD = 293,
TOKEN_HOST = 294,
TOKEN_PORT = 295,
TOKEN_PERSIST = 296,
TOKEN_LFC_INTERVAL = 297,
TOKEN_READONLY = 298,
TOKEN_CONNECT_TIMEOUT = 299,
TOKEN_CONTACT_POINTS = 300,
TOKEN_KEYSPACE = 301,
TOKEN_MAX_RECONNECT_TRIES = 302,
TOKEN_RECONNECT_WAIT_TIME = 303,
TOKEN_REQUEST_TIMEOUT = 304,
TOKEN_TCP_KEEPALIVE = 305,
TOKEN_TCP_NODELAY = 306,
TOKEN_VALID_LIFETIME = 307,
TOKEN_RENEW_TIMER = 308,
TOKEN_REBIND_TIMER = 309,
TOKEN_DECLINE_PROBATION_PERIOD = 310,
TOKEN_SERVER_TAG = 311,
TOKEN_SUBNET4 = 312,
TOKEN_SUBNET_4O6_INTERFACE = 313,
TOKEN_SUBNET_4O6_INTERFACE_ID = 314,
TOKEN_SUBNET_4O6_SUBNET = 315,
TOKEN_OPTION_DEF = 316,
TOKEN_OPTION_DATA = 317,
TOKEN_NAME = 318,
TOKEN_DATA = 319,
TOKEN_CODE = 320,
TOKEN_SPACE = 321,
TOKEN_CSV_FORMAT = 322,
TOKEN_ALWAYS_SEND = 323,
TOKEN_RECORD_TYPES = 324,
TOKEN_ENCAPSULATE = 325,
TOKEN_ARRAY = 326,
TOKEN_SHARED_NETWORKS = 327,
TOKEN_POOLS = 328,
TOKEN_POOL = 329,
TOKEN_USER_CONTEXT = 330,
TOKEN_COMMENT = 331,
TOKEN_SUBNET = 332,
TOKEN_INTERFACE = 333,
TOKEN_ID = 334,
TOKEN_RESERVATION_MODE = 335,
TOKEN_DISABLED = 336,
TOKEN_OUT_OF_POOL = 337,
TOKEN_GLOBAL = 338,
TOKEN_ALL = 339,
TOKEN_HOST_RESERVATION_IDENTIFIERS = 340,
TOKEN_CLIENT_CLASSES = 341,
TOKEN_REQUIRE_CLIENT_CLASSES = 342,
TOKEN_TEST = 343,
TOKEN_ONLY_IF_REQUIRED = 344,
TOKEN_CLIENT_CLASS = 345,
TOKEN_RESERVATIONS = 346,
TOKEN_DUID = 347,
TOKEN_HW_ADDRESS = 348,
TOKEN_CIRCUIT_ID = 349,
TOKEN_CLIENT_ID = 350,
TOKEN_HOSTNAME = 351,
TOKEN_FLEX_ID = 352,
TOKEN_RELAY = 353,
TOKEN_IP_ADDRESS = 354,
TOKEN_IP_ADDRESSES = 355,
TOKEN_HOOKS_LIBRARIES = 356,
TOKEN_LIBRARY = 357,
TOKEN_PARAMETERS = 358,
TOKEN_EXPIRED_LEASES_PROCESSING = 359,
TOKEN_RECLAIM_TIMER_WAIT_TIME = 360,
TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 361,
TOKEN_HOLD_RECLAIMED_TIME = 362,
TOKEN_MAX_RECLAIM_LEASES = 363,
TOKEN_MAX_RECLAIM_TIME = 364,
TOKEN_UNWARNED_RECLAIM_CYCLES = 365,
TOKEN_DHCP4O6_PORT = 366,
TOKEN_CONTROL_SOCKET = 367,
TOKEN_SOCKET_TYPE = 368,
TOKEN_SOCKET_NAME = 369,
TOKEN_DHCP_DDNS = 370,
TOKEN_ENABLE_UPDATES = 371,
TOKEN_QUALIFYING_SUFFIX = 372,
TOKEN_SERVER_IP = 373,
TOKEN_SERVER_PORT = 374,
TOKEN_SENDER_IP = 375,
TOKEN_SENDER_PORT = 376,
TOKEN_MAX_QUEUE_SIZE = 377,
TOKEN_NCR_PROTOCOL = 378,
TOKEN_NCR_FORMAT = 379,
TOKEN_ALWAYS_INCLUDE_FQDN = 380,
TOKEN_OVERRIDE_NO_UPDATE = 381,
TOKEN_OVERRIDE_CLIENT_UPDATE = 382,
TOKEN_REPLACE_CLIENT_NAME = 383,
TOKEN_GENERATED_PREFIX = 384,
TOKEN_TCP = 385,
TOKEN_JSON = 386,
TOKEN_WHEN_PRESENT = 387,
TOKEN_NEVER = 388,
TOKEN_ALWAYS = 389,
TOKEN_WHEN_NOT_PRESENT = 390,
TOKEN_HOSTNAME_CHAR_SET = 391,
TOKEN_HOSTNAME_CHAR_REPLACEMENT = 392,
TOKEN_LOGGING = 393,
TOKEN_LOGGERS = 394,
TOKEN_OUTPUT_OPTIONS = 395,
TOKEN_OUTPUT = 396,
TOKEN_DEBUGLEVEL = 397,
TOKEN_SEVERITY = 398,
TOKEN_FLUSH = 399,
TOKEN_MAXSIZE = 400,
TOKEN_MAXVER = 401,
TOKEN_DHCP6 = 402,
TOKEN_DHCPDDNS = 403,
TOKEN_CONTROL_AGENT = 404,
TOKEN_TOPLEVEL_JSON = 405,
TOKEN_TOPLEVEL_DHCP4 = 406,
TOKEN_SUB_DHCP4 = 407,
TOKEN_SUB_INTERFACES4 = 408,
TOKEN_SUB_SUBNET4 = 409,
TOKEN_SUB_POOL4 = 410,
TOKEN_SUB_RESERVATION = 411,
TOKEN_SUB_OPTION_DEFS = 412,
TOKEN_SUB_OPTION_DEF = 413,
TOKEN_SUB_OPTION_DATA = 414,
TOKEN_SUB_HOOKS_LIBRARY = 415,
TOKEN_SUB_DHCP_DDNS = 416,
TOKEN_SUB_LOGGING = 417,
TOKEN_SUB_CONFIG_CONTROL = 418,
TOKEN_STRING = 419,
TOKEN_INTEGER = 420,
TOKEN_FLOAT = 421,
TOKEN_BOOLEAN = 422
TOKEN_AUTHORITATIVE = 281,
TOKEN_NEXT_SERVER = 282,
TOKEN_SERVER_HOSTNAME = 283,
TOKEN_BOOT_FILE_NAME = 284,
TOKEN_LEASE_DATABASE = 285,
TOKEN_HOSTS_DATABASE = 286,
TOKEN_HOSTS_DATABASES = 287,
TOKEN_TYPE = 288,
TOKEN_MEMFILE = 289,
TOKEN_MYSQL = 290,
TOKEN_POSTGRESQL = 291,
TOKEN_CQL = 292,
TOKEN_USER = 293,
TOKEN_PASSWORD = 294,
TOKEN_HOST = 295,
TOKEN_PORT = 296,
TOKEN_PERSIST = 297,
TOKEN_LFC_INTERVAL = 298,
TOKEN_READONLY = 299,
TOKEN_CONNECT_TIMEOUT = 300,
TOKEN_CONTACT_POINTS = 301,
TOKEN_KEYSPACE = 302,
TOKEN_MAX_RECONNECT_TRIES = 303,
TOKEN_RECONNECT_WAIT_TIME = 304,
TOKEN_REQUEST_TIMEOUT = 305,
TOKEN_TCP_KEEPALIVE = 306,
TOKEN_TCP_NODELAY = 307,
TOKEN_VALID_LIFETIME = 308,
TOKEN_RENEW_TIMER = 309,
TOKEN_REBIND_TIMER = 310,
TOKEN_DECLINE_PROBATION_PERIOD = 311,
TOKEN_SERVER_TAG = 312,
TOKEN_SUBNET4 = 313,
TOKEN_SUBNET_4O6_INTERFACE = 314,
TOKEN_SUBNET_4O6_INTERFACE_ID = 315,
TOKEN_SUBNET_4O6_SUBNET = 316,
TOKEN_OPTION_DEF = 317,
TOKEN_OPTION_DATA = 318,
TOKEN_NAME = 319,
TOKEN_DATA = 320,
TOKEN_CODE = 321,
TOKEN_SPACE = 322,
TOKEN_CSV_FORMAT = 323,
TOKEN_ALWAYS_SEND = 324,
TOKEN_RECORD_TYPES = 325,
TOKEN_ENCAPSULATE = 326,
TOKEN_ARRAY = 327,
TOKEN_SHARED_NETWORKS = 328,
TOKEN_POOLS = 329,
TOKEN_POOL = 330,
TOKEN_USER_CONTEXT = 331,
TOKEN_COMMENT = 332,
TOKEN_SUBNET = 333,
TOKEN_INTERFACE = 334,
TOKEN_ID = 335,
TOKEN_RESERVATION_MODE = 336,
TOKEN_DISABLED = 337,
TOKEN_OUT_OF_POOL = 338,
TOKEN_GLOBAL = 339,
TOKEN_ALL = 340,
TOKEN_HOST_RESERVATION_IDENTIFIERS = 341,
TOKEN_CLIENT_CLASSES = 342,
TOKEN_REQUIRE_CLIENT_CLASSES = 343,
TOKEN_TEST = 344,
TOKEN_ONLY_IF_REQUIRED = 345,
TOKEN_CLIENT_CLASS = 346,
TOKEN_RESERVATIONS = 347,
TOKEN_DUID = 348,
TOKEN_HW_ADDRESS = 349,
TOKEN_CIRCUIT_ID = 350,
TOKEN_CLIENT_ID = 351,
TOKEN_HOSTNAME = 352,
TOKEN_FLEX_ID = 353,
TOKEN_RELAY = 354,
TOKEN_IP_ADDRESS = 355,
TOKEN_IP_ADDRESSES = 356,
TOKEN_HOOKS_LIBRARIES = 357,
TOKEN_LIBRARY = 358,
TOKEN_PARAMETERS = 359,
TOKEN_EXPIRED_LEASES_PROCESSING = 360,
TOKEN_RECLAIM_TIMER_WAIT_TIME = 361,
TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 362,
TOKEN_HOLD_RECLAIMED_TIME = 363,
TOKEN_MAX_RECLAIM_LEASES = 364,
TOKEN_MAX_RECLAIM_TIME = 365,
TOKEN_UNWARNED_RECLAIM_CYCLES = 366,
TOKEN_DHCP4O6_PORT = 367,
TOKEN_CONTROL_SOCKET = 368,
TOKEN_SOCKET_TYPE = 369,
TOKEN_SOCKET_NAME = 370,
TOKEN_DHCP_DDNS = 371,
TOKEN_ENABLE_UPDATES = 372,
TOKEN_QUALIFYING_SUFFIX = 373,
TOKEN_SERVER_IP = 374,
TOKEN_SERVER_PORT = 375,
TOKEN_SENDER_IP = 376,
TOKEN_SENDER_PORT = 377,
TOKEN_MAX_QUEUE_SIZE = 378,
TOKEN_NCR_PROTOCOL = 379,
TOKEN_NCR_FORMAT = 380,
TOKEN_ALWAYS_INCLUDE_FQDN = 381,
TOKEN_OVERRIDE_NO_UPDATE = 382,
TOKEN_OVERRIDE_CLIENT_UPDATE = 383,
TOKEN_REPLACE_CLIENT_NAME = 384,
TOKEN_GENERATED_PREFIX = 385,
TOKEN_TCP = 386,
TOKEN_JSON = 387,
TOKEN_WHEN_PRESENT = 388,
TOKEN_NEVER = 389,
TOKEN_ALWAYS = 390,
TOKEN_WHEN_NOT_PRESENT = 391,
TOKEN_HOSTNAME_CHAR_SET = 392,
TOKEN_HOSTNAME_CHAR_REPLACEMENT = 393,
TOKEN_LOGGING = 394,
TOKEN_LOGGERS = 395,
TOKEN_OUTPUT_OPTIONS = 396,
TOKEN_OUTPUT = 397,
TOKEN_DEBUGLEVEL = 398,
TOKEN_SEVERITY = 399,
TOKEN_FLUSH = 400,
TOKEN_MAXSIZE = 401,
TOKEN_MAXVER = 402,
TOKEN_DHCP6 = 403,
TOKEN_DHCPDDNS = 404,
TOKEN_CONTROL_AGENT = 405,
TOKEN_TOPLEVEL_JSON = 406,
TOKEN_TOPLEVEL_DHCP4 = 407,
TOKEN_SUB_DHCP4 = 408,
TOKEN_SUB_INTERFACES4 = 409,
TOKEN_SUB_SUBNET4 = 410,
TOKEN_SUB_POOL4 = 411,
TOKEN_SUB_RESERVATION = 412,
TOKEN_SUB_OPTION_DEFS = 413,
TOKEN_SUB_OPTION_DEF = 414,
TOKEN_SUB_OPTION_DATA = 415,
TOKEN_SUB_HOOKS_LIBRARY = 416,
TOKEN_SUB_DHCP_DDNS = 417,
TOKEN_SUB_LOGGING = 418,
TOKEN_SUB_CONFIG_CONTROL = 419,
TOKEN_STRING = 420,
TOKEN_INTEGER = 421,
TOKEN_FLOAT = 422,
TOKEN_BOOLEAN = 423
};
};
@@ -550,15 +561,15 @@ namespace isc { namespace dhcp {
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 ElementPtr& v, const location_type& l);
basic_symbol (typename Base::kind_type t, const bool v, const location_type& l);
basic_symbol (typename Base::kind_type t, const bool& v, const location_type& l);
basic_symbol (typename Base::kind_type t, const double v, const location_type& l);
basic_symbol (typename Base::kind_type t, const double& v, const location_type& l);
basic_symbol (typename Base::kind_type t, const int64_t v, const location_type& l);
basic_symbol (typename Base::kind_type t, const int64_t& v, const location_type& l);
basic_symbol (typename Base::kind_type t, const std::string v, const location_type& l);
basic_symbol (typename Base::kind_type t, const std::string& v, const location_type& l);
/// Constructor for symbols with semantic value.
@@ -723,6 +734,10 @@ namespace isc { namespace dhcp {
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);
@@ -1349,7 +1364,7 @@ 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.
@@ -1358,32 +1373,32 @@ namespace isc { namespace dhcp {
// Tables.
// YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
// STATE-NUM.
static const short int yypact_[];
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_[];
static const unsigned short yydefact_[];
// YYPGOTO[NTERM-NUM].
static const short int yypgoto_[];
static const short yypgoto_[];
// YYDEFGOTO[NTERM-NUM].
static const short int yydefgoto_[];
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_[];
static const unsigned 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_[];
static const unsigned short yystos_[];
// YYR1[YYN] -- Symbol number of symbol that rule YYN derives.
static const unsigned short int yyr1_[];
static const unsigned short yyr1_[];
// YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.
static const unsigned char yyr2_[];
@@ -1397,7 +1412,7 @@ namespace isc { namespace dhcp {
static const char* const yytname_[];
#if PARSER4_DEBUG
// YYRLINE[YYN] -- Source line where rule number YYN was defined.
static const unsigned short int yyrline_[];
static const unsigned short yyrline_[];
/// Report on the debug stream that the rule \a r is going to be reduced.
virtual void yy_reduce_print_ (int r);
/// Print the state stack on the debug stream.
@@ -1462,6 +1477,8 @@ namespace isc { namespace dhcp {
typedef basic_symbol<by_state> super_type;
/// Construct an empty symbol.
stack_symbol_type ();
/// Copy construct (for efficiency).
stack_symbol_type (const 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.
@@ -1490,18 +1507,18 @@ namespace isc { namespace dhcp {
void yypush_ (const char* m, state_type s, symbol_type& sym);
/// Pop \a n symbols the three stacks.
void yypop_ (unsigned int n = 1);
void yypop_ (unsigned n = 1);
/// Constants.
enum
{
yyeof_ = 0,
yylast_ = 983, ///< Last index in yytable_.
yynnts_ = 372, ///< Number of nonterminal symbols.
yylast_ = 989, ///< Last index in yytable_.
yynnts_ = 373, ///< Number of nonterminal symbols.
yyfinal_ = 30, ///< Termination state number.
yyterror_ = 1,
yyerrcode_ = 256,
yyntokens_ = 168 ///< Number of tokens.
yyntokens_ = 169 ///< Number of tokens.
};
@@ -1560,14 +1577,14 @@ namespace isc { namespace dhcp {
135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
165, 166, 167
165, 166, 167, 168
};
const unsigned int user_token_number_max_ = 422;
const unsigned user_token_number_max_ = 423;
const token_number_type undef_token_ = 2;
if (static_cast<int>(t) <= yyeof_)
if (static_cast<int> (t) <= yyeof_)
return yyeof_;
else if (static_cast<unsigned int> (t) <= user_token_number_max_)
else if (static_cast<unsigned> (t) <= user_token_number_max_)
return translate_table[t];
else
return undef_token_;
@@ -1581,44 +1598,43 @@ namespace isc { namespace dhcp {
// basic_symbol.
template <typename Base>
inline
Dhcp4Parser::basic_symbol<Base>::basic_symbol ()
: value ()
, location ()
{}
template <typename Base>
inline
Dhcp4Parser::basic_symbol<Base>::basic_symbol (const basic_symbol& other)
: Base (other)
, value ()
, location (other.location)
{
switch (other.type_get ())
switch (other.type_get ())
{
case 184: // value
case 188: // map_value
case 228: // socket_type
case 231: // outbound_interface_value
case 253: // db_type
case 335: // hr_mode
case 482: // ncr_protocol_value
case 490: // replace_client_name_value
case 185: // value
case 189: // map_value
case 230: // socket_type
case 233: // outbound_interface_value
case 255: // db_type
case 337: // hr_mode
case 484: // ncr_protocol_value
case 492: // replace_client_name_value
value.copy< ElementPtr > (other.value);
break;
case 167: // "boolean"
case 168: // "boolean"
value.copy< bool > (other.value);
break;
case 166: // "floating point"
case 167: // "floating point"
value.copy< double > (other.value);
break;
case 165: // "integer"
case 166: // "integer"
value.copy< int64_t > (other.value);
break;
case 164: // "constant string"
case 165: // "constant string"
value.copy< std::string > (other.value);
break;
@@ -1628,41 +1644,39 @@ namespace isc { namespace dhcp {
}
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)
, value ()
, location (l)
{
(void) v;
switch (this->type_get ())
switch (this->type_get ())
{
case 184: // value
case 188: // map_value
case 228: // socket_type
case 231: // outbound_interface_value
case 253: // db_type
case 335: // hr_mode
case 482: // ncr_protocol_value
case 490: // replace_client_name_value
case 185: // value
case 189: // map_value
case 230: // socket_type
case 233: // outbound_interface_value
case 255: // db_type
case 337: // hr_mode
case 484: // ncr_protocol_value
case 492: // replace_client_name_value
value.copy< ElementPtr > (v);
break;
case 167: // "boolean"
case 168: // "boolean"
value.copy< bool > (v);
break;
case 166: // "floating point"
case 167: // "floating point"
value.copy< double > (v);
break;
case 165: // "integer"
case 166: // "integer"
value.copy< int64_t > (v);
break;
case 164: // "constant string"
case 165: // "constant string"
value.copy< std::string > (v);
break;
@@ -1677,40 +1691,39 @@ namespace isc { namespace dhcp {
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)
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)
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)
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)
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)
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)
@@ -1718,14 +1731,12 @@ namespace isc { namespace dhcp {
template <typename Base>
inline
Dhcp4Parser::basic_symbol<Base>::~basic_symbol ()
{
clear ();
}
template <typename Base>
inline
void
Dhcp4Parser::basic_symbol<Base>::clear ()
{
@@ -1740,32 +1751,32 @@ namespace isc { namespace dhcp {
}
// Type destructor.
switch (yytype)
switch (yytype)
{
case 184: // value
case 188: // map_value
case 228: // socket_type
case 231: // outbound_interface_value
case 253: // db_type
case 335: // hr_mode
case 482: // ncr_protocol_value
case 490: // replace_client_name_value
case 185: // value
case 189: // map_value
case 230: // socket_type
case 233: // outbound_interface_value
case 255: // db_type
case 337: // hr_mode
case 484: // ncr_protocol_value
case 492: // replace_client_name_value
value.template destroy< ElementPtr > ();
break;
case 167: // "boolean"
case 168: // "boolean"
value.template destroy< bool > ();
break;
case 166: // "floating point"
case 167: // "floating point"
value.template destroy< double > ();
break;
case 165: // "integer"
case 166: // "integer"
value.template destroy< int64_t > ();
break;
case 164: // "constant string"
case 165: // "constant string"
value.template destroy< std::string > ();
break;
@@ -1777,7 +1788,6 @@ namespace isc { namespace dhcp {
}
template <typename Base>
inline
bool
Dhcp4Parser::basic_symbol<Base>::empty () const
{
@@ -1785,37 +1795,36 @@ namespace isc { namespace dhcp {
}
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 184: // value
case 188: // map_value
case 228: // socket_type
case 231: // outbound_interface_value
case 253: // db_type
case 335: // hr_mode
case 482: // ncr_protocol_value
case 490: // replace_client_name_value
case 185: // value
case 189: // map_value
case 230: // socket_type
case 233: // outbound_interface_value
case 255: // db_type
case 337: // hr_mode
case 484: // ncr_protocol_value
case 492: // replace_client_name_value
value.move< ElementPtr > (s.value);
break;
case 167: // "boolean"
case 168: // "boolean"
value.move< bool > (s.value);
break;
case 166: // "floating point"
case 167: // "floating point"
value.move< double > (s.value);
break;
case 165: // "integer"
case 166: // "integer"
value.move< int64_t > (s.value);
break;
case 164: // "constant string"
case 165: // "constant string"
value.move< std::string > (s.value);
break;
@@ -1871,7 +1880,7 @@ namespace isc { namespace dhcp {
// YYTOKNUM[NUM] -- (External) token number corresponding to the
// (internal) symbol number NUM (which must be that of a token). */
static
const unsigned short int
const unsigned short
yytoken_number_[] =
{
0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
@@ -1890,7 +1899,7 @@ namespace isc { namespace dhcp {
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
415, 416, 417, 418, 419, 420, 421, 422, 423
};
return static_cast<token_type> (yytoken_number_[type]);
}
@@ -2039,6 +2048,12 @@ namespace isc { namespace dhcp {
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)
{
@@ -2892,9 +2907,9 @@ namespace isc { namespace dhcp {
}
#line 14 "dhcp4_parser.yy" // lalr1.cc:377
#line 14 "dhcp4_parser.yy" // lalr1.cc:380
} } // isc::dhcp
#line 2898 "dhcp4_parser.h" // lalr1.cc:377
#line 2913 "dhcp4_parser.h" // lalr1.cc:380