diff options
Diffstat (limited to 'src/bin/dhcp6/dhcp6_parser.h')
-rw-r--r-- | src/bin/dhcp6/dhcp6_parser.h | 1919 |
1 files changed, 492 insertions, 1427 deletions
diff --git a/src/bin/dhcp6/dhcp6_parser.h b/src/bin/dhcp6/dhcp6_parser.h index 3fc2410591..2128519cd3 100644 --- a/src/bin/dhcp6/dhcp6_parser.h +++ b/src/bin/dhcp6/dhcp6_parser.h @@ -1,8 +1,8 @@ -// A Bison parser, made by GNU Bison 3.8.2. +// A Bison parser, made by GNU Bison 3.5.1. // Skeleton interface for Bison LALR(1) parsers in C++ -// Copyright (C) 2002-2015, 2018-2021 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 @@ -15,7 +15,7 @@ // GNU General Public License for more details. // You should have received a copy of the GNU General Public License -// along with this program. If not, see <https://www.gnu.org/licenses/>. +// along with this program. If not, see <http://www.gnu.org/licenses/>. // As a special exception, you may create a larger work that contains // part or all of the Bison parser skeleton and distribute that work @@ -38,9 +38,8 @@ // C++ LALR(1) parser skeleton written by Akim Demaille. -// DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, -// especially those whose name start with YY_ or yy_. They are -// private implementation details that can be changed or removed. +// Undocumented macros, especially those whose name start with YY_, +// are private implementation details. Do not rely on them. #ifndef YY_PARSER6_DHCP6_PARSER_H_INCLUDED # define YY_PARSER6_DHCP6_PARSER_H_INCLUDED @@ -57,7 +56,7 @@ using namespace isc::dhcp; using namespace isc::data; using namespace std; -#line 61 "dhcp6_parser.h" +#line 60 "dhcp6_parser.h" # include <cassert> # include <cstdlib> // std::abort @@ -104,9 +103,9 @@ using namespace std; #endif # include "location.hh" #include <typeinfo> -#ifndef PARSER6__ASSERT +#ifndef YY_ASSERT # include <cassert> -# define PARSER6__ASSERT assert +# define YY_ASSERT assert #endif @@ -128,23 +127,17 @@ using namespace std; /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ -# define YY_USE(E) ((void) (E)) +# define YYUSE(E) ((void) (E)) #else -# define YY_USE(E) /* empty */ +# define YYUSE(E) /* empty */ #endif +#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ /* Suppress an incorrect diagnostic about yylval being uninitialized. */ -#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__ -# if __GNUC__ * 100 + __GNUC_MINOR__ < 407 -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") -# else -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# endif # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else @@ -206,7 +199,7 @@ using namespace std; #line 14 "dhcp6_parser.yy" namespace isc { namespace dhcp { -#line 210 "dhcp6_parser.h" +#line 203 "dhcp6_parser.h" @@ -215,49 +208,37 @@ namespace isc { namespace dhcp { class Dhcp6Parser { public: -#ifdef PARSER6_STYPE -# ifdef __GNUC__ -# pragma GCC message "bison: do not #define PARSER6_STYPE in C++, use %define api.value.type" -# endif - typedef PARSER6_STYPE value_type; -#else +#ifndef PARSER6_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 parser state. - class value_type + class semantic_type { public: /// Type of *this. - typedef value_type self_type; + typedef semantic_type self_type; /// Empty construction. - value_type () YY_NOEXCEPT - : yyraw_ () + semantic_type () YY_NOEXCEPT + : yybuffer_ () , yytypeid_ (YY_NULLPTR) {} /// Construct and fill. template <typename T> - value_type (YY_RVREF (T) t) + semantic_type (YY_RVREF (T) t) : yytypeid_ (&typeid (T)) { - PARSER6__ASSERT (sizeof (T) <= size); + YY_ASSERT (sizeof (T) <= size); new (yyas_<T> ()) T (YY_MOVE (t)); } -#if 201103L <= YY_CPLUSPLUS - /// Non copyable. - value_type (const self_type&) = delete; - /// Non copyable. - self_type& operator= (const self_type&) = delete; -#endif - /// Destruction, allowed only if empty. - ~value_type () YY_NOEXCEPT + ~semantic_type () YY_NOEXCEPT { - PARSER6__ASSERT (!yytypeid_); + YY_ASSERT (!yytypeid_); } # if 201103L <= YY_CPLUSPLUS @@ -266,8 +247,8 @@ namespace isc { namespace dhcp { T& emplace (U&&... u) { - PARSER6__ASSERT (!yytypeid_); - PARSER6__ASSERT (sizeof (T) <= size); + YY_ASSERT (!yytypeid_); + YY_ASSERT (sizeof (T) <= size); yytypeid_ = & typeid (T); return *new (yyas_<T> ()) T (std::forward <U>(u)...); } @@ -277,8 +258,8 @@ namespace isc { namespace dhcp { T& emplace () { - PARSER6__ASSERT (!yytypeid_); - PARSER6__ASSERT (sizeof (T) <= size); + YY_ASSERT (!yytypeid_); + YY_ASSERT (sizeof (T) <= size); yytypeid_ = & typeid (T); return *new (yyas_<T> ()) T (); } @@ -288,8 +269,8 @@ namespace isc { namespace dhcp { T& emplace (const T& t) { - PARSER6__ASSERT (!yytypeid_); - PARSER6__ASSERT (sizeof (T) <= size); + YY_ASSERT (!yytypeid_); + YY_ASSERT (sizeof (T) <= size); yytypeid_ = & typeid (T); return *new (yyas_<T> ()) T (t); } @@ -318,9 +299,9 @@ namespace isc { namespace dhcp { T& as () YY_NOEXCEPT { - PARSER6__ASSERT (yytypeid_); - PARSER6__ASSERT (*yytypeid_ == typeid (T)); - PARSER6__ASSERT (sizeof (T) <= size); + YY_ASSERT (yytypeid_); + YY_ASSERT (*yytypeid_ == typeid (T)); + YY_ASSERT (sizeof (T) <= size); return *yyas_<T> (); } @@ -329,9 +310,9 @@ namespace isc { namespace dhcp { const T& as () const YY_NOEXCEPT { - PARSER6__ASSERT (yytypeid_); - PARSER6__ASSERT (*yytypeid_ == typeid (T)); - PARSER6__ASSERT (sizeof (T) <= size); + YY_ASSERT (yytypeid_); + YY_ASSERT (*yytypeid_ == typeid (T)); + YY_ASSERT (sizeof (T) <= size); return *yyas_<T> (); } @@ -347,8 +328,8 @@ namespace isc { namespace dhcp { void swap (self_type& that) YY_NOEXCEPT { - PARSER6__ASSERT (yytypeid_); - PARSER6__ASSERT (*yytypeid_ == *that.yytypeid_); + YY_ASSERT (yytypeid_); + YY_ASSERT (*yytypeid_ == *that.yytypeid_); std::swap (as<T> (), that.as<T> ()); } @@ -397,19 +378,16 @@ namespace isc { namespace dhcp { } private: -#if YY_CPLUSPLUS < 201103L - /// Non copyable. - value_type (const self_type&); - /// Non copyable. + /// Prohibit blind copies. self_type& operator= (const self_type&); -#endif + semantic_type (const self_type&); /// Accessor to raw memory as \a T. template <typename T> T* yyas_ () YY_NOEXCEPT { - void *yyp = yyraw_; + void *yyp = yybuffer_.yyraw; return static_cast<T*> (yyp); } @@ -418,7 +396,7 @@ namespace isc { namespace dhcp { const T* yyas_ () const YY_NOEXCEPT { - const void *yyp = yyraw_; + const void *yyp = yybuffer_.yyraw; return static_cast<const T*> (yyp); } @@ -455,19 +433,18 @@ namespace isc { namespace dhcp { union { /// Strongest alignment constraints. - long double yyalign_me_; + long double yyalign_me; /// A buffer large enough to store any of the semantic values. - char yyraw_[size]; - }; + char yyraw[size]; + } yybuffer_; /// Whether the content is built: if defined, the name of the stored type. const std::type_info *yytypeid_; }; +#else + typedef PARSER6_STYPE semantic_type; #endif - /// Backward compatibility (Bison 3.8). - typedef value_type semantic_type; - /// Symbol locations. typedef location location_type; @@ -489,931 +466,239 @@ namespace isc { namespace dhcp { location_type location; }; - /// Token kinds. + /// Tokens. struct token { - enum token_kind_type - { - TOKEN_PARSER6_EMPTY = -2, - TOKEN_END = 0, // "end of file" - TOKEN_PARSER6_error = 256, // error - TOKEN_PARSER6_UNDEF = 257, // "invalid token" - TOKEN_COMMA = 258, // "," - TOKEN_COLON = 259, // ":" - TOKEN_LSQUARE_BRACKET = 260, // "[" - TOKEN_RSQUARE_BRACKET = 261, // "]" - TOKEN_LCURLY_BRACKET = 262, // "{" - TOKEN_RCURLY_BRACKET = 263, // "}" - TOKEN_NULL_TYPE = 264, // "null" - TOKEN_DHCP6 = 265, // "Dhcp6" - TOKEN_DATA_DIRECTORY = 266, // "data-directory" - TOKEN_CONFIG_CONTROL = 267, // "config-control" - TOKEN_CONFIG_DATABASES = 268, // "config-databases" - TOKEN_CONFIG_FETCH_WAIT_TIME = 269, // "config-fetch-wait-time" - TOKEN_INTERFACES_CONFIG = 270, // "interfaces-config" - TOKEN_INTERFACES = 271, // "interfaces" - TOKEN_RE_DETECT = 272, // "re-detect" - TOKEN_LEASE_DATABASE = 273, // "lease-database" - TOKEN_HOSTS_DATABASE = 274, // "hosts-database" - TOKEN_HOSTS_DATABASES = 275, // "hosts-databases" - TOKEN_TYPE = 276, // "type" - TOKEN_MEMFILE = 277, // "memfile" - TOKEN_MYSQL = 278, // "mysql" - TOKEN_POSTGRESQL = 279, // "postgresql" - TOKEN_CQL = 280, // "cql" - TOKEN_USER = 281, // "user" - TOKEN_PASSWORD = 282, // "password" - TOKEN_HOST = 283, // "host" - TOKEN_PORT = 284, // "port" - TOKEN_PERSIST = 285, // "persist" - TOKEN_LFC_INTERVAL = 286, // "lfc-interval" - TOKEN_READONLY = 287, // "readonly" - TOKEN_CONNECT_TIMEOUT = 288, // "connect-timeout" - TOKEN_CONTACT_POINTS = 289, // "contact-points" - TOKEN_MAX_RECONNECT_TRIES = 290, // "max-reconnect-tries" - TOKEN_RECONNECT_WAIT_TIME = 291, // "reconnect-wait-time" - TOKEN_ON_FAIL = 292, // "on-fail" - TOKEN_STOP_RETRY_EXIT = 293, // "stop-retry-exit" - TOKEN_SERVE_RETRY_EXIT = 294, // "serve-retry-exit" - TOKEN_SERVE_RETRY_CONTINUE = 295, // "serve-retry-continue" - TOKEN_KEYSPACE = 296, // "keyspace" - TOKEN_CONSISTENCY = 297, // "consistency" - TOKEN_SERIAL_CONSISTENCY = 298, // "serial-consistency" - TOKEN_REQUEST_TIMEOUT = 299, // "request-timeout" - TOKEN_TCP_KEEPALIVE = 300, // "tcp-keepalive" - TOKEN_TCP_NODELAY = 301, // "tcp-nodelay" - TOKEN_MAX_ROW_ERRORS = 302, // "max-row-errors" - TOKEN_TRUST_ANCHOR = 303, // "trust-anchor" - TOKEN_CERT_FILE = 304, // "cert-file" - TOKEN_KEY_FILE = 305, // "key-file" - TOKEN_CIPHER_LIST = 306, // "cipher-list" - TOKEN_PREFERRED_LIFETIME = 307, // "preferred-lifetime" - TOKEN_MIN_PREFERRED_LIFETIME = 308, // "min-preferred-lifetime" - TOKEN_MAX_PREFERRED_LIFETIME = 309, // "max-preferred-lifetime" - TOKEN_VALID_LIFETIME = 310, // "valid-lifetime" - TOKEN_MIN_VALID_LIFETIME = 311, // "min-valid-lifetime" - TOKEN_MAX_VALID_LIFETIME = 312, // "max-valid-lifetime" - TOKEN_RENEW_TIMER = 313, // "renew-timer" - TOKEN_REBIND_TIMER = 314, // "rebind-timer" - TOKEN_CALCULATE_TEE_TIMES = 315, // "calculate-tee-times" - TOKEN_T1_PERCENT = 316, // "t1-percent" - TOKEN_T2_PERCENT = 317, // "t2-percent" - TOKEN_CACHE_THRESHOLD = 318, // "cache-threshold" - TOKEN_CACHE_MAX_AGE = 319, // "cache-max-age" - TOKEN_DECLINE_PROBATION_PERIOD = 320, // "decline-probation-period" - TOKEN_SERVER_TAG = 321, // "server-tag" - TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT = 322, // "statistic-default-sample-count" - TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE = 323, // "statistic-default-sample-age" - TOKEN_DDNS_SEND_UPDATES = 324, // "ddns-send-updates" - TOKEN_DDNS_OVERRIDE_NO_UPDATE = 325, // "ddns-override-no-update" - TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE = 326, // "ddns-override-client-update" - TOKEN_DDNS_REPLACE_CLIENT_NAME = 327, // "ddns-replace-client-name" - TOKEN_DDNS_GENERATED_PREFIX = 328, // "ddns-generated-prefix" - TOKEN_DDNS_QUALIFYING_SUFFIX = 329, // "ddns-qualifying-suffix" - TOKEN_DDNS_UPDATE_ON_RENEW = 330, // "ddns-update-on-renew" - TOKEN_DDNS_USE_CONFLICT_RESOLUTION = 331, // "ddns-use-conflict-resolution" - TOKEN_STORE_EXTENDED_INFO = 332, // "store-extended-info" - TOKEN_SUBNET6 = 333, // "subnet6" - TOKEN_OPTION_DEF = 334, // "option-def" - TOKEN_OPTION_DATA = 335, // "option-data" - TOKEN_NAME = 336, // "name" - TOKEN_DATA = 337, // "data" - TOKEN_CODE = 338, // "code" - TOKEN_SPACE = 339, // "space" - TOKEN_CSV_FORMAT = 340, // "csv-format" - TOKEN_ALWAYS_SEND = 341, // "always-send" - TOKEN_RECORD_TYPES = 342, // "record-types" - TOKEN_ENCAPSULATE = 343, // "encapsulate" - TOKEN_ARRAY = 344, // "array" - TOKEN_PARKED_PACKET_LIMIT = 345, // "parked-packet-limit" - TOKEN_SHARED_NETWORKS = 346, // "shared-networks" - TOKEN_POOLS = 347, // "pools" - TOKEN_POOL = 348, // "pool" - TOKEN_PD_POOLS = 349, // "pd-pools" - TOKEN_PREFIX = 350, // "prefix" - TOKEN_PREFIX_LEN = 351, // "prefix-len" - TOKEN_EXCLUDED_PREFIX = 352, // "excluded-prefix" - TOKEN_EXCLUDED_PREFIX_LEN = 353, // "excluded-prefix-len" - TOKEN_DELEGATED_LEN = 354, // "delegated-len" - TOKEN_USER_CONTEXT = 355, // "user-context" - TOKEN_COMMENT = 356, // "comment" - TOKEN_SUBNET = 357, // "subnet" - TOKEN_INTERFACE = 358, // "interface" - TOKEN_INTERFACE_ID = 359, // "interface-id" - TOKEN_ID = 360, // "id" - TOKEN_RAPID_COMMIT = 361, // "rapid-commit" - TOKEN_RESERVATION_MODE = 362, // "reservation-mode" - TOKEN_DISABLED = 363, // "disabled" - TOKEN_OUT_OF_POOL = 364, // "out-of-pool" - TOKEN_GLOBAL = 365, // "global" - TOKEN_ALL = 366, // "all" - TOKEN_RESERVATIONS_GLOBAL = 367, // "reservations-global" - TOKEN_RESERVATIONS_IN_SUBNET = 368, // "reservations-in-subnet" - TOKEN_RESERVATIONS_OUT_OF_POOL = 369, // "reservations-out-of-pool" - TOKEN_MAC_SOURCES = 370, // "mac-sources" - TOKEN_RELAY_SUPPLIED_OPTIONS = 371, // "relay-supplied-options" - TOKEN_HOST_RESERVATION_IDENTIFIERS = 372, // "host-reservation-identifiers" - TOKEN_SANITY_CHECKS = 373, // "sanity-checks" - TOKEN_LEASE_CHECKS = 374, // "lease-checks" - TOKEN_CLIENT_CLASSES = 375, // "client-classes" - TOKEN_REQUIRE_CLIENT_CLASSES = 376, // "require-client-classes" - TOKEN_TEST = 377, // "test" - TOKEN_ONLY_IF_REQUIRED = 378, // "only-if-required" - TOKEN_CLIENT_CLASS = 379, // "client-class" - TOKEN_RESERVATIONS = 380, // "reservations" - TOKEN_IP_ADDRESSES = 381, // "ip-addresses" - TOKEN_PREFIXES = 382, // "prefixes" - TOKEN_DUID = 383, // "duid" - TOKEN_HW_ADDRESS = 384, // "hw-address" - TOKEN_HOSTNAME = 385, // "hostname" - TOKEN_FLEX_ID = 386, // "flex-id" - TOKEN_RELAY = 387, // "relay" - TOKEN_IP_ADDRESS = 388, // "ip-address" - TOKEN_HOOKS_LIBRARIES = 389, // "hooks-libraries" - TOKEN_LIBRARY = 390, // "library" - TOKEN_PARAMETERS = 391, // "parameters" - TOKEN_EXPIRED_LEASES_PROCESSING = 392, // "expired-leases-processing" - TOKEN_RECLAIM_TIMER_WAIT_TIME = 393, // "reclaim-timer-wait-time" - TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 394, // "flush-reclaimed-timer-wait-time" - TOKEN_HOLD_RECLAIMED_TIME = 395, // "hold-reclaimed-time" - TOKEN_MAX_RECLAIM_LEASES = 396, // "max-reclaim-leases" - TOKEN_MAX_RECLAIM_TIME = 397, // "max-reclaim-time" - TOKEN_UNWARNED_RECLAIM_CYCLES = 398, // "unwarned-reclaim-cycles" - TOKEN_SERVER_ID = 399, // "server-id" - TOKEN_LLT = 400, // "LLT" - TOKEN_EN = 401, // "EN" - TOKEN_LL = 402, // "LL" - TOKEN_IDENTIFIER = 403, // "identifier" - TOKEN_HTYPE = 404, // "htype" - TOKEN_TIME = 405, // "time" - TOKEN_ENTERPRISE_ID = 406, // "enterprise-id" - TOKEN_DHCP4O6_PORT = 407, // "dhcp4o6-port" - TOKEN_DHCP_MULTI_THREADING = 408, // "multi-threading" - TOKEN_ENABLE_MULTI_THREADING = 409, // "enable-multi-threading" - TOKEN_THREAD_POOL_SIZE = 410, // "thread-pool-size" - TOKEN_PACKET_QUEUE_SIZE = 411, // "packet-queue-size" - TOKEN_CONTROL_SOCKET = 412, // "control-socket" - TOKEN_SOCKET_TYPE = 413, // "socket-type" - TOKEN_SOCKET_NAME = 414, // "socket-name" - TOKEN_DHCP_QUEUE_CONTROL = 415, // "dhcp-queue-control" - TOKEN_ENABLE_QUEUE = 416, // "enable-queue" - TOKEN_QUEUE_TYPE = 417, // "queue-type" - TOKEN_CAPACITY = 418, // "capacity" - TOKEN_DHCP_DDNS = 419, // "dhcp-ddns" - TOKEN_ENABLE_UPDATES = 420, // "enable-updates" - TOKEN_QUALIFYING_SUFFIX = 421, // "qualifying-suffix" - TOKEN_SERVER_IP = 422, // "server-ip" - TOKEN_SERVER_PORT = 423, // "server-port" - TOKEN_SENDER_IP = 424, // "sender-ip" - TOKEN_SENDER_PORT = 425, // "sender-port" - TOKEN_MAX_QUEUE_SIZE = 426, // "max-queue-size" - TOKEN_NCR_PROTOCOL = 427, // "ncr-protocol" - TOKEN_NCR_FORMAT = 428, // "ncr-format" - TOKEN_OVERRIDE_NO_UPDATE = 429, // "override-no-update" - TOKEN_OVERRIDE_CLIENT_UPDATE = 430, // "override-client-update" - TOKEN_REPLACE_CLIENT_NAME = 431, // "replace-client-name" - TOKEN_GENERATED_PREFIX = 432, // "generated-prefix" - TOKEN_UDP = 433, // "UDP" - TOKEN_TCP = 434, // "TCP" - TOKEN_JSON = 435, // "JSON" - TOKEN_WHEN_PRESENT = 436, // "when-present" - TOKEN_NEVER = 437, // "never" - TOKEN_ALWAYS = 438, // "always" - TOKEN_WHEN_NOT_PRESENT = 439, // "when-not-present" - TOKEN_HOSTNAME_CHAR_SET = 440, // "hostname-char-set" - TOKEN_HOSTNAME_CHAR_REPLACEMENT = 441, // "hostname-char-replacement" - TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 442, // "early-global-reservations-lookup" - TOKEN_IP_RESERVATIONS_UNIQUE = 443, // "ip-reservations-unique" - TOKEN_RESERVATIONS_LOOKUP_FIRST = 444, // "reservations-lookup-first" - TOKEN_LOGGERS = 445, // "loggers" - TOKEN_OUTPUT_OPTIONS = 446, // "output_options" - TOKEN_OUTPUT = 447, // "output" - TOKEN_DEBUGLEVEL = 448, // "debuglevel" - TOKEN_SEVERITY = 449, // "severity" - TOKEN_FLUSH = 450, // "flush" - TOKEN_MAXSIZE = 451, // "maxsize" - TOKEN_MAXVER = 452, // "maxver" - TOKEN_PATTERN = 453, // "pattern" - TOKEN_COMPATIBILITY = 454, // "compatibility" - TOKEN_LENIENT_OPTION_PARSING = 455, // "lenient-option-parsing" - TOKEN_TOPLEVEL_JSON = 456, // TOPLEVEL_JSON - TOKEN_TOPLEVEL_DHCP6 = 457, // TOPLEVEL_DHCP6 - TOKEN_SUB_DHCP6 = 458, // SUB_DHCP6 - TOKEN_SUB_INTERFACES6 = 459, // SUB_INTERFACES6 - TOKEN_SUB_SUBNET6 = 460, // SUB_SUBNET6 - TOKEN_SUB_POOL6 = 461, // SUB_POOL6 - TOKEN_SUB_PD_POOL = 462, // SUB_PD_POOL - TOKEN_SUB_RESERVATION = 463, // SUB_RESERVATION - TOKEN_SUB_OPTION_DEFS = 464, // SUB_OPTION_DEFS - TOKEN_SUB_OPTION_DEF = 465, // SUB_OPTION_DEF - TOKEN_SUB_OPTION_DATA = 466, // SUB_OPTION_DATA - TOKEN_SUB_HOOKS_LIBRARY = 467, // SUB_HOOKS_LIBRARY - TOKEN_SUB_DHCP_DDNS = 468, // SUB_DHCP_DDNS - TOKEN_SUB_CONFIG_CONTROL = 469, // SUB_CONFIG_CONTROL - TOKEN_STRING = 470, // "constant string" - TOKEN_INTEGER = 471, // "integer" - TOKEN_FLOAT = 472, // "floating point" - TOKEN_BOOLEAN = 473 // "boolean" + enum yytokentype + { + TOKEN_END = 0, + TOKEN_COMMA = 258, + TOKEN_COLON = 259, + TOKEN_LSQUARE_BRACKET = 260, + TOKEN_RSQUARE_BRACKET = 261, + TOKEN_LCURLY_BRACKET = 262, + TOKEN_RCURLY_BRACKET = 263, + TOKEN_NULL_TYPE = 264, + TOKEN_DHCP6 = 265, + TOKEN_DATA_DIRECTORY = 266, + TOKEN_CONFIG_CONTROL = 267, + TOKEN_CONFIG_DATABASES = 268, + TOKEN_CONFIG_FETCH_WAIT_TIME = 269, + TOKEN_INTERFACES_CONFIG = 270, + TOKEN_INTERFACES = 271, + TOKEN_RE_DETECT = 272, + TOKEN_LEASE_DATABASE = 273, + TOKEN_HOSTS_DATABASE = 274, + TOKEN_HOSTS_DATABASES = 275, + TOKEN_TYPE = 276, + TOKEN_MEMFILE = 277, + TOKEN_MYSQL = 278, + TOKEN_POSTGRESQL = 279, + TOKEN_USER = 280, + TOKEN_PASSWORD = 281, + TOKEN_HOST = 282, + TOKEN_PORT = 283, + TOKEN_PERSIST = 284, + TOKEN_LFC_INTERVAL = 285, + TOKEN_READONLY = 286, + TOKEN_CONNECT_TIMEOUT = 287, + TOKEN_MAX_RECONNECT_TRIES = 288, + TOKEN_RECONNECT_WAIT_TIME = 289, + TOKEN_ON_FAIL = 290, + TOKEN_STOP_RETRY_EXIT = 291, + TOKEN_SERVE_RETRY_EXIT = 292, + TOKEN_SERVE_RETRY_CONTINUE = 293, + TOKEN_MAX_ROW_ERRORS = 294, + TOKEN_TRUST_ANCHOR = 295, + TOKEN_CERT_FILE = 296, + TOKEN_KEY_FILE = 297, + TOKEN_CIPHER_LIST = 298, + TOKEN_PREFERRED_LIFETIME = 299, + TOKEN_MIN_PREFERRED_LIFETIME = 300, + TOKEN_MAX_PREFERRED_LIFETIME = 301, + TOKEN_VALID_LIFETIME = 302, + TOKEN_MIN_VALID_LIFETIME = 303, + TOKEN_MAX_VALID_LIFETIME = 304, + TOKEN_RENEW_TIMER = 305, + TOKEN_REBIND_TIMER = 306, + TOKEN_CALCULATE_TEE_TIMES = 307, + TOKEN_T1_PERCENT = 308, + TOKEN_T2_PERCENT = 309, + TOKEN_CACHE_THRESHOLD = 310, + TOKEN_CACHE_MAX_AGE = 311, + TOKEN_DECLINE_PROBATION_PERIOD = 312, + TOKEN_SERVER_TAG = 313, + TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT = 314, + TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE = 315, + TOKEN_DDNS_SEND_UPDATES = 316, + TOKEN_DDNS_OVERRIDE_NO_UPDATE = 317, + TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE = 318, + TOKEN_DDNS_REPLACE_CLIENT_NAME = 319, + TOKEN_DDNS_GENERATED_PREFIX = 320, + TOKEN_DDNS_QUALIFYING_SUFFIX = 321, + TOKEN_DDNS_UPDATE_ON_RENEW = 322, + TOKEN_DDNS_USE_CONFLICT_RESOLUTION = 323, + TOKEN_STORE_EXTENDED_INFO = 324, + TOKEN_SUBNET6 = 325, + TOKEN_OPTION_DEF = 326, + TOKEN_OPTION_DATA = 327, + TOKEN_NAME = 328, + TOKEN_DATA = 329, + TOKEN_CODE = 330, + TOKEN_SPACE = 331, + TOKEN_CSV_FORMAT = 332, + TOKEN_ALWAYS_SEND = 333, + TOKEN_RECORD_TYPES = 334, + TOKEN_ENCAPSULATE = 335, + TOKEN_ARRAY = 336, + TOKEN_PARKED_PACKET_LIMIT = 337, + TOKEN_SHARED_NETWORKS = 338, + TOKEN_POOLS = 339, + TOKEN_POOL = 340, + TOKEN_PD_POOLS = 341, + TOKEN_PREFIX = 342, + TOKEN_PREFIX_LEN = 343, + TOKEN_EXCLUDED_PREFIX = 344, + TOKEN_EXCLUDED_PREFIX_LEN = 345, + TOKEN_DELEGATED_LEN = 346, + TOKEN_USER_CONTEXT = 347, + TOKEN_COMMENT = 348, + TOKEN_SUBNET = 349, + TOKEN_INTERFACE = 350, + TOKEN_INTERFACE_ID = 351, + TOKEN_ID = 352, + TOKEN_RAPID_COMMIT = 353, + TOKEN_RESERVATION_MODE = 354, + TOKEN_DISABLED = 355, + TOKEN_OUT_OF_POOL = 356, + TOKEN_GLOBAL = 357, + TOKEN_ALL = 358, + TOKEN_RESERVATIONS_GLOBAL = 359, + TOKEN_RESERVATIONS_IN_SUBNET = 360, + TOKEN_RESERVATIONS_OUT_OF_POOL = 361, + TOKEN_MAC_SOURCES = 362, + TOKEN_RELAY_SUPPLIED_OPTIONS = 363, + TOKEN_HOST_RESERVATION_IDENTIFIERS = 364, + TOKEN_SANITY_CHECKS = 365, + TOKEN_LEASE_CHECKS = 366, + TOKEN_CLIENT_CLASSES = 367, + TOKEN_REQUIRE_CLIENT_CLASSES = 368, + TOKEN_TEST = 369, + TOKEN_ONLY_IF_REQUIRED = 370, + TOKEN_CLIENT_CLASS = 371, + TOKEN_RESERVATIONS = 372, + TOKEN_IP_ADDRESSES = 373, + TOKEN_PREFIXES = 374, + TOKEN_DUID = 375, + TOKEN_HW_ADDRESS = 376, + TOKEN_HOSTNAME = 377, + TOKEN_FLEX_ID = 378, + TOKEN_RELAY = 379, + TOKEN_IP_ADDRESS = 380, + TOKEN_HOOKS_LIBRARIES = 381, + TOKEN_LIBRARY = 382, + TOKEN_PARAMETERS = 383, + TOKEN_EXPIRED_LEASES_PROCESSING = 384, + TOKEN_RECLAIM_TIMER_WAIT_TIME = 385, + TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 386, + TOKEN_HOLD_RECLAIMED_TIME = 387, + TOKEN_MAX_RECLAIM_LEASES = 388, + TOKEN_MAX_RECLAIM_TIME = 389, + TOKEN_UNWARNED_RECLAIM_CYCLES = 390, + TOKEN_SERVER_ID = 391, + TOKEN_LLT = 392, + TOKEN_EN = 393, + TOKEN_LL = 394, + TOKEN_IDENTIFIER = 395, + TOKEN_HTYPE = 396, + TOKEN_TIME = 397, + TOKEN_ENTERPRISE_ID = 398, + TOKEN_DHCP4O6_PORT = 399, + TOKEN_DHCP_MULTI_THREADING = 400, + TOKEN_ENABLE_MULTI_THREADING = 401, + TOKEN_THREAD_POOL_SIZE = 402, + TOKEN_PACKET_QUEUE_SIZE = 403, + TOKEN_CONTROL_SOCKET = 404, + TOKEN_SOCKET_TYPE = 405, + TOKEN_SOCKET_NAME = 406, + TOKEN_DHCP_QUEUE_CONTROL = 407, + TOKEN_ENABLE_QUEUE = 408, + TOKEN_QUEUE_TYPE = 409, + TOKEN_CAPACITY = 410, + TOKEN_DHCP_DDNS = 411, + TOKEN_ENABLE_UPDATES = 412, + TOKEN_QUALIFYING_SUFFIX = 413, + TOKEN_SERVER_IP = 414, + TOKEN_SERVER_PORT = 415, + TOKEN_SENDER_IP = 416, + TOKEN_SENDER_PORT = 417, + TOKEN_MAX_QUEUE_SIZE = 418, + TOKEN_NCR_PROTOCOL = 419, + TOKEN_NCR_FORMAT = 420, + TOKEN_OVERRIDE_NO_UPDATE = 421, + TOKEN_OVERRIDE_CLIENT_UPDATE = 422, + TOKEN_REPLACE_CLIENT_NAME = 423, + TOKEN_GENERATED_PREFIX = 424, + TOKEN_UDP = 425, + TOKEN_TCP = 426, + TOKEN_JSON = 427, + TOKEN_WHEN_PRESENT = 428, + TOKEN_NEVER = 429, + TOKEN_ALWAYS = 430, + TOKEN_WHEN_NOT_PRESENT = 431, + TOKEN_HOSTNAME_CHAR_SET = 432, + TOKEN_HOSTNAME_CHAR_REPLACEMENT = 433, + TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 434, + TOKEN_IP_RESERVATIONS_UNIQUE = 435, + TOKEN_RESERVATIONS_LOOKUP_FIRST = 436, + TOKEN_LOGGERS = 437, + TOKEN_OUTPUT_OPTIONS = 438, + TOKEN_OUTPUT = 439, + TOKEN_DEBUGLEVEL = 440, + TOKEN_SEVERITY = 441, + TOKEN_FLUSH = 442, + TOKEN_MAXSIZE = 443, + TOKEN_MAXVER = 444, + TOKEN_PATTERN = 445, + TOKEN_COMPATIBILITY = 446, + TOKEN_LENIENT_OPTION_PARSING = 447, + TOKEN_TOPLEVEL_JSON = 448, + TOKEN_TOPLEVEL_DHCP6 = 449, + TOKEN_SUB_DHCP6 = 450, + TOKEN_SUB_INTERFACES6 = 451, + TOKEN_SUB_SUBNET6 = 452, + TOKEN_SUB_POOL6 = 453, + TOKEN_SUB_PD_POOL = 454, + TOKEN_SUB_RESERVATION = 455, + TOKEN_SUB_OPTION_DEFS = 456, + TOKEN_SUB_OPTION_DEF = 457, + TOKEN_SUB_OPTION_DATA = 458, + TOKEN_SUB_HOOKS_LIBRARY = 459, + TOKEN_SUB_DHCP_DDNS = 460, + TOKEN_SUB_CONFIG_CONTROL = 461, + TOKEN_STRING = 462, + TOKEN_INTEGER = 463, + TOKEN_FLOAT = 464, + TOKEN_BOOLEAN = 465 }; - /// Backward compatibility alias (Bison 3.6). - typedef token_kind_type yytokentype; }; - /// Token kind, as returned by yylex. - typedef token::token_kind_type token_kind_type; + /// (External) token type, as returned by yylex. + typedef token::yytokentype token_type; - /// Backward compatibility alias (Bison 3.6). - typedef token_kind_type token_type; - - /// Symbol kinds. - struct symbol_kind - { - enum symbol_kind_type - { - YYNTOKENS = 219, ///< Number of tokens. - S_YYEMPTY = -2, - S_YYEOF = 0, // "end of file" - S_YYerror = 1, // error - S_YYUNDEF = 2, // "invalid token" - S_COMMA = 3, // "," - S_COLON = 4, // ":" - S_LSQUARE_BRACKET = 5, // "[" - S_RSQUARE_BRACKET = 6, // "]" - S_LCURLY_BRACKET = 7, // "{" - S_RCURLY_BRACKET = 8, // "}" - S_NULL_TYPE = 9, // "null" - S_DHCP6 = 10, // "Dhcp6" - S_DATA_DIRECTORY = 11, // "data-directory" - S_CONFIG_CONTROL = 12, // "config-control" - S_CONFIG_DATABASES = 13, // "config-databases" - S_CONFIG_FETCH_WAIT_TIME = 14, // "config-fetch-wait-time" - S_INTERFACES_CONFIG = 15, // "interfaces-config" - S_INTERFACES = 16, // "interfaces" - S_RE_DETECT = 17, // "re-detect" - S_LEASE_DATABASE = 18, // "lease-database" - S_HOSTS_DATABASE = 19, // "hosts-database" - S_HOSTS_DATABASES = 20, // "hosts-databases" - S_TYPE = 21, // "type" - S_MEMFILE = 22, // "memfile" - S_MYSQL = 23, // "mysql" - S_POSTGRESQL = 24, // "postgresql" - S_CQL = 25, // "cql" - S_USER = 26, // "user" - S_PASSWORD = 27, // "password" - S_HOST = 28, // "host" - S_PORT = 29, // "port" - S_PERSIST = 30, // "persist" - S_LFC_INTERVAL = 31, // "lfc-interval" - S_READONLY = 32, // "readonly" - S_CONNECT_TIMEOUT = 33, // "connect-timeout" - S_CONTACT_POINTS = 34, // "contact-points" - S_MAX_RECONNECT_TRIES = 35, // "max-reconnect-tries" - S_RECONNECT_WAIT_TIME = 36, // "reconnect-wait-time" - S_ON_FAIL = 37, // "on-fail" - S_STOP_RETRY_EXIT = 38, // "stop-retry-exit" - S_SERVE_RETRY_EXIT = 39, // "serve-retry-exit" - S_SERVE_RETRY_CONTINUE = 40, // "serve-retry-continue" - S_KEYSPACE = 41, // "keyspace" - S_CONSISTENCY = 42, // "consistency" - S_SERIAL_CONSISTENCY = 43, // "serial-consistency" - S_REQUEST_TIMEOUT = 44, // "request-timeout" - S_TCP_KEEPALIVE = 45, // "tcp-keepalive" - S_TCP_NODELAY = 46, // "tcp-nodelay" - S_MAX_ROW_ERRORS = 47, // "max-row-errors" - S_TRUST_ANCHOR = 48, // "trust-anchor" - S_CERT_FILE = 49, // "cert-file" - S_KEY_FILE = 50, // "key-file" - S_CIPHER_LIST = 51, // "cipher-list" - S_PREFERRED_LIFETIME = 52, // "preferred-lifetime" - S_MIN_PREFERRED_LIFETIME = 53, // "min-preferred-lifetime" - S_MAX_PREFERRED_LIFETIME = 54, // "max-preferred-lifetime" - S_VALID_LIFETIME = 55, // "valid-lifetime" - S_MIN_VALID_LIFETIME = 56, // "min-valid-lifetime" - S_MAX_VALID_LIFETIME = 57, // "max-valid-lifetime" - S_RENEW_TIMER = 58, // "renew-timer" - S_REBIND_TIMER = 59, // "rebind-timer" - S_CALCULATE_TEE_TIMES = 60, // "calculate-tee-times" - S_T1_PERCENT = 61, // "t1-percent" - S_T2_PERCENT = 62, // "t2-percent" - S_CACHE_THRESHOLD = 63, // "cache-threshold" - S_CACHE_MAX_AGE = 64, // "cache-max-age" - S_DECLINE_PROBATION_PERIOD = 65, // "decline-probation-period" - S_SERVER_TAG = 66, // "server-tag" - S_STATISTIC_DEFAULT_SAMPLE_COUNT = 67, // "statistic-default-sample-count" - S_STATISTIC_DEFAULT_SAMPLE_AGE = 68, // "statistic-default-sample-age" - S_DDNS_SEND_UPDATES = 69, // "ddns-send-updates" - S_DDNS_OVERRIDE_NO_UPDATE = 70, // "ddns-override-no-update" - S_DDNS_OVERRIDE_CLIENT_UPDATE = 71, // "ddns-override-client-update" - S_DDNS_REPLACE_CLIENT_NAME = 72, // "ddns-replace-client-name" - S_DDNS_GENERATED_PREFIX = 73, // "ddns-generated-prefix" - S_DDNS_QUALIFYING_SUFFIX = 74, // "ddns-qualifying-suffix" - S_DDNS_UPDATE_ON_RENEW = 75, // "ddns-update-on-renew" - S_DDNS_USE_CONFLICT_RESOLUTION = 76, // "ddns-use-conflict-resolution" - S_STORE_EXTENDED_INFO = 77, // "store-extended-info" - S_SUBNET6 = 78, // "subnet6" - S_OPTION_DEF = 79, // "option-def" - S_OPTION_DATA = 80, // "option-data" - S_NAME = 81, // "name" - S_DATA = 82, // "data" - S_CODE = 83, // "code" - S_SPACE = 84, // "space" - S_CSV_FORMAT = 85, // "csv-format" - S_ALWAYS_SEND = 86, // "always-send" - S_RECORD_TYPES = 87, // "record-types" - S_ENCAPSULATE = 88, // "encapsulate" - S_ARRAY = 89, // "array" - S_PARKED_PACKET_LIMIT = 90, // "parked-packet-limit" - S_SHARED_NETWORKS = 91, // "shared-networks" - S_POOLS = 92, // "pools" - S_POOL = 93, // "pool" - S_PD_POOLS = 94, // "pd-pools" - S_PREFIX = 95, // "prefix" - S_PREFIX_LEN = 96, // "prefix-len" - S_EXCLUDED_PREFIX = 97, // "excluded-prefix" - S_EXCLUDED_PREFIX_LEN = 98, // "excluded-prefix-len" - S_DELEGATED_LEN = 99, // "delegated-len" - S_USER_CONTEXT = 100, // "user-context" - S_COMMENT = 101, // "comment" - S_SUBNET = 102, // "subnet" - S_INTERFACE = 103, // "interface" - S_INTERFACE_ID = 104, // "interface-id" - S_ID = 105, // "id" - S_RAPID_COMMIT = 106, // "rapid-commit" - S_RESERVATION_MODE = 107, // "reservation-mode" - S_DISABLED = 108, // "disabled" - S_OUT_OF_POOL = 109, // "out-of-pool" - S_GLOBAL = 110, // "global" - S_ALL = 111, // "all" - S_RESERVATIONS_GLOBAL = 112, // "reservations-global" - S_RESERVATIONS_IN_SUBNET = 113, // "reservations-in-subnet" - S_RESERVATIONS_OUT_OF_POOL = 114, // "reservations-out-of-pool" - S_MAC_SOURCES = 115, // "mac-sources" - S_RELAY_SUPPLIED_OPTIONS = 116, // "relay-supplied-options" - S_HOST_RESERVATION_IDENTIFIERS = 117, // "host-reservation-identifiers" - S_SANITY_CHECKS = 118, // "sanity-checks" - S_LEASE_CHECKS = 119, // "lease-checks" - S_CLIENT_CLASSES = 120, // "client-classes" - S_REQUIRE_CLIENT_CLASSES = 121, // "require-client-classes" - S_TEST = 122, // "test" - S_ONLY_IF_REQUIRED = 123, // "only-if-required" - S_CLIENT_CLASS = 124, // "client-class" - S_RESERVATIONS = 125, // "reservations" - S_IP_ADDRESSES = 126, // "ip-addresses" - S_PREFIXES = 127, // "prefixes" - S_DUID = 128, // "duid" - S_HW_ADDRESS = 129, // "hw-address" - S_HOSTNAME = 130, // "hostname" - S_FLEX_ID = 131, // "flex-id" - S_RELAY = 132, // "relay" - S_IP_ADDRESS = 133, // "ip-address" - S_HOOKS_LIBRARIES = 134, // "hooks-libraries" - S_LIBRARY = 135, // "library" - S_PARAMETERS = 136, // "parameters" - S_EXPIRED_LEASES_PROCESSING = 137, // "expired-leases-processing" - S_RECLAIM_TIMER_WAIT_TIME = 138, // "reclaim-timer-wait-time" - S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 139, // "flush-reclaimed-timer-wait-time" - S_HOLD_RECLAIMED_TIME = 140, // "hold-reclaimed-time" - S_MAX_RECLAIM_LEASES = 141, // "max-reclaim-leases" - S_MAX_RECLAIM_TIME = 142, // "max-reclaim-time" - S_UNWARNED_RECLAIM_CYCLES = 143, // "unwarned-reclaim-cycles" - S_SERVER_ID = 144, // "server-id" - S_LLT = 145, // "LLT" - S_EN = 146, // "EN" - S_LL = 147, // "LL" - S_IDENTIFIER = 148, // "identifier" - S_HTYPE = 149, // "htype" - S_TIME = 150, // "time" - S_ENTERPRISE_ID = 151, // "enterprise-id" - S_DHCP4O6_PORT = 152, // "dhcp4o6-port" - S_DHCP_MULTI_THREADING = 153, // "multi-threading" - S_ENABLE_MULTI_THREADING = 154, // "enable-multi-threading" - S_THREAD_POOL_SIZE = 155, // "thread-pool-size" - S_PACKET_QUEUE_SIZE = 156, // "packet-queue-size" - S_CONTROL_SOCKET = 157, // "control-socket" - S_SOCKET_TYPE = 158, // "socket-type" - S_SOCKET_NAME = 159, // "socket-name" - S_DHCP_QUEUE_CONTROL = 160, // "dhcp-queue-control" - S_ENABLE_QUEUE = 161, // "enable-queue" - S_QUEUE_TYPE = 162, // "queue-type" - S_CAPACITY = 163, // "capacity" - S_DHCP_DDNS = 164, // "dhcp-ddns" - S_ENABLE_UPDATES = 165, // "enable-updates" - S_QUALIFYING_SUFFIX = 166, // "qualifying-suffix" - S_SERVER_IP = 167, // "server-ip" - S_SERVER_PORT = 168, // "server-port" - S_SENDER_IP = 169, // "sender-ip" - S_SENDER_PORT = 170, // "sender-port" - S_MAX_QUEUE_SIZE = 171, // "max-queue-size" - S_NCR_PROTOCOL = 172, // "ncr-protocol" - S_NCR_FORMAT = 173, // "ncr-format" - S_OVERRIDE_NO_UPDATE = 174, // "override-no-update" - S_OVERRIDE_CLIENT_UPDATE = 175, // "override-client-update" - S_REPLACE_CLIENT_NAME = 176, // "replace-client-name" - S_GENERATED_PREFIX = 177, // "generated-prefix" - S_UDP = 178, // "UDP" - S_TCP = 179, // "TCP" - S_JSON = 180, // "JSON" - S_WHEN_PRESENT = 181, // "when-present" - S_NEVER = 182, // "never" - S_ALWAYS = 183, // "always" - S_WHEN_NOT_PRESENT = 184, // "when-not-present" - S_HOSTNAME_CHAR_SET = 185, // "hostname-char-set" - S_HOSTNAME_CHAR_REPLACEMENT = 186, // "hostname-char-replacement" - S_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 187, // "early-global-reservations-lookup" - S_IP_RESERVATIONS_UNIQUE = 188, // "ip-reservations-unique" - S_RESERVATIONS_LOOKUP_FIRST = 189, // "reservations-lookup-first" - S_LOGGERS = 190, // "loggers" - S_OUTPUT_OPTIONS = 191, // "output_options" - S_OUTPUT = 192, // "output" - S_DEBUGLEVEL = 193, // "debuglevel" - S_SEVERITY = 194, // "severity" - S_FLUSH = 195, // "flush" - S_MAXSIZE = 196, // "maxsize" - S_MAXVER = 197, // "maxver" - S_PATTERN = 198, // "pattern" - S_COMPATIBILITY = 199, // "compatibility" - S_LENIENT_OPTION_PARSING = 200, // "lenient-option-parsing" - S_TOPLEVEL_JSON = 201, // TOPLEVEL_JSON - S_TOPLEVEL_DHCP6 = 202, // TOPLEVEL_DHCP6 - S_SUB_DHCP6 = 203, // SUB_DHCP6 - S_SUB_INTERFACES6 = 204, // SUB_INTERFACES6 - S_SUB_SUBNET6 = 205, // SUB_SUBNET6 - S_SUB_POOL6 = 206, // SUB_POOL6 - S_SUB_PD_POOL = 207, // SUB_PD_POOL - S_SUB_RESERVATION = 208, // SUB_RESERVATION - S_SUB_OPTION_DEFS = 209, // SUB_OPTION_DEFS - S_SUB_OPTION_DEF = 210, // SUB_OPTION_DEF - S_SUB_OPTION_DATA = 211, // SUB_OPTION_DATA - S_SUB_HOOKS_LIBRARY = 212, // SUB_HOOKS_LIBRARY - S_SUB_DHCP_DDNS = 213, // SUB_DHCP_DDNS - S_SUB_CONFIG_CONTROL = 214, // SUB_CONFIG_CONTROL - S_STRING = 215, // "constant string" - S_INTEGER = 216, // "integer" - S_FLOAT = 217, // "floating point" - S_BOOLEAN = 218, // "boolean" - S_YYACCEPT = 219, // $accept - S_start = 220, // start - S_221_1 = 221, // $@1 - S_222_2 = 222, // $@2 - S_223_3 = 223, // $@3 - S_224_4 = 224, // $@4 - S_225_5 = 225, // $@5 - S_226_6 = 226, // $@6 - S_227_7 = 227, // $@7 - S_228_8 = 228, // $@8 - S_229_9 = 229, // $@9 - S_230_10 = 230, // $@10 - S_231_11 = 231, // $@11 - S_232_12 = 232, // $@12 - S_233_13 = 233, // $@13 - S_234_14 = 234, // $@14 - S_value = 235, // value - S_sub_json = 236, // sub_json - S_map2 = 237, // map2 - S_238_15 = 238, // $@15 - S_map_value = 239, // map_value - S_map_content = 240, // map_content - S_not_empty_map = 241, // not_empty_map - S_list_generic = 242, // list_generic - S_243_16 = 243, // $@16 - S_list_content = 244, // list_content - S_not_empty_list = 245, // not_empty_list - S_list_strings = 246, // list_strings - S_247_17 = 247, // $@17 - S_list_strings_content = 248, // list_strings_content - S_not_empty_list_strings = 249, // not_empty_list_strings - S_unknown_map_entry = 250, // unknown_map_entry - S_syntax_map = 251, // syntax_map - S_252_18 = 252, // $@18 - S_global_object = 253, // global_object - S_254_19 = 254, // $@19 - S_global_object_comma = 255, // global_object_comma - S_sub_dhcp6 = 256, // sub_dhcp6 - S_257_20 = 257, // $@20 - S_global_params = 258, // global_params - S_global_param = 259, // global_param - S_data_directory = 260, // data_directory - S_261_21 = 261, // $@21 - S_preferred_lifetime = 262, // preferred_lifetime - S_min_preferred_lifetime = 263, // min_preferred_lifetime - S_max_preferred_lifetime = 264, // max_preferred_lifetime - S_valid_lifetime = 265, // valid_lifetime - S_min_valid_lifetime = 266, // min_valid_lifetime - S_max_valid_lifetime = 267, // max_valid_lifetime - S_renew_timer = 268, // renew_timer - S_rebind_timer = 269, // rebind_timer - S_calculate_tee_times = 270, // calculate_tee_times - S_t1_percent = 271, // t1_percent - S_t2_percent = 272, // t2_percent - S_cache_threshold = 273, // cache_threshold - S_cache_max_age = 274, // cache_max_age - S_decline_probation_period = 275, // decline_probation_period - S_ddns_send_updates = 276, // ddns_send_updates - S_ddns_override_no_update = 277, // ddns_override_no_update - S_ddns_override_client_update = 278, // ddns_override_client_update - S_ddns_replace_client_name = 279, // ddns_replace_client_name - S_280_22 = 280, // $@22 - S_ddns_replace_client_name_value = 281, // ddns_replace_client_name_value - S_ddns_generated_prefix = 282, // ddns_generated_prefix - S_283_23 = 283, // $@23 - S_ddns_qualifying_suffix = 284, // ddns_qualifying_suffix - S_285_24 = 285, // $@24 - S_ddns_update_on_renew = 286, // ddns_update_on_renew - S_ddns_use_conflict_resolution = 287, // ddns_use_conflict_resolution - S_hostname_char_set = 288, // hostname_char_set - S_289_25 = 289, // $@25 - S_hostname_char_replacement = 290, // hostname_char_replacement - S_291_26 = 291, // $@26 - S_store_extended_info = 292, // store_extended_info - S_statistic_default_sample_count = 293, // statistic_default_sample_count - S_statistic_default_sample_age = 294, // statistic_default_sample_age - S_server_tag = 295, // server_tag - S_296_27 = 296, // $@27 - S_parked_packet_limit = 297, // parked_packet_limit - S_early_global_reservations_lookup = 298, // early_global_reservations_lookup - S_ip_reservations_unique = 299, // ip_reservations_unique - S_reservations_lookup_first = 300, // reservations_lookup_first - S_interfaces_config = 301, // interfaces_config - S_302_28 = 302, // $@28 - S_sub_interfaces6 = 303, // sub_interfaces6 - S_304_29 = 304, // $@29 - S_interfaces_config_params = 305, // interfaces_config_params - S_interfaces_config_param = 306, // interfaces_config_param - S_interfaces_list = 307, // interfaces_list - S_308_30 = 308, // $@30 - S_re_detect = 309, // re_detect - S_lease_database = 310, // lease_database - S_311_31 = 311, // $@31 - S_hosts_database = 312, // hosts_database - S_313_32 = 313, // $@32 - S_hosts_databases = 314, // hosts_databases - S_315_33 = 315, // $@33 - S_database_list = 316, // database_list - S_not_empty_database_list = 317, // not_empty_database_list - S_database = 318, // database - S_319_34 = 319, // $@34 - S_database_map_params = 320, // database_map_params - S_database_map_param = 321, // database_map_param - S_database_type = 322, // database_type - S_323_35 = 323, // $@35 - S_db_type = 324, // db_type - S_user = 325, // user - S_326_36 = 326, // $@36 - S_password = 327, // password - S_328_37 = 328, // $@37 - S_host = 329, // host - S_330_38 = 330, // $@38 - S_port = 331, // port - S_name = 332, // name - S_333_39 = 333, // $@39 - S_persist = 334, // persist - S_lfc_interval = 335, // lfc_interval - S_readonly = 336, // readonly - S_connect_timeout = 337, // connect_timeout - S_reconnect_wait_time = 338, // reconnect_wait_time - S_on_fail = 339, // on_fail - S_340_40 = 340, // $@40 - S_on_fail_mode = 341, // on_fail_mode - S_max_row_errors = 342, // max_row_errors - S_request_timeout = 343, // request_timeout - S_tcp_keepalive = 344, // tcp_keepalive - S_tcp_nodelay = 345, // tcp_nodelay - S_contact_points = 346, // contact_points - S_347_41 = 347, // $@41 - S_max_reconnect_tries = 348, // max_reconnect_tries - S_keyspace = 349, // keyspace - S_350_42 = 350, // $@42 - S_consistency = 351, // consistency - S_352_43 = 352, // $@43 - S_serial_consistency = 353, // serial_consistency - S_354_44 = 354, // $@44 - S_trust_anchor = 355, // trust_anchor - S_356_45 = 356, // $@45 - S_cert_file = 357, // cert_file - S_358_46 = 358, // $@46 - S_key_file = 359, // key_file - S_360_47 = 360, // $@47 - S_cipher_list = 361, // cipher_list - S_362_48 = 362, // $@48 - S_sanity_checks = 363, // sanity_checks - S_364_49 = 364, // $@49 - S_sanity_checks_params = 365, // sanity_checks_params - S_sanity_checks_param = 366, // sanity_checks_param - S_lease_checks = 367, // lease_checks - S_368_50 = 368, // $@50 - S_mac_sources = 369, // mac_sources - S_370_51 = 370, // $@51 - S_mac_sources_list = 371, // mac_sources_list - S_mac_sources_value = 372, // mac_sources_value - S_duid_id = 373, // duid_id - S_string_id = 374, // string_id - S_host_reservation_identifiers = 375, // host_reservation_identifiers - S_376_52 = 376, // $@52 - S_host_reservation_identifiers_list = 377, // host_reservation_identifiers_list - S_host_reservation_identifier = 378, // host_reservation_identifier - S_hw_address_id = 379, // hw_address_id - S_flex_id = 380, // flex_id - S_relay_supplied_options = 381, // relay_supplied_options - S_382_53 = 382, // $@53 - S_dhcp_multi_threading = 383, // dhcp_multi_threading - S_384_54 = 384, // $@54 - S_multi_threading_params = 385, // multi_threading_params - S_multi_threading_param = 386, // multi_threading_param - S_enable_multi_threading = 387, // enable_multi_threading - S_thread_pool_size = 388, // thread_pool_size - S_packet_queue_size = 389, // packet_queue_size - S_hooks_libraries = 390, // hooks_libraries - S_391_55 = 391, // $@55 - S_hooks_libraries_list = 392, // hooks_libraries_list - S_not_empty_hooks_libraries_list = 393, // not_empty_hooks_libraries_list - S_hooks_library = 394, // hooks_library - S_395_56 = 395, // $@56 - S_sub_hooks_library = 396, // sub_hooks_library - S_397_57 = 397, // $@57 - S_hooks_params = 398, // hooks_params - S_hooks_param = 399, // hooks_param - S_library = 400, // library - S_401_58 = 401, // $@58 - S_parameters = 402, // parameters - S_403_59 = 403, // $@59 - S_expired_leases_processing = 404, // expired_leases_processing - S_405_60 = 405, // $@60 - S_expired_leases_params = 406, // expired_leases_params - S_expired_leases_param = 407, // expired_leases_param - S_reclaim_timer_wait_time = 408, // reclaim_timer_wait_time - S_flush_reclaimed_timer_wait_time = 409, // flush_reclaimed_timer_wait_time - S_hold_reclaimed_time = 410, // hold_reclaimed_time - S_max_reclaim_leases = 411, // max_reclaim_leases - S_max_reclaim_time = 412, // max_reclaim_time - S_unwarned_reclaim_cycles = 413, // unwarned_reclaim_cycles - S_subnet6_list = 414, // subnet6_list - S_415_61 = 415, // $@61 - S_subnet6_list_content = 416, // subnet6_list_content - S_not_empty_subnet6_list = 417, // not_empty_subnet6_list - S_subnet6 = 418, // subnet6 - S_419_62 = 419, // $@62 - S_sub_subnet6 = 420, // sub_subnet6 - S_421_63 = 421, // $@63 - S_subnet6_params = 422, // subnet6_params - S_subnet6_param = 423, // subnet6_param - S_subnet = 424, // subnet - S_425_64 = 425, // $@64 - S_interface = 426, // interface - S_427_65 = 427, // $@65 - S_interface_id = 428, // interface_id - S_429_66 = 429, // $@66 - S_client_class = 430, // client_class - S_431_67 = 431, // $@67 - S_require_client_classes = 432, // require_client_classes - S_433_68 = 433, // $@68 - S_reservations_global = 434, // reservations_global - S_reservations_in_subnet = 435, // reservations_in_subnet - S_reservations_out_of_pool = 436, // reservations_out_of_pool - S_reservation_mode = 437, // reservation_mode - S_438_69 = 438, // $@69 - S_hr_mode = 439, // hr_mode - S_id = 440, // id - S_rapid_commit = 441, // rapid_commit - S_shared_networks = 442, // shared_networks - S_443_70 = 443, // $@70 - S_shared_networks_content = 444, // shared_networks_content - S_shared_networks_list = 445, // shared_networks_list - S_shared_network = 446, // shared_network - S_447_71 = 447, // $@71 - S_shared_network_params = 448, // shared_network_params - S_shared_network_param = 449, // shared_network_param - S_option_def_list = 450, // option_def_list - S_451_72 = 451, // $@72 - S_sub_option_def_list = 452, // sub_option_def_list - S_453_73 = 453, // $@73 - S_option_def_list_content = 454, // option_def_list_content - S_not_empty_option_def_list = 455, // not_empty_option_def_list - S_option_def_entry = 456, // option_def_entry - S_457_74 = 457, // $@74 - S_sub_option_def = 458, // sub_option_def - S_459_75 = 459, // $@75 - S_option_def_params = 460, // option_def_params - S_not_empty_option_def_params = 461, // not_empty_option_def_params - S_option_def_param = 462, // option_def_param - S_option_def_name = 463, // option_def_name - S_code = 464, // code - S_option_def_code = 465, // option_def_code - S_option_def_type = 466, // option_def_type - S_467_76 = 467, // $@76 - S_option_def_record_types = 468, // option_def_record_types - S_469_77 = 469, // $@77 - S_space = 470, // space - S_471_78 = 471, // $@78 - S_option_def_space = 472, // option_def_space - S_option_def_encapsulate = 473, // option_def_encapsulate - S_474_79 = 474, // $@79 - S_option_def_array = 475, // option_def_array - S_option_data_list = 476, // option_data_list - S_477_80 = 477, // $@80 - S_option_data_list_content = 478, // option_data_list_content - S_not_empty_option_data_list = 479, // not_empty_option_data_list - S_option_data_entry = 480, // option_data_entry - S_481_81 = 481, // $@81 - S_sub_option_data = 482, // sub_option_data - S_483_82 = 483, // $@82 - S_option_data_params = 484, // option_data_params - S_not_empty_option_data_params = 485, // not_empty_option_data_params - S_option_data_param = 486, // option_data_param - S_option_data_name = 487, // option_data_name - S_option_data_data = 488, // option_data_data - S_489_83 = 489, // $@83 - S_option_data_code = 490, // option_data_code - S_option_data_space = 491, // option_data_space - S_option_data_csv_format = 492, // option_data_csv_format - S_option_data_always_send = 493, // option_data_always_send - S_pools_list = 494, // pools_list - S_495_84 = 495, // $@84 - S_pools_list_content = 496, // pools_list_content - S_not_empty_pools_list = 497, // not_empty_pools_list - S_pool_list_entry = 498, // pool_list_entry - S_499_85 = 499, // $@85 - S_sub_pool6 = 500, // sub_pool6 - S_501_86 = 501, // $@86 - S_pool_params = 502, // pool_params - S_pool_param = 503, // pool_param - S_pool_entry = 504, // pool_entry - S_505_87 = 505, // $@87 - S_user_context = 506, // user_context - S_507_88 = 507, // $@88 - S_comment = 508, // comment - S_509_89 = 509, // $@89 - S_pd_pools_list = 510, // pd_pools_list - S_511_90 = 511, // $@90 - S_pd_pools_list_content = 512, // pd_pools_list_content - S_not_empty_pd_pools_list = 513, // not_empty_pd_pools_list - S_pd_pool_entry = 514, // pd_pool_entry - S_515_91 = 515, // $@91 - S_sub_pd_pool = 516, // sub_pd_pool - S_517_92 = 517, // $@92 - S_pd_pool_params = 518, // pd_pool_params - S_pd_pool_param = 519, // pd_pool_param - S_pd_prefix = 520, // pd_prefix - S_521_93 = 521, // $@93 - S_pd_prefix_len = 522, // pd_prefix_len - S_excluded_prefix = 523, // excluded_prefix - S_524_94 = 524, // $@94 - S_excluded_prefix_len = 525, // excluded_prefix_len - S_pd_delegated_len = 526, // pd_delegated_len - S_reservations = 527, // reservations - S_528_95 = 528, // $@95 - S_reservations_list = 529, // reservations_list - S_not_empty_reservations_list = 530, // not_empty_reservations_list - S_reservation = 531, // reservation - S_532_96 = 532, // $@96 - S_sub_reservation = 533, // sub_reservation - S_534_97 = 534, // $@97 - S_reservation_params = 535, // reservation_params - S_not_empty_reservation_params = 536, // not_empty_reservation_params - S_reservation_param = 537, // reservation_param - S_ip_addresses = 538, // ip_addresses - S_539_98 = 539, // $@98 - S_prefixes = 540, // prefixes - S_541_99 = 541, // $@99 - S_duid = 542, // duid - S_543_100 = 543, // $@100 - S_hw_address = 544, // hw_address - S_545_101 = 545, // $@101 - S_hostname = 546, // hostname - S_547_102 = 547, // $@102 - S_flex_id_value = 548, // flex_id_value - S_549_103 = 549, // $@103 - S_reservation_client_classes = 550, // reservation_client_classes - S_551_104 = 551, // $@104 - S_relay = 552, // relay - S_553_105 = 553, // $@105 - S_relay_map = 554, // relay_map - S_ip_address = 555, // ip_address - S_556_106 = 556, // $@106 - S_client_classes = 557, // client_classes - S_558_107 = 558, // $@107 - S_client_classes_list = 559, // client_classes_list - S_client_class_entry = 560, // client_class_entry - S_561_108 = 561, // $@108 - S_client_class_params = 562, // client_class_params - S_not_empty_client_class_params = 563, // not_empty_client_class_params - S_client_class_param = 564, // client_class_param - S_client_class_name = 565, // client_class_name - S_client_class_test = 566, // client_class_test - S_567_109 = 567, // $@109 - S_only_if_required = 568, // only_if_required - S_server_id = 569, // server_id - S_570_110 = 570, // $@110 - S_server_id_params = 571, // server_id_params - S_server_id_param = 572, // server_id_param - S_server_id_type = 573, // server_id_type - S_574_111 = 574, // $@111 - S_duid_type = 575, // duid_type - S_htype = 576, // htype - S_identifier = 577, // identifier - S_578_112 = 578, // $@112 - S_time = 579, // time - S_enterprise_id = 580, // enterprise_id - S_dhcp4o6_port = 581, // dhcp4o6_port - S_control_socket = 582, // control_socket - S_583_113 = 583, // $@113 - S_control_socket_params = 584, // control_socket_params - S_control_socket_param = 585, // control_socket_param - S_socket_type = 586, // socket_type - S_587_114 = 587, // $@114 - S_socket_name = 588, // socket_name - S_589_115 = 589, // $@115 - S_dhcp_queue_control = 590, // dhcp_queue_control - S_591_116 = 591, // $@116 - S_queue_control_params = 592, // queue_control_params - S_queue_control_param = 593, // queue_control_param - S_enable_queue = 594, // enable_queue - S_queue_type = 595, // queue_type - S_596_117 = 596, // $@117 - S_capacity = 597, // capacity - S_arbitrary_map_entry = 598, // arbitrary_map_entry - S_599_118 = 599, // $@118 - S_dhcp_ddns = 600, // dhcp_ddns - S_601_119 = 601, // $@119 - S_sub_dhcp_ddns = 602, // sub_dhcp_ddns - S_603_120 = 603, // $@120 - S_dhcp_ddns_params = 604, // dhcp_ddns_params - S_dhcp_ddns_param = 605, // dhcp_ddns_param - S_enable_updates = 606, // enable_updates - S_dep_qualifying_suffix = 607, // dep_qualifying_suffix - S_608_121 = 608, // $@121 - S_server_ip = 609, // server_ip - S_610_122 = 610, // $@122 - S_server_port = 611, // server_port - S_sender_ip = 612, // sender_ip - S_613_123 = 613, // $@123 - S_sender_port = 614, // sender_port - S_max_queue_size = 615, // max_queue_size - S_ncr_protocol = 616, // ncr_protocol - S_617_124 = 617, // $@124 - S_ncr_protocol_value = 618, // ncr_protocol_value - S_ncr_format = 619, // ncr_format - S_620_125 = 620, // $@125 - S_dep_override_no_update = 621, // dep_override_no_update - S_dep_override_client_update = 622, // dep_override_client_update - S_dep_replace_client_name = 623, // dep_replace_client_name - S_624_126 = 624, // $@126 - S_dep_generated_prefix = 625, // dep_generated_prefix - S_626_127 = 626, // $@127 - S_dep_hostname_char_set = 627, // dep_hostname_char_set - S_628_128 = 628, // $@128 - S_dep_hostname_char_replacement = 629, // dep_hostname_char_replacement - S_630_129 = 630, // $@129 - S_config_control = 631, // config_control - S_632_130 = 632, // $@130 - S_sub_config_control = 633, // sub_config_control - S_634_131 = 634, // $@131 - S_config_control_params = 635, // config_control_params - S_config_control_param = 636, // config_control_param - S_config_databases = 637, // config_databases - S_638_132 = 638, // $@132 - S_config_fetch_wait_time = 639, // config_fetch_wait_time - S_loggers = 640, // loggers - S_641_133 = 641, // $@133 - S_loggers_entries = 642, // loggers_entries - S_logger_entry = 643, // logger_entry - S_644_134 = 644, // $@134 - S_logger_params = 645, // logger_params - S_logger_param = 646, // logger_param - S_debuglevel = 647, // debuglevel - S_severity = 648, // severity - S_649_135 = 649, // $@135 - S_output_options_list = 650, // output_options_list - S_651_136 = 651, // $@136 - S_output_options_list_content = 652, // output_options_list_content - S_output_entry = 653, // output_entry - S_654_137 = 654, // $@137 - S_output_params_list = 655, // output_params_list - S_output_params = 656, // output_params - S_output = 657, // output - S_658_138 = 658, // $@138 - S_flush = 659, // flush - S_maxsize = 660, // maxsize - S_maxver = 661, // maxver - S_pattern = 662, // pattern - S_663_139 = 663, // $@139 - S_compatibility = 664, // compatibility - S_665_140 = 665, // $@140 - S_compatibility_params = 666, // compatibility_params - S_compatibility_param = 667, // compatibility_param - S_lenient_option_parsing = 668 // lenient_option_parsing - }; - }; + /// Symbol type: an internal symbol number. + typedef int symbol_number_type; - /// (Internal) symbol kind. - typedef symbol_kind::symbol_kind_type symbol_kind_type; + /// The symbol type number to denote an empty symbol. + enum { empty_symbol = -2 }; - /// The number of tokens. - static const symbol_kind_type YYNTOKENS = symbol_kind::YYNTOKENS; + /// Internal symbol number for tokens (subsumed by symbol_number_type). + typedef unsigned char token_number_type; /// A complete symbol. /// - /// Expects its Base type to provide access to the symbol kind - /// via kind (). + /// Expects its Base type to provide access to the symbol type + /// via type_get (). /// /// Provide access to semantic value and location. template <typename Base> @@ -1423,58 +708,20 @@ namespace isc { namespace dhcp { typedef Base super_type; /// Default constructor. - basic_symbol () YY_NOEXCEPT + basic_symbol () : value () , location () {} #if 201103L <= YY_CPLUSPLUS /// Move constructor. - basic_symbol (basic_symbol&& that) - : Base (std::move (that)) - , value () - , location (std::move (that.location)) - { - switch (this->kind ()) - { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_on_fail_mode: // on_fail_mode - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_duid_type: // duid_type - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value - value.move< ElementPtr > (std::move (that.value)); - break; - - case symbol_kind::S_BOOLEAN: // "boolean" - value.move< bool > (std::move (that.value)); - break; - - case symbol_kind::S_FLOAT: // "floating point" - value.move< double > (std::move (that.value)); - break; - - case symbol_kind::S_INTEGER: // "integer" - value.move< int64_t > (std::move (that.value)); - break; - - case symbol_kind::S_STRING: // "constant string" - value.move< std::string > (std::move (that.value)); - break; - - default: - break; - } - - } + basic_symbol (basic_symbol&& that); #endif /// Copy constructor. basic_symbol (const basic_symbol& that); - /// Constructors for typed symbols. + /// 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) @@ -1486,7 +733,6 @@ namespace isc { namespace dhcp { , location (l) {} #endif - #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, ElementPtr&& v, location_type&& l) : Base (t) @@ -1500,7 +746,6 @@ namespace isc { namespace dhcp { , location (l) {} #endif - #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, bool&& v, location_type&& l) : Base (t) @@ -1514,7 +759,6 @@ namespace isc { namespace dhcp { , location (l) {} #endif - #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, double&& v, location_type&& l) : Base (t) @@ -1528,7 +772,6 @@ namespace isc { namespace dhcp { , location (l) {} #endif - #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, int64_t&& v, location_type&& l) : Base (t) @@ -1542,7 +785,6 @@ namespace isc { namespace dhcp { , location (l) {} #endif - #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, std::string&& v, location_type&& l) : Base (t) @@ -1563,48 +805,46 @@ namespace isc { namespace dhcp { clear (); } - - /// Destroy contents, and record that is empty. - void clear () YY_NOEXCEPT + void clear () { // User destructor. - symbol_kind_type yykind = this->kind (); + symbol_number_type yytype = this->type_get (); basic_symbol<Base>& yysym = *this; (void) yysym; - switch (yykind) + switch (yytype) { default: break; } - // Value type destructor. -switch (yykind) + // Type destructor. +switch (yytype) { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_on_fail_mode: // on_fail_mode - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_duid_type: // duid_type - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value + case 227: // value + case 231: // map_value + case 273: // ddns_replace_client_name_value + case 316: // db_type + case 333: // on_fail_mode + case 420: // hr_mode + case 556: // duid_type + case 599: // ncr_protocol_value value.template destroy< ElementPtr > (); break; - case symbol_kind::S_BOOLEAN: // "boolean" + case 210: // "boolean" value.template destroy< bool > (); break; - case symbol_kind::S_FLOAT: // "floating point" + case 209: // "floating point" value.template destroy< double > (); break; - case symbol_kind::S_INTEGER: // "integer" + case 208: // "integer" value.template destroy< int64_t > (); break; - case symbol_kind::S_STRING: // "constant string" + case 207: // "constant string" value.template destroy< std::string > (); break; @@ -1615,15 +855,6 @@ switch (yykind) Base::clear (); } - /// The user-facing name of this symbol. - std::string name () const YY_NOEXCEPT - { - return Dhcp6Parser::symbol_name (this->kind ()); - } - - /// Backward compatibility (Bison 3.6). - symbol_kind_type type_get () const YY_NOEXCEPT; - /// Whether empty. bool empty () const YY_NOEXCEPT; @@ -1631,7 +862,7 @@ switch (yykind) void move (basic_symbol& s); /// The semantic value. - value_type value; + semantic_type value; /// The location. location_type location; @@ -1644,132 +875,122 @@ switch (yykind) }; /// Type access provider for token (enum) based symbols. - struct by_kind + struct by_type { - /// The symbol kind as needed by the constructor. - typedef token_kind_type kind_type; - /// Default constructor. - by_kind () YY_NOEXCEPT; + by_type (); #if 201103L <= YY_CPLUSPLUS /// Move constructor. - by_kind (by_kind&& that) YY_NOEXCEPT; + by_type (by_type&& that); #endif /// Copy constructor. - by_kind (const by_kind& that) YY_NOEXCEPT; - - /// Constructor from (external) token numbers. - by_kind (kind_type t) YY_NOEXCEPT; + by_type (const by_type& that); + /// The symbol type as needed by the constructor. + typedef token_type kind_type; + /// Constructor from (external) token numbers. + by_type (kind_type t); /// Record that this symbol is empty. - void clear () YY_NOEXCEPT; + void clear (); - /// Steal the symbol kind from \a that. - void move (by_kind& that); + /// Steal the symbol type from \a that. + void move (by_type& that); /// The (internal) type number (corresponding to \a type). /// \a empty when empty. - symbol_kind_type kind () const YY_NOEXCEPT; + symbol_number_type type_get () const YY_NOEXCEPT; - /// Backward compatibility (Bison 3.6). - symbol_kind_type type_get () const YY_NOEXCEPT; - - /// The symbol kind. - /// \a S_YYEMPTY when empty. - symbol_kind_type kind_; + /// The symbol type. + /// \a empty_symbol when empty. + /// An int, not token_number_type, to be able to store empty_symbol. + int type; }; - /// Backward compatibility for a private implementation detail (Bison 3.6). - typedef by_kind by_type; - /// "External" symbols: returned by the scanner. - struct symbol_type : basic_symbol<by_kind> + struct symbol_type : basic_symbol<by_type> { /// Superclass. - typedef basic_symbol<by_kind> super_type; + typedef basic_symbol<by_type> super_type; /// Empty symbol. - symbol_type () YY_NOEXCEPT {} + 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_kind_type (tok), std::move (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_DHCP6 || tok == token::TOKEN_DATA_DIRECTORY || 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_RE_DETECT || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_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_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_ON_FAIL || tok == token::TOKEN_STOP_RETRY_EXIT || tok == token::TOKEN_SERVE_RETRY_EXIT || tok == token::TOKEN_SERVE_RETRY_CONTINUE || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_TRUST_ANCHOR || tok == token::TOKEN_CERT_FILE || tok == token::TOKEN_KEY_FILE || tok == token::TOKEN_CIPHER_LIST || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_MIN_PREFERRED_LIFETIME || tok == token::TOKEN_MAX_PREFERRED_LIFETIME || 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_CACHE_THRESHOLD || tok == token::TOKEN_CACHE_MAX_AGE || 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_DDNS_UPDATE_ON_RENEW || tok == token::TOKEN_DDNS_USE_CONFLICT_RESOLUTION || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET6 || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_PARKED_PACKET_LIMIT || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_RESERVATIONS_GLOBAL || tok == token::TOKEN_RESERVATIONS_IN_SUBNET || tok == token::TOKEN_RESERVATIONS_OUT_OF_POOL || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_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_UDP || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP || tok == token::TOKEN_IP_RESERVATIONS_UNIQUE || tok == token::TOKEN_RESERVATIONS_LOOKUP_FIRST || 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_COMPATIBILITY || tok == token::TOKEN_LENIENT_OPTION_PARSING || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_CONFIG_CONTROL); + } #else symbol_type (int tok, const location_type& l) - : super_type (token_kind_type (tok), l) -#endif + : super_type(token_type (tok), l) { -#if !defined _MSC_VER || defined __clang__ - PARSER6__ASSERT (tok == token::TOKEN_END - || (token::TOKEN_PARSER6_error <= tok && tok <= token::TOKEN_SUB_CONFIG_CONTROL)); -#endif + 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_DHCP6 || tok == token::TOKEN_DATA_DIRECTORY || 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_RE_DETECT || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_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_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_ON_FAIL || tok == token::TOKEN_STOP_RETRY_EXIT || tok == token::TOKEN_SERVE_RETRY_EXIT || tok == token::TOKEN_SERVE_RETRY_CONTINUE || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_TRUST_ANCHOR || tok == token::TOKEN_CERT_FILE || tok == token::TOKEN_KEY_FILE || tok == token::TOKEN_CIPHER_LIST || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_MIN_PREFERRED_LIFETIME || tok == token::TOKEN_MAX_PREFERRED_LIFETIME || 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_CACHE_THRESHOLD || tok == token::TOKEN_CACHE_MAX_AGE || 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_DDNS_UPDATE_ON_RENEW || tok == token::TOKEN_DDNS_USE_CONFLICT_RESOLUTION || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET6 || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_PARKED_PACKET_LIMIT || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_RESERVATIONS_GLOBAL || tok == token::TOKEN_RESERVATIONS_IN_SUBNET || tok == token::TOKEN_RESERVATIONS_OUT_OF_POOL || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_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_UDP || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP || tok == token::TOKEN_IP_RESERVATIONS_UNIQUE || tok == token::TOKEN_RESERVATIONS_LOOKUP_FIRST || 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_COMPATIBILITY || tok == token::TOKEN_LENIENT_OPTION_PARSING || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_CONFIG_CONTROL); } +#endif #if 201103L <= YY_CPLUSPLUS symbol_type (int tok, bool v, location_type l) - : super_type (token_kind_type (tok), std::move (v), std::move (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_kind_type (tok), v, l) -#endif + : super_type(token_type (tok), v, l) { -#if !defined _MSC_VER || defined __clang__ - PARSER6__ASSERT (tok == token::TOKEN_BOOLEAN); -#endif + YY_ASSERT (tok == token::TOKEN_BOOLEAN); } +#endif #if 201103L <= YY_CPLUSPLUS symbol_type (int tok, double v, location_type l) - : super_type (token_kind_type (tok), std::move (v), std::move (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_kind_type (tok), v, l) -#endif + : super_type(token_type (tok), v, l) { -#if !defined _MSC_VER || defined __clang__ - PARSER6__ASSERT (tok == token::TOKEN_FLOAT); -#endif + YY_ASSERT (tok == token::TOKEN_FLOAT); } +#endif #if 201103L <= YY_CPLUSPLUS symbol_type (int tok, int64_t v, location_type l) - : super_type (token_kind_type (tok), std::move (v), std::move (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_kind_type (tok), v, l) -#endif + : super_type(token_type (tok), v, l) { -#if !defined _MSC_VER || defined __clang__ - PARSER6__ASSERT (tok == token::TOKEN_INTEGER); -#endif + YY_ASSERT (tok == token::TOKEN_INTEGER); } +#endif #if 201103L <= YY_CPLUSPLUS symbol_type (int tok, std::string v, location_type l) - : super_type (token_kind_type (tok), std::move (v), std::move (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_kind_type (tok), v, l) -#endif + : super_type(token_type (tok), v, l) { -#if !defined _MSC_VER || defined __clang__ - PARSER6__ASSERT (tok == token::TOKEN_STRING); -#endif + YY_ASSERT (tok == token::TOKEN_STRING); } +#endif }; /// Build a parser object. Dhcp6Parser (isc::dhcp::Parser6Context& ctx_yyarg); virtual ~Dhcp6Parser (); -#if 201103L <= YY_CPLUSPLUS - /// Non copyable. - Dhcp6Parser (const Dhcp6Parser&) = delete; - /// Non copyable. - Dhcp6Parser& operator= (const Dhcp6Parser&) = delete; -#endif - /// Parse. An alias for parse (). /// \returns 0 iff parsing succeeded. int operator() (); @@ -1800,11 +1021,7 @@ switch (yykind) /// Report a syntax error. void error (const syntax_error& err); - /// The user-facing name of the symbol whose (internal) number is - /// YYSYMBOL. No bounds checking. - static std::string symbol_name (symbol_kind_type yysymbol); - - // Implementation of make_symbol for each token kind. + // Implementation of make_symbol for each symbol type. #if 201103L <= YY_CPLUSPLUS static symbol_type @@ -1823,36 +1040,6 @@ switch (yykind) #if 201103L <= YY_CPLUSPLUS static symbol_type - make_PARSER6_error (location_type l) - { - return symbol_type (token::TOKEN_PARSER6_error, std::move (l)); - } -#else - static - symbol_type - make_PARSER6_error (const location_type& l) - { - return symbol_type (token::TOKEN_PARSER6_error, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PARSER6_UNDEF (location_type l) - { - return symbol_type (token::TOKEN_PARSER6_UNDEF, std::move (l)); - } -#else - static - symbol_type - make_PARSER6_UNDEF (const location_type& l) - { - return symbol_type (token::TOKEN_PARSER6_UNDEF, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type make_COMMA (location_type l) { return symbol_type (token::TOKEN_COMMA, std::move (l)); @@ -2183,21 +1370,6 @@ switch (yykind) #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)); @@ -2318,21 +1490,6 @@ switch (yykind) #if 201103L <= YY_CPLUSPLUS static symbol_type - make_CONTACT_POINTS (location_type l) - { - return symbol_type (token::TOKEN_CONTACT_POINTS, std::move (l)); - } -#else - static - symbol_type - make_CONTACT_POINTS (const location_type& l) - { - return symbol_type (token::TOKEN_CONTACT_POINTS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type make_MAX_RECONNECT_TRIES (location_type l) { return symbol_type (token::TOKEN_MAX_RECONNECT_TRIES, std::move (l)); @@ -2423,96 +1580,6 @@ switch (yykind) #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_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)); @@ -5092,43 +4159,20 @@ switch (yykind) #endif - class context - { - public: - context (const Dhcp6Parser& yyparser, const symbol_type& yyla); - const symbol_type& lookahead () const YY_NOEXCEPT { return yyla_; } - symbol_kind_type token () const YY_NOEXCEPT { return yyla_.kind (); } - const location_type& location () const YY_NOEXCEPT { return yyla_.location; } - - /// Put in YYARG at most YYARGN of the expected tokens, and return the - /// number of tokens stored in YYARG. If YYARG is null, return the - /// number of expected tokens (guaranteed to be less than YYNTOKENS). - int expected_tokens (symbol_kind_type yyarg[], int yyargn) const; - - private: - const Dhcp6Parser& yyparser_; - const symbol_type& yyla_; - }; - private: -#if YY_CPLUSPLUS < 201103L - /// Non copyable. + /// This class is not copyable. Dhcp6Parser (const Dhcp6Parser&); - /// Non copyable. Dhcp6Parser& operator= (const Dhcp6Parser&); -#endif - /// Stored state numbers (used for stacks). typedef short state_type; - /// The arguments of the error message. - int yy_syntax_error_arguments_ (const context& yyctx, - symbol_kind_type yyarg[], int yyargn) const; - /// Generate an error message. - /// \param yyctx the context in which the error occurred. - virtual std::string yysyntax_error_ (const context& yyctx) const; + /// \param yystate the state where the error occurred. + /// \param yyla the lookahead token. + virtual std::string yysyntax_error_ (state_type yystate, + const symbol_type& yyla) const; + /// Compute post-reduction state. /// \param yystate the current state /// \param yysym the nonterminal to push on the stack @@ -5136,26 +4180,19 @@ switch (yykind) /// Whether the given \c yypact_ value indicates a defaulted state. /// \param yyvalue the value to check - static bool yy_pact_value_is_default_ (int yyvalue) YY_NOEXCEPT; + static bool yy_pact_value_is_default_ (int yyvalue); /// Whether the given \c yytable_ value indicates a syntax error. /// \param yyvalue the value to check - static bool yy_table_value_is_error_ (int yyvalue) YY_NOEXCEPT; + static bool yy_table_value_is_error_ (int yyvalue); static const short yypact_ninf_; static const signed char yytable_ninf_; - /// Convert a scanner token kind \a t to a symbol kind. - /// In theory \a t should be a token_kind_type, but character literals - /// are valid, yet not members of the token_kind_type enum. - static symbol_kind_type yytranslate_ (int t) YY_NOEXCEPT; - - /// Convert the symbol name \a n to a form suitable for a diagnostic. - static std::string yytnamerr_ (const char *yystr); - - /// For a symbol, its name in clear. - static const char* const yytname_[]; - + /// Convert a scanner token number \a t to a symbol number. + /// 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 @@ -5180,31 +4217,37 @@ switch (yykind) static const short yycheck_[]; - // YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of - // state STATE-NUM. + // YYSTOS[STATE-NUM] -- The (internal number of the) accessing + // symbol of state STATE-NUM. static const short yystos_[]; - // YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. + // YYR1[YYN] -- Symbol number of symbol that rule YYN derives. static const short yyr1_[]; - // YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. + // 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. + static std::string yytnamerr_ (const char *n); + + + /// For a symbol, its name in clear. + static const char* const yytname_[]; #if PARSER6_DEBUG // YYRLINE[YYN] -- Source line where rule number YYN was defined. static const short yyrline_[]; /// Report on the debug stream that the rule \a r is going to be reduced. - virtual void yy_reduce_print_ (int r) const; + virtual void yy_reduce_print_ (int r); /// Print the state stack on the debug stream. - virtual void yy_stack_print_ () const; + virtual void yystack_print_ (); /// Debugging level. int yydebug_; /// Debug stream. std::ostream* yycdebug_; - /// \brief Display a symbol kind, value and location. + /// \brief Display a symbol type, value and location. /// \param yyo The output stream. /// \param yysym The symbol. template <typename Base> @@ -5225,7 +4268,7 @@ switch (yykind) /// Default constructor. by_state () YY_NOEXCEPT; - /// The symbol kind as needed by the constructor. + /// The symbol type as needed by the constructor. typedef state_type kind_type; /// Constructor. @@ -5237,12 +4280,12 @@ switch (yykind) /// Record that this symbol is empty. void clear () YY_NOEXCEPT; - /// Steal the symbol kind from \a that. + /// Steal the symbol type from \a that. void move (by_state& that); - /// The symbol kind (corresponding to \a state). - /// \a symbol_kind::S_YYEMPTY when empty. - symbol_kind_type kind () const YY_NOEXCEPT; + /// The (internal) type number (corresponding to \a state). + /// \a empty_symbol when empty. + symbol_number_type type_get () const YY_NOEXCEPT; /// The state number used to denote an empty symbol. /// We use the initial state, as it does not have a value. @@ -5281,22 +4324,15 @@ switch (yykind) { public: // Hide our reversed order. - typedef typename S::iterator iterator; - typedef typename S::const_iterator const_iterator; + 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) YY_NOEXCEPT + stack (size_type n = 200) : seq_ (n) {} -#if 201103L <= YY_CPLUSPLUS - /// Non copyable. - stack (const stack&) = delete; - /// Non copyable. - stack& operator= (const stack&) = delete; -#endif - /// Random access. /// /// Index 0 returns the topmost element. @@ -5347,25 +4383,31 @@ switch (yykind) 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_.begin (); + return seq_.rbegin (); } /// Bottom of the stack. const_iterator end () const YY_NOEXCEPT { - return seq_.end (); + return seq_.rend (); } /// Present a slice of the top of a stack. class slice { public: - slice (const stack& stack, index_type range) YY_NOEXCEPT + slice (const stack& stack, index_type range) : stack_ (stack) , range_ (range) {} @@ -5382,12 +4424,8 @@ switch (yykind) }; private: -#if YY_CPLUSPLUS < 201103L - /// Non copyable. stack (const stack&); - /// Non copyable. stack& operator= (const stack&); -#endif /// The wrapped container. S seq_; }; @@ -5415,30 +4453,35 @@ switch (yykind) 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) YY_NOEXCEPT; + void yypop_ (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 { - yylast_ = 1348, ///< Last index in yytable_. - yynnts_ = 450, ///< Number of nonterminal symbols. - yyfinal_ = 30 ///< Termination state number. + yyeof_ = 0, + yylast_ = 1315, ///< Last index in yytable_. + yynnts_ = 439, ///< Number of nonterminal symbols. + yyfinal_ = 30, ///< Termination state number. + yyntokens_ = 211 ///< Number of tokens. }; // User arguments. isc::dhcp::Parser6Context& ctx; - }; inline - Dhcp6Parser::symbol_kind_type - Dhcp6Parser::yytranslate_ (int t) YY_NOEXCEPT + Dhcp6Parser::token_number_type + Dhcp6Parser::yytranslate_ (int t) { // YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to // TOKEN-NUM as returned by yylex. static - const unsigned char + const token_number_type translate_table[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -5487,53 +4530,94 @@ switch (yykind) 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - 215, 216, 217, 218 + 205, 206, 207, 208, 209, 210 }; - // Last valid token kind. - const int code_max = 473; + const int user_token_number_max_ = 465; if (t <= 0) - return symbol_kind::S_YYEOF; - else if (t <= code_max) - return static_cast <symbol_kind_type> (translate_table[t]); + return yyeof_; + else if (t <= user_token_number_max_) + return translate_table[t]; else - return symbol_kind::S_YYUNDEF; + return yy_undef_token_; } // basic_symbol. +#if 201103L <= YY_CPLUSPLUS + template <typename Base> + Dhcp6Parser::basic_symbol<Base>::basic_symbol (basic_symbol&& that) + : Base (std::move (that)) + , value () + , location (std::move (that.location)) + { + switch (this->type_get ()) + { + case 227: // value + case 231: // map_value + case 273: // ddns_replace_client_name_value + case 316: // db_type + case 333: // on_fail_mode + case 420: // hr_mode + case 556: // duid_type + case 599: // ncr_protocol_value + value.move< ElementPtr > (std::move (that.value)); + break; + + case 210: // "boolean" + value.move< bool > (std::move (that.value)); + break; + + case 209: // "floating point" + value.move< double > (std::move (that.value)); + break; + + case 208: // "integer" + value.move< int64_t > (std::move (that.value)); + break; + + case 207: // "constant string" + value.move< std::string > (std::move (that.value)); + break; + + default: + break; + } + + } +#endif + template <typename Base> Dhcp6Parser::basic_symbol<Base>::basic_symbol (const basic_symbol& that) : Base (that) , value () , location (that.location) { - switch (this->kind ()) + switch (this->type_get ()) { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_on_fail_mode: // on_fail_mode - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_duid_type: // duid_type - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value + case 227: // value + case 231: // map_value + case 273: // ddns_replace_client_name_value + case 316: // db_type + case 333: // on_fail_mode + case 420: // hr_mode + case 556: // duid_type + case 599: // ncr_protocol_value value.copy< ElementPtr > (YY_MOVE (that.value)); break; - case symbol_kind::S_BOOLEAN: // "boolean" + case 210: // "boolean" value.copy< bool > (YY_MOVE (that.value)); break; - case symbol_kind::S_FLOAT: // "floating point" + case 209: // "floating point" value.copy< double > (YY_MOVE (that.value)); break; - case symbol_kind::S_INTEGER: // "integer" + case 208: // "integer" value.copy< int64_t > (YY_MOVE (that.value)); break; - case symbol_kind::S_STRING: // "constant string" + case 207: // "constant string" value.copy< std::string > (YY_MOVE (that.value)); break; @@ -5545,20 +4629,11 @@ switch (yykind) - - template <typename Base> - Dhcp6Parser::symbol_kind_type - Dhcp6Parser::basic_symbol<Base>::type_get () const YY_NOEXCEPT - { - return this->kind (); - } - - template <typename Base> bool Dhcp6Parser::basic_symbol<Base>::empty () const YY_NOEXCEPT { - return this->kind () == symbol_kind::S_YYEMPTY; + return Base::type_get () == empty_symbol; } template <typename Base> @@ -5566,32 +4641,32 @@ switch (yykind) Dhcp6Parser::basic_symbol<Base>::move (basic_symbol& s) { super_type::move (s); - switch (this->kind ()) + switch (this->type_get ()) { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_on_fail_mode: // on_fail_mode - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_duid_type: // duid_type - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value + case 227: // value + case 231: // map_value + case 273: // ddns_replace_client_name_value + case 316: // db_type + case 333: // on_fail_mode + case 420: // hr_mode + case 556: // duid_type + case 599: // ncr_protocol_value value.move< ElementPtr > (YY_MOVE (s.value)); break; - case symbol_kind::S_BOOLEAN: // "boolean" + case 210: // "boolean" value.move< bool > (YY_MOVE (s.value)); break; - case symbol_kind::S_FLOAT: // "floating point" + case 209: // "floating point" value.move< double > (YY_MOVE (s.value)); break; - case symbol_kind::S_INTEGER: // "integer" + case 208: // "integer" value.move< int64_t > (YY_MOVE (s.value)); break; - case symbol_kind::S_STRING: // "constant string" + case 207: // "constant string" value.move< std::string > (YY_MOVE (s.value)); break; @@ -5602,67 +4677,57 @@ switch (yykind) location = YY_MOVE (s.location); } - // by_kind. + // by_type. inline - Dhcp6Parser::by_kind::by_kind () YY_NOEXCEPT - : kind_ (symbol_kind::S_YYEMPTY) + Dhcp6Parser::by_type::by_type () + : type (empty_symbol) {} #if 201103L <= YY_CPLUSPLUS inline - Dhcp6Parser::by_kind::by_kind (by_kind&& that) YY_NOEXCEPT - : kind_ (that.kind_) + Dhcp6Parser::by_type::by_type (by_type&& that) + : type (that.type) { that.clear (); } #endif inline - Dhcp6Parser::by_kind::by_kind (const by_kind& that) YY_NOEXCEPT - : kind_ (that.kind_) + Dhcp6Parser::by_type::by_type (const by_type& that) + : type (that.type) {} inline - Dhcp6Parser::by_kind::by_kind (token_kind_type t) YY_NOEXCEPT - : kind_ (yytranslate_ (t)) + Dhcp6Parser::by_type::by_type (token_type t) + : type (yytranslate_ (t)) {} - - inline void - Dhcp6Parser::by_kind::clear () YY_NOEXCEPT + Dhcp6Parser::by_type::clear () { - kind_ = symbol_kind::S_YYEMPTY; + type = empty_symbol; } inline void - Dhcp6Parser::by_kind::move (by_kind& that) + Dhcp6Parser::by_type::move (by_type& that) { - kind_ = that.kind_; + type = that.type; that.clear (); } inline - Dhcp6Parser::symbol_kind_type - Dhcp6Parser::by_kind::kind () const YY_NOEXCEPT - { - return kind_; - } - - - inline - Dhcp6Parser::symbol_kind_type - Dhcp6Parser::by_kind::type_get () const YY_NOEXCEPT + int + Dhcp6Parser::by_type::type_get () const YY_NOEXCEPT { - return this->kind (); + return type; } - #line 14 "dhcp6_parser.yy" } } // isc::dhcp -#line 5666 "dhcp6_parser.h" +#line 4730 "dhcp6_parser.h" + |