mirror of
https://gitlab.isc.org/isc-projects/kea
synced 2025-08-31 14:05:33 +00:00
[#2197] release changes
This commit is contained in:
12
AUTHORS
12
AUTHORS
@@ -6,7 +6,7 @@ Primary developers:
|
|||||||
memfile, database interface, core libdhcp++,
|
memfile, database interface, core libdhcp++,
|
||||||
host reservation, MAC extraction in DHCPv6,
|
host reservation, MAC extraction in DHCPv6,
|
||||||
statistics manager, kea-shell, netconf, flex/bison
|
statistics manager, kea-shell, netconf, flex/bison
|
||||||
parsers, flex-id, documentation)
|
parsers, flex-id, documentation, config backend)
|
||||||
- Marcin Siodelski (DHCPv4, DHCPv6 components, options handling, perfdhcp,
|
- Marcin Siodelski (DHCPv4, DHCPv6 components, options handling, perfdhcp,
|
||||||
host reservation, lease file cleanup, lease expiration,
|
host reservation, lease file cleanup, lease expiration,
|
||||||
control agent, shared networks, high availability,
|
control agent, shared networks, high availability,
|
||||||
@@ -14,18 +14,20 @@ Primary developers:
|
|||||||
- Thomas Markwalder (DDNS, user_chk, global host reservations, stat commands,
|
- Thomas Markwalder (DDNS, user_chk, global host reservations, stat commands,
|
||||||
congestion handling, config backend, multi-threading mode
|
congestion handling, config backend, multi-threading mode
|
||||||
of high availability, forensic logging, leasequery)
|
of high availability, forensic logging, leasequery)
|
||||||
- Wlodek Wencel (testing, release engineering)
|
- Wlodek Wencel (testing, release engineering, hammer, perfdhcp)
|
||||||
- Francis Dupont (crypto, flex/bison parsers, perfdhcp, control agent,
|
- Francis Dupont (crypto, flex/bison parsers, perfdhcp, control agent,
|
||||||
radius, netconf, config backend, multi-threading)
|
radius, netconf, config backend, multi-threading,
|
||||||
|
GSS-TSIG)
|
||||||
- Razvan Becheriu (cassandra, netconf, multi-threading, forensic logging,
|
- Razvan Becheriu (cassandra, netconf, multi-threading, forensic logging,
|
||||||
run script hook, multi-threading mode of high availability)
|
run script hook, multi-threading mode of high availability,
|
||||||
|
GSS-TSIG)
|
||||||
- Vicky Risk (documentation)
|
- Vicky Risk (documentation)
|
||||||
- Suzanne Goldlust (documentation)
|
- Suzanne Goldlust (documentation)
|
||||||
- Andrei Pavel (build system, documentation, hammer, netconf, perfdhcp,
|
- Andrei Pavel (build system, documentation, hammer, netconf, perfdhcp,
|
||||||
release engineering, shell scripts, testing)
|
release engineering, shell scripts, testing)
|
||||||
- Peter Davies (documentation)
|
- Peter Davies (documentation)
|
||||||
- Slawek Figiel (documentation)
|
- Slawek Figiel (documentation)
|
||||||
- Dan Theisen (documentation)
|
- Dan Theisen (documentation, option handling)
|
||||||
|
|
||||||
Former developers who are no longer active:
|
Former developers who are no longer active:
|
||||||
- Stephen Morris (Hooks, MySQL)
|
- Stephen Morris (Hooks, MySQL)
|
||||||
|
49
ChangeLog
49
ChangeLog
@@ -1,25 +1,47 @@
|
|||||||
1966. [build] razvan
|
Kea 2.1.1 (development) released on Nov 24, 2021
|
||||||
|
|
||||||
|
1970. [build] razvan
|
||||||
Library version numbers bumped for Kea 2.1.1 development
|
Library version numbers bumped for Kea 2.1.1 development
|
||||||
version.
|
version.
|
||||||
(Gitlab #2195)
|
(Gitlab #2195)
|
||||||
|
|
||||||
1965. [func] djt
|
1969. [build] andrei
|
||||||
|
Fixed "make check -j N" running tests in parallel in src/lib/log.
|
||||||
|
(Gitlab #2172)
|
||||||
|
|
||||||
|
1968. [build] andrei
|
||||||
|
Fixed make check failing when googletest support was disabled.
|
||||||
|
(Gitlab #2167)
|
||||||
|
|
||||||
|
1967. [bug] andrei
|
||||||
|
Fixed a bug where keactrl did not color the active status code
|
||||||
|
for kea-dhcp-ddns as it did for the other servers.
|
||||||
|
(Gitlab #2117)
|
||||||
|
|
||||||
|
1966. [func] djt
|
||||||
Allow Kea to pack opaque data tuples within options with zero
|
Allow Kea to pack opaque data tuples within options with zero
|
||||||
length to accommodate some DHCP clients who have been observed
|
length to accommodate some DHCP clients who have been observed
|
||||||
to send DHCPv4 option 124 with zero length tuples.
|
to send DHCPv4 option 124 with zero length tuples.
|
||||||
(Gitlab #2021)
|
(Gitlab #2021)
|
||||||
|
|
||||||
1964. [func] andrei
|
1965. [func] andrei
|
||||||
Increase the value that "maxsize" can take from 2GB to 2PB.
|
Increase the value that "maxsize" can take from 2GB to 2PB.
|
||||||
(Gitlab #2130)
|
(Gitlab #2130)
|
||||||
|
|
||||||
|
1964. [func] wlodek
|
||||||
|
Added support for Debian 11 in hammer.py.
|
||||||
|
(Gitlab #2042, #2193)
|
||||||
|
|
||||||
1963. [func] andrei
|
1963. [func] andrei
|
||||||
A few improvements on hammer.py: vagrant will be automatically
|
hammer.py has had several improvements.
|
||||||
upgraded if it is too outdated, error messages are more clear
|
NETCONF and PostgreSQL will be properly configured when running
|
||||||
when running on unsupported systems and it is now able to detect
|
prepare-system on Fedora and FreeBSD.
|
||||||
Arch Linux distributions, even though support for them is not on
|
vagrant will be automatically upgraded if it is too outdated.
|
||||||
par with the other systems: it is only able to prepare-system
|
Error messages are more clear when running on unsupported
|
||||||
with freeradius and netconf support.
|
systems.
|
||||||
|
hammer.py is now able to detect Arch Linux distributions and
|
||||||
|
offers limited support for it, being able to prepare-system with
|
||||||
|
freeradius and netconf support.
|
||||||
(Gitlab #2111, #2112)
|
(Gitlab #2111, #2112)
|
||||||
|
|
||||||
1962. [func] andrei
|
1962. [func] andrei
|
||||||
@@ -40,7 +62,7 @@
|
|||||||
store-extended-info, on-fail.
|
store-extended-info, on-fail.
|
||||||
(Gitlab #2136)
|
(Gitlab #2136)
|
||||||
|
|
||||||
1961. [func] tomek,tmark
|
1961. [func] tomek, tmark
|
||||||
The initial, stubbed version of the PostgreSQL CB hook
|
The initial, stubbed version of the PostgreSQL CB hook
|
||||||
library has been created. The library is not yet functional
|
library has been created. The library is not yet functional
|
||||||
and does not installed.
|
and does not installed.
|
||||||
@@ -54,15 +76,16 @@
|
|||||||
|
|
||||||
1959. [doc] djt
|
1959. [doc] djt
|
||||||
Move documentation for acceptable format strings into the Kea
|
Move documentation for acceptable format strings into the Kea
|
||||||
ARM. The relevent section of the ARM was previously referring
|
ARM. The relevant section of the ARM was previously referring
|
||||||
to a dead link in the Log4cpp documentation.
|
to a dead link in the Log4cpp documentation.
|
||||||
|
(Gitlab #2134)
|
||||||
|
|
||||||
1958. [func] tomek
|
1958. [func] tomek, tmark
|
||||||
PostgreSQL database schema has been extended with tables for
|
PostgreSQL database schema has been extended with tables for
|
||||||
Config Backend (CB). This is the first step towards PostgreSQL
|
Config Backend (CB). This is the first step towards PostgreSQL
|
||||||
CB. However, as there is no code yet to use those new tables,
|
CB. However, as there is no code yet to use those new tables,
|
||||||
they're not not functional yet.
|
they're not not functional yet.
|
||||||
(Gitlab #90)
|
(Gitlab #90, #2166)
|
||||||
|
|
||||||
Kea 2.1.0 (development) released on Oct 27, 2021
|
Kea 2.1.0 (development) released on Oct 27, 2021
|
||||||
|
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
Grammar generated on 2021-06-22 19:06. See Chapter :ref:`kea-ctrl-agent` for an explanation.
|
Grammar generated from agent_parser.yy. See Chapter :ref:`kea-ctrl-agent` for an explanation.
|
||||||
|
|
||||||
.. code-block:: BNF
|
.. code-block:: BNF
|
||||||
:linenos:
|
:linenos:
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
Grammar generated on 2021-06-22 19:06. See Chapter :ref:`dhcp-ddns-server` for an explanation.
|
Grammar generated from d2_parser.yy. See Chapter :ref:`dhcp-ddns-server` for an explanation.
|
||||||
|
|
||||||
.. code-block:: BNF
|
.. code-block:: BNF
|
||||||
:linenos:
|
:linenos:
|
||||||
@@ -130,7 +130,7 @@ Grammar generated on 2021-06-22 19:06. See Chapter :ref:`dhcp-ddns-server` for a
|
|||||||
| ddns_domain_params "," ddns_domain_param
|
| ddns_domain_params "," ddns_domain_param
|
||||||
|
|
||||||
ddns_domain_param ::= ddns_domain_name
|
ddns_domain_param ::= ddns_domain_name
|
||||||
| ddns_domain_key_name
|
| ddns_key_name
|
||||||
| dns_servers
|
| dns_servers
|
||||||
| user_context
|
| user_context
|
||||||
| comment
|
| comment
|
||||||
@@ -138,7 +138,7 @@ Grammar generated on 2021-06-22 19:06. See Chapter :ref:`dhcp-ddns-server` for a
|
|||||||
|
|
||||||
ddns_domain_name ::= "name" ":" STRING
|
ddns_domain_name ::= "name" ":" STRING
|
||||||
|
|
||||||
ddns_domain_key_name ::= "key-name" ":" STRING
|
ddns_key_name ::= "key-name" ":" STRING
|
||||||
|
|
||||||
dns_servers ::= "dns-servers" ":" "[" dns_server_list "]"
|
dns_servers ::= "dns-servers" ":" "[" dns_server_list "]"
|
||||||
|
|
||||||
@@ -157,6 +157,7 @@ Grammar generated on 2021-06-22 19:06. See Chapter :ref:`dhcp-ddns-server` for a
|
|||||||
dns_server_param ::= dns_server_hostname
|
dns_server_param ::= dns_server_hostname
|
||||||
| dns_server_ip_address
|
| dns_server_ip_address
|
||||||
| dns_server_port
|
| dns_server_port
|
||||||
|
| ddns_key_name
|
||||||
| user_context
|
| user_context
|
||||||
| comment
|
| comment
|
||||||
| unknown_map_entry
|
| unknown_map_entry
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
Grammar generated on 2021-06-22 19:06. See Chapter :ref:`dhcp4` for an explanation.
|
Grammar generated from dhcp4_parser.yy. See Chapter :ref:`dhcp4` for an explanation.
|
||||||
|
|
||||||
.. code-block:: BNF
|
.. code-block:: BNF
|
||||||
:linenos:
|
:linenos:
|
||||||
@@ -141,6 +141,7 @@ Grammar generated on 2021-06-22 19:06. See Chapter :ref:`dhcp4` for an explanati
|
|||||||
| dhcp_multi_threading
|
| dhcp_multi_threading
|
||||||
| ip_reservations_unique
|
| ip_reservations_unique
|
||||||
| compatibility
|
| compatibility
|
||||||
|
| parked_packet_limit
|
||||||
| unknown_map_entry
|
| unknown_map_entry
|
||||||
|
|
||||||
valid_lifetime ::= "valid-lifetime" ":" INTEGER
|
valid_lifetime ::= "valid-lifetime" ":" INTEGER
|
||||||
@@ -167,6 +168,8 @@ Grammar generated on 2021-06-22 19:06. See Chapter :ref:`dhcp4` for an explanati
|
|||||||
|
|
||||||
server_tag ::= "server-tag" ":" STRING
|
server_tag ::= "server-tag" ":" STRING
|
||||||
|
|
||||||
|
parked_packet_limit ::= "parked-packet-limit" ":" INTEGER
|
||||||
|
|
||||||
echo_client_id ::= "echo-client-id" ":" BOOLEAN
|
echo_client_id ::= "echo-client-id" ":" BOOLEAN
|
||||||
|
|
||||||
match_client_id ::= "match-client-id" ":" BOOLEAN
|
match_client_id ::= "match-client-id" ":" BOOLEAN
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
Grammar generated on 2021-06-22 19:06. See Chapter :ref:`dhcp6` for an explanation.
|
Grammar generated from dhcp6_parser.yy. See Chapter :ref:`dhcp6` for an explanation.
|
||||||
|
|
||||||
.. code-block:: BNF
|
.. code-block:: BNF
|
||||||
:linenos:
|
:linenos:
|
||||||
@@ -144,6 +144,7 @@ Grammar generated on 2021-06-22 19:06. See Chapter :ref:`dhcp6` for an explanati
|
|||||||
| dhcp_multi_threading
|
| dhcp_multi_threading
|
||||||
| ip_reservations_unique
|
| ip_reservations_unique
|
||||||
| compatibility
|
| compatibility
|
||||||
|
| parked_packet_limit
|
||||||
| unknown_map_entry
|
| unknown_map_entry
|
||||||
|
|
||||||
data_directory ::= "data-directory" ":" STRING
|
data_directory ::= "data-directory" ":" STRING
|
||||||
@@ -210,6 +211,8 @@ Grammar generated on 2021-06-22 19:06. See Chapter :ref:`dhcp6` for an explanati
|
|||||||
|
|
||||||
server_tag ::= "server-tag" ":" STRING
|
server_tag ::= "server-tag" ":" STRING
|
||||||
|
|
||||||
|
parked_packet_limit ::= "parked-packet-limit" ":" INTEGER
|
||||||
|
|
||||||
ip_reservations_unique ::= "ip-reservations-unique" ":" BOOLEAN
|
ip_reservations_unique ::= "ip-reservations-unique" ":" BOOLEAN
|
||||||
|
|
||||||
interfaces_config ::= "interfaces-config" ":" "{" interfaces_config_params "}"
|
interfaces_config ::= "interfaces-config" ":" "{" interfaces_config_params "}"
|
||||||
@@ -786,6 +789,12 @@ Grammar generated on 2021-06-22 19:06. See Chapter :ref:`dhcp6` for an explanati
|
|||||||
| option_data_list
|
| option_data_list
|
||||||
| user_context
|
| user_context
|
||||||
| comment
|
| comment
|
||||||
|
| preferred_lifetime
|
||||||
|
| min_preferred_lifetime
|
||||||
|
| max_preferred_lifetime
|
||||||
|
| valid_lifetime
|
||||||
|
| min_valid_lifetime
|
||||||
|
| max_valid_lifetime
|
||||||
| unknown_map_entry
|
| unknown_map_entry
|
||||||
|
|
||||||
client_class_name ::= name
|
client_class_name ::= name
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
Grammar generated on 2021-06-22 19:06. See Chapter :ref:`netconf` for an explanation.
|
Grammar generated from netconf_parser.yy. See Chapter :ref:`netconf` for an explanation.
|
||||||
|
|
||||||
.. code-block:: BNF
|
.. code-block:: BNF
|
||||||
:linenos:
|
:linenos:
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// A Bison parser, made by GNU Bison 3.7.6.
|
// A Bison parser, made by GNU Bison 3.8.2.
|
||||||
|
|
||||||
// Skeleton implementation for Bison LALR(1) parsers in C++
|
// Skeleton implementation for Bison LALR(1) parsers in C++
|
||||||
|
|
||||||
@@ -160,9 +160,9 @@ namespace isc { namespace agent {
|
|||||||
AgentParser::syntax_error::~syntax_error () YY_NOEXCEPT YY_NOTHROW
|
AgentParser::syntax_error::~syntax_error () YY_NOEXCEPT YY_NOTHROW
|
||||||
{}
|
{}
|
||||||
|
|
||||||
/*---------------.
|
/*---------.
|
||||||
| symbol kinds. |
|
| symbol. |
|
||||||
`---------------*/
|
`---------*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -457,7 +457,7 @@ namespace isc { namespace agent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
AgentParser::yypop_ (int n)
|
AgentParser::yypop_ (int n) YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
yystack_.pop (n);
|
yystack_.pop (n);
|
||||||
}
|
}
|
||||||
@@ -500,13 +500,13 @@ namespace isc { namespace agent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
AgentParser::yy_pact_value_is_default_ (int yyvalue)
|
AgentParser::yy_pact_value_is_default_ (int yyvalue) YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
return yyvalue == yypact_ninf_;
|
return yyvalue == yypact_ninf_;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
AgentParser::yy_table_value_is_error_ (int yyvalue)
|
AgentParser::yy_table_value_is_error_ (int yyvalue) YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
return yyvalue == yytable_ninf_;
|
return yyvalue == yytable_ninf_;
|
||||||
}
|
}
|
||||||
@@ -1875,16 +1875,16 @@ namespace isc { namespace agent {
|
|||||||
// Actual number of expected tokens
|
// Actual number of expected tokens
|
||||||
int yycount = 0;
|
int yycount = 0;
|
||||||
|
|
||||||
int yyn = yypact_[+yyparser_.yystack_[0].state];
|
const int yyn = yypact_[+yyparser_.yystack_[0].state];
|
||||||
if (!yy_pact_value_is_default_ (yyn))
|
if (!yy_pact_value_is_default_ (yyn))
|
||||||
{
|
{
|
||||||
/* Start YYX at -YYN if negative to avoid negative indexes in
|
/* Start YYX at -YYN if negative to avoid negative indexes in
|
||||||
YYCHECK. In other words, skip the first -YYN actions for
|
YYCHECK. In other words, skip the first -YYN actions for
|
||||||
this state because they are default actions. */
|
this state because they are default actions. */
|
||||||
int yyxbegin = yyn < 0 ? -yyn : 0;
|
const int yyxbegin = yyn < 0 ? -yyn : 0;
|
||||||
// Stay within bounds of both yycheck and yytname.
|
// Stay within bounds of both yycheck and yytname.
|
||||||
int yychecklim = yylast_ - yyn + 1;
|
const int yychecklim = yylast_ - yyn + 1;
|
||||||
int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
|
const int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
|
||||||
for (int yyx = yyxbegin; yyx < yyxend; ++yyx)
|
for (int yyx = yyxbegin; yyx < yyxend; ++yyx)
|
||||||
if (yycheck_[yyx + yyn] == yyx && yyx != symbol_kind::S_YYerror
|
if (yycheck_[yyx + yyn] == yyx && yyx != symbol_kind::S_YYerror
|
||||||
&& !yy_table_value_is_error_ (yytable_[yyx + yyn]))
|
&& !yy_table_value_is_error_ (yytable_[yyx + yyn]))
|
||||||
@@ -1905,6 +1905,9 @@ namespace isc { namespace agent {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
AgentParser::yy_syntax_error_arguments_ (const context& yyctx,
|
AgentParser::yy_syntax_error_arguments_ (const context& yyctx,
|
||||||
symbol_kind_type yyarg[], int yyargn) const
|
symbol_kind_type yyarg[], int yyargn) const
|
||||||
@@ -2340,7 +2343,7 @@ namespace isc { namespace agent {
|
|||||||
|
|
||||||
#line 14 "agent_parser.yy"
|
#line 14 "agent_parser.yy"
|
||||||
} } // isc::agent
|
} } // isc::agent
|
||||||
#line 2344 "agent_parser.cc"
|
#line 2347 "agent_parser.cc"
|
||||||
|
|
||||||
#line 782 "agent_parser.yy"
|
#line 782 "agent_parser.yy"
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// A Bison parser, made by GNU Bison 3.7.6.
|
// A Bison parser, made by GNU Bison 3.8.2.
|
||||||
|
|
||||||
// Skeleton interface for Bison LALR(1) parsers in C++
|
// Skeleton interface for Bison LALR(1) parsers in C++
|
||||||
|
|
||||||
@@ -132,12 +132,18 @@ using namespace std;
|
|||||||
# define YY_USE(E) /* empty */
|
# define YY_USE(E) /* empty */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
|
|
||||||
/* Suppress an incorrect diagnostic about yylval being uninitialized. */
|
/* Suppress an incorrect diagnostic about yylval being uninitialized. */
|
||||||
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
|
#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 \
|
||||||
_Pragma ("GCC diagnostic push") \
|
_Pragma ("GCC diagnostic push") \
|
||||||
_Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
|
_Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
|
||||||
_Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
|
_Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
|
||||||
|
# endif
|
||||||
# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
|
# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
|
||||||
_Pragma ("GCC diagnostic pop")
|
_Pragma ("GCC diagnostic pop")
|
||||||
#else
|
#else
|
||||||
@@ -199,7 +205,7 @@ using namespace std;
|
|||||||
|
|
||||||
#line 14 "agent_parser.yy"
|
#line 14 "agent_parser.yy"
|
||||||
namespace isc { namespace agent {
|
namespace isc { namespace agent {
|
||||||
#line 203 "agent_parser.h"
|
#line 209 "agent_parser.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -208,27 +214,32 @@ namespace isc { namespace agent {
|
|||||||
class AgentParser
|
class AgentParser
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
#ifndef AGENT_STYPE
|
#ifdef AGENT_STYPE
|
||||||
|
# ifdef __GNUC__
|
||||||
|
# pragma GCC message "bison: do not #define AGENT_STYPE in C++, use %define api.value.type"
|
||||||
|
# endif
|
||||||
|
typedef AGENT_STYPE value_type;
|
||||||
|
#else
|
||||||
/// A buffer to store and retrieve objects.
|
/// A buffer to store and retrieve objects.
|
||||||
///
|
///
|
||||||
/// Sort of a variant, but does not keep track of the nature
|
/// Sort of a variant, but does not keep track of the nature
|
||||||
/// of the stored data, since that knowledge is available
|
/// of the stored data, since that knowledge is available
|
||||||
/// via the current parser state.
|
/// via the current parser state.
|
||||||
class semantic_type
|
class value_type
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/// Type of *this.
|
/// Type of *this.
|
||||||
typedef semantic_type self_type;
|
typedef value_type self_type;
|
||||||
|
|
||||||
/// Empty construction.
|
/// Empty construction.
|
||||||
semantic_type () YY_NOEXCEPT
|
value_type () YY_NOEXCEPT
|
||||||
: yybuffer_ ()
|
: yyraw_ ()
|
||||||
, yytypeid_ (YY_NULLPTR)
|
, yytypeid_ (YY_NULLPTR)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
/// Construct and fill.
|
/// Construct and fill.
|
||||||
template <typename T>
|
template <typename T>
|
||||||
semantic_type (YY_RVREF (T) t)
|
value_type (YY_RVREF (T) t)
|
||||||
: yytypeid_ (&typeid (T))
|
: yytypeid_ (&typeid (T))
|
||||||
{
|
{
|
||||||
AGENT__ASSERT (sizeof (T) <= size);
|
AGENT__ASSERT (sizeof (T) <= size);
|
||||||
@@ -237,13 +248,13 @@ namespace isc { namespace agent {
|
|||||||
|
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
/// Non copyable.
|
/// Non copyable.
|
||||||
semantic_type (const self_type&) = delete;
|
value_type (const self_type&) = delete;
|
||||||
/// Non copyable.
|
/// Non copyable.
|
||||||
self_type& operator= (const self_type&) = delete;
|
self_type& operator= (const self_type&) = delete;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/// Destruction, allowed only if empty.
|
/// Destruction, allowed only if empty.
|
||||||
~semantic_type () YY_NOEXCEPT
|
~value_type () YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
AGENT__ASSERT (!yytypeid_);
|
AGENT__ASSERT (!yytypeid_);
|
||||||
}
|
}
|
||||||
@@ -387,7 +398,7 @@ namespace isc { namespace agent {
|
|||||||
private:
|
private:
|
||||||
#if YY_CPLUSPLUS < 201103L
|
#if YY_CPLUSPLUS < 201103L
|
||||||
/// Non copyable.
|
/// Non copyable.
|
||||||
semantic_type (const self_type&);
|
value_type (const self_type&);
|
||||||
/// Non copyable.
|
/// Non copyable.
|
||||||
self_type& operator= (const self_type&);
|
self_type& operator= (const self_type&);
|
||||||
#endif
|
#endif
|
||||||
@@ -397,7 +408,7 @@ namespace isc { namespace agent {
|
|||||||
T*
|
T*
|
||||||
yyas_ () YY_NOEXCEPT
|
yyas_ () YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
void *yyp = yybuffer_.yyraw;
|
void *yyp = yyraw_;
|
||||||
return static_cast<T*> (yyp);
|
return static_cast<T*> (yyp);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -406,7 +417,7 @@ namespace isc { namespace agent {
|
|||||||
const T*
|
const T*
|
||||||
yyas_ () const YY_NOEXCEPT
|
yyas_ () const YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
const void *yyp = yybuffer_.yyraw;
|
const void *yyp = yyraw_;
|
||||||
return static_cast<const T*> (yyp);
|
return static_cast<const T*> (yyp);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -439,18 +450,19 @@ namespace isc { namespace agent {
|
|||||||
union
|
union
|
||||||
{
|
{
|
||||||
/// Strongest alignment constraints.
|
/// Strongest alignment constraints.
|
||||||
long double yyalign_me;
|
long double yyalign_me_;
|
||||||
/// A buffer large enough to store any of the semantic values.
|
/// 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.
|
/// Whether the content is built: if defined, the name of the stored type.
|
||||||
const std::type_info *yytypeid_;
|
const std::type_info *yytypeid_;
|
||||||
};
|
};
|
||||||
|
|
||||||
#else
|
|
||||||
typedef AGENT_STYPE semantic_type;
|
|
||||||
#endif
|
#endif
|
||||||
|
/// Backward compatibility (Bison 3.8).
|
||||||
|
typedef value_type semantic_type;
|
||||||
|
|
||||||
/// Symbol locations.
|
/// Symbol locations.
|
||||||
typedef location location_type;
|
typedef location location_type;
|
||||||
|
|
||||||
@@ -537,7 +549,7 @@ namespace isc { namespace agent {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/// Token kind, as returned by yylex.
|
/// Token kind, as returned by yylex.
|
||||||
typedef token::yytokentype token_kind_type;
|
typedef token::token_kind_type token_kind_type;
|
||||||
|
|
||||||
/// Backward compatibility alias (Bison 3.6).
|
/// Backward compatibility alias (Bison 3.6).
|
||||||
typedef token_kind_type token_type;
|
typedef token_kind_type token_type;
|
||||||
@@ -739,7 +751,7 @@ namespace isc { namespace agent {
|
|||||||
typedef Base super_type;
|
typedef Base super_type;
|
||||||
|
|
||||||
/// Default constructor.
|
/// Default constructor.
|
||||||
basic_symbol ()
|
basic_symbol () YY_NOEXCEPT
|
||||||
: value ()
|
: value ()
|
||||||
, location ()
|
, location ()
|
||||||
{}
|
{}
|
||||||
@@ -875,6 +887,8 @@ namespace isc { namespace agent {
|
|||||||
clear ();
|
clear ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// Destroy contents, and record that is empty.
|
/// Destroy contents, and record that is empty.
|
||||||
void clear () YY_NOEXCEPT
|
void clear () YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
@@ -937,7 +951,7 @@ switch (yykind)
|
|||||||
void move (basic_symbol& s);
|
void move (basic_symbol& s);
|
||||||
|
|
||||||
/// The semantic value.
|
/// The semantic value.
|
||||||
semantic_type value;
|
value_type value;
|
||||||
|
|
||||||
/// The location.
|
/// The location.
|
||||||
location_type location;
|
location_type location;
|
||||||
@@ -952,22 +966,24 @@ switch (yykind)
|
|||||||
/// Type access provider for token (enum) based symbols.
|
/// Type access provider for token (enum) based symbols.
|
||||||
struct by_kind
|
struct by_kind
|
||||||
{
|
{
|
||||||
/// Default constructor.
|
|
||||||
by_kind ();
|
|
||||||
|
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
|
||||||
/// Move constructor.
|
|
||||||
by_kind (by_kind&& that);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/// Copy constructor.
|
|
||||||
by_kind (const by_kind& that);
|
|
||||||
|
|
||||||
/// The symbol kind as needed by the constructor.
|
/// The symbol kind as needed by the constructor.
|
||||||
typedef token_kind_type kind_type;
|
typedef token_kind_type kind_type;
|
||||||
|
|
||||||
|
/// Default constructor.
|
||||||
|
by_kind () YY_NOEXCEPT;
|
||||||
|
|
||||||
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
|
/// Move constructor.
|
||||||
|
by_kind (by_kind&& that) YY_NOEXCEPT;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/// Copy constructor.
|
||||||
|
by_kind (const by_kind& that) YY_NOEXCEPT;
|
||||||
|
|
||||||
/// Constructor from (external) token numbers.
|
/// Constructor from (external) token numbers.
|
||||||
by_kind (kind_type t);
|
by_kind (kind_type t) YY_NOEXCEPT;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// Record that this symbol is empty.
|
/// Record that this symbol is empty.
|
||||||
void clear () YY_NOEXCEPT;
|
void clear () YY_NOEXCEPT;
|
||||||
@@ -997,59 +1013,69 @@ switch (yykind)
|
|||||||
typedef basic_symbol<by_kind> super_type;
|
typedef basic_symbol<by_kind> super_type;
|
||||||
|
|
||||||
/// Empty symbol.
|
/// Empty symbol.
|
||||||
symbol_type () {}
|
symbol_type () YY_NOEXCEPT {}
|
||||||
|
|
||||||
/// Constructor for valueless symbols, and symbols from each type.
|
/// Constructor for valueless symbols, and symbols from each type.
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
symbol_type (int tok, location_type l)
|
symbol_type (int tok, location_type l)
|
||||||
: super_type(token_type (tok), std::move (l))
|
: super_type (token_kind_type (tok), std::move (l))
|
||||||
#else
|
#else
|
||||||
symbol_type (int tok, const location_type& l)
|
symbol_type (int tok, const location_type& l)
|
||||||
: super_type(token_type (tok), l)
|
: super_type (token_kind_type (tok), l)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
#if !defined _MSC_VER || defined __clang__
|
||||||
AGENT__ASSERT (tok == token::TOKEN_END
|
AGENT__ASSERT (tok == token::TOKEN_END
|
||||||
|| (token::TOKEN_AGENT_error <= tok && tok <= token::TOKEN_START_SUB_AGENT));
|
|| (token::TOKEN_AGENT_error <= tok && tok <= token::TOKEN_START_SUB_AGENT));
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
symbol_type (int tok, bool v, location_type l)
|
symbol_type (int tok, bool v, location_type l)
|
||||||
: super_type(token_type (tok), std::move (v), std::move (l))
|
: super_type (token_kind_type (tok), std::move (v), std::move (l))
|
||||||
#else
|
#else
|
||||||
symbol_type (int tok, const bool& v, const location_type& l)
|
symbol_type (int tok, const bool& v, const location_type& l)
|
||||||
: super_type(token_type (tok), v, l)
|
: super_type (token_kind_type (tok), v, l)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
#if !defined _MSC_VER || defined __clang__
|
||||||
AGENT__ASSERT (tok == token::TOKEN_BOOLEAN);
|
AGENT__ASSERT (tok == token::TOKEN_BOOLEAN);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
symbol_type (int tok, double v, location_type l)
|
symbol_type (int tok, double v, location_type l)
|
||||||
: super_type(token_type (tok), std::move (v), std::move (l))
|
: super_type (token_kind_type (tok), std::move (v), std::move (l))
|
||||||
#else
|
#else
|
||||||
symbol_type (int tok, const double& v, const location_type& l)
|
symbol_type (int tok, const double& v, const location_type& l)
|
||||||
: super_type(token_type (tok), v, l)
|
: super_type (token_kind_type (tok), v, l)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
#if !defined _MSC_VER || defined __clang__
|
||||||
AGENT__ASSERT (tok == token::TOKEN_FLOAT);
|
AGENT__ASSERT (tok == token::TOKEN_FLOAT);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
symbol_type (int tok, int64_t v, location_type l)
|
symbol_type (int tok, int64_t v, location_type l)
|
||||||
: super_type(token_type (tok), std::move (v), std::move (l))
|
: super_type (token_kind_type (tok), std::move (v), std::move (l))
|
||||||
#else
|
#else
|
||||||
symbol_type (int tok, const int64_t& v, const location_type& l)
|
symbol_type (int tok, const int64_t& v, const location_type& l)
|
||||||
: super_type(token_type (tok), v, l)
|
: super_type (token_kind_type (tok), v, l)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
#if !defined _MSC_VER || defined __clang__
|
||||||
AGENT__ASSERT (tok == token::TOKEN_INTEGER);
|
AGENT__ASSERT (tok == token::TOKEN_INTEGER);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
symbol_type (int tok, std::string v, location_type l)
|
symbol_type (int tok, std::string v, location_type l)
|
||||||
: super_type(token_type (tok), std::move (v), std::move (l))
|
: super_type (token_kind_type (tok), std::move (v), std::move (l))
|
||||||
#else
|
#else
|
||||||
symbol_type (int tok, const std::string& v, const location_type& l)
|
symbol_type (int tok, const std::string& v, const location_type& l)
|
||||||
: super_type(token_type (tok), v, l)
|
: super_type (token_kind_type (tok), v, l)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
#if !defined _MSC_VER || defined __clang__
|
||||||
AGENT__ASSERT (tok == token::TOKEN_STRING);
|
AGENT__ASSERT (tok == token::TOKEN_STRING);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1098,7 +1124,7 @@ switch (yykind)
|
|||||||
/// YYSYMBOL. No bounds checking.
|
/// YYSYMBOL. No bounds checking.
|
||||||
static std::string symbol_name (symbol_kind_type yysymbol);
|
static std::string symbol_name (symbol_kind_type yysymbol);
|
||||||
|
|
||||||
// Implementation of make_symbol for each symbol type.
|
// Implementation of make_symbol for each token kind.
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
static
|
static
|
||||||
symbol_type
|
symbol_type
|
||||||
@@ -1940,19 +1966,19 @@ switch (yykind)
|
|||||||
|
|
||||||
/// Whether the given \c yypact_ value indicates a defaulted state.
|
/// Whether the given \c yypact_ value indicates a defaulted state.
|
||||||
/// \param yyvalue the value to check
|
/// \param yyvalue the value to check
|
||||||
static bool yy_pact_value_is_default_ (int yyvalue);
|
static bool yy_pact_value_is_default_ (int yyvalue) YY_NOEXCEPT;
|
||||||
|
|
||||||
/// Whether the given \c yytable_ value indicates a syntax error.
|
/// Whether the given \c yytable_ value indicates a syntax error.
|
||||||
/// \param yyvalue the value to check
|
/// \param yyvalue the value to check
|
||||||
static bool yy_table_value_is_error_ (int yyvalue);
|
static bool yy_table_value_is_error_ (int yyvalue) YY_NOEXCEPT;
|
||||||
|
|
||||||
static const short yypact_ninf_;
|
static const short yypact_ninf_;
|
||||||
static const signed char yytable_ninf_;
|
static const signed char yytable_ninf_;
|
||||||
|
|
||||||
/// Convert a scanner token kind \a t to a symbol kind.
|
/// Convert a scanner token kind \a t to a symbol kind.
|
||||||
/// In theory \a t should be a token_kind_type, but character literals
|
/// In theory \a t should be a token_kind_type, but character literals
|
||||||
/// are valid, yet not members of the token_type enum.
|
/// are valid, yet not members of the token_kind_type enum.
|
||||||
static symbol_kind_type yytranslate_ (int t);
|
static symbol_kind_type yytranslate_ (int t) YY_NOEXCEPT;
|
||||||
|
|
||||||
/// Convert the symbol name \a n to a form suitable for a diagnostic.
|
/// Convert the symbol name \a n to a form suitable for a diagnostic.
|
||||||
static std::string yytnamerr_ (const char *yystr);
|
static std::string yytnamerr_ (const char *yystr);
|
||||||
@@ -1984,14 +2010,14 @@ switch (yykind)
|
|||||||
|
|
||||||
static const short yycheck_[];
|
static const short yycheck_[];
|
||||||
|
|
||||||
// YYSTOS[STATE-NUM] -- The (internal number of the) accessing
|
// YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
|
||||||
// symbol of state STATE-NUM.
|
// state STATE-NUM.
|
||||||
static const unsigned char yystos_[];
|
static const unsigned char yystos_[];
|
||||||
|
|
||||||
// YYR1[YYN] -- Symbol number of symbol that rule YYN derives.
|
// YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.
|
||||||
static const unsigned char yyr1_[];
|
static const unsigned char yyr1_[];
|
||||||
|
|
||||||
// YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.
|
// YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.
|
||||||
static const signed char yyr2_[];
|
static const signed char yyr2_[];
|
||||||
|
|
||||||
|
|
||||||
@@ -2090,7 +2116,7 @@ switch (yykind)
|
|||||||
typedef typename S::size_type size_type;
|
typedef typename S::size_type size_type;
|
||||||
typedef typename std::ptrdiff_t index_type;
|
typedef typename std::ptrdiff_t index_type;
|
||||||
|
|
||||||
stack (size_type n = 200)
|
stack (size_type n = 200) YY_NOEXCEPT
|
||||||
: seq_ (n)
|
: seq_ (n)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
@@ -2169,7 +2195,7 @@ switch (yykind)
|
|||||||
class slice
|
class slice
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
slice (const stack& stack, index_type range)
|
slice (const stack& stack, index_type range) YY_NOEXCEPT
|
||||||
: stack_ (stack)
|
: stack_ (stack)
|
||||||
, range_ (range)
|
, range_ (range)
|
||||||
{}
|
{}
|
||||||
@@ -2219,7 +2245,7 @@ switch (yykind)
|
|||||||
void yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym);
|
void yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym);
|
||||||
|
|
||||||
/// Pop \a n symbols from the stack.
|
/// Pop \a n symbols from the stack.
|
||||||
void yypop_ (int n = 1);
|
void yypop_ (int n = 1) YY_NOEXCEPT;
|
||||||
|
|
||||||
/// Constants.
|
/// Constants.
|
||||||
enum
|
enum
|
||||||
@@ -2237,7 +2263,7 @@ switch (yykind)
|
|||||||
|
|
||||||
inline
|
inline
|
||||||
AgentParser::symbol_kind_type
|
AgentParser::symbol_kind_type
|
||||||
AgentParser::yytranslate_ (int t)
|
AgentParser::yytranslate_ (int t) YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
// YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to
|
// YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to
|
||||||
// TOKEN-NUM as returned by yylex.
|
// TOKEN-NUM as returned by yylex.
|
||||||
@@ -2283,7 +2309,7 @@ switch (yykind)
|
|||||||
if (t <= 0)
|
if (t <= 0)
|
||||||
return symbol_kind::S_YYEOF;
|
return symbol_kind::S_YYEOF;
|
||||||
else if (t <= code_max)
|
else if (t <= code_max)
|
||||||
return YY_CAST (symbol_kind_type, translate_table[t]);
|
return static_cast <symbol_kind_type> (translate_table[t]);
|
||||||
else
|
else
|
||||||
return symbol_kind::S_YYUNDEF;
|
return symbol_kind::S_YYUNDEF;
|
||||||
}
|
}
|
||||||
@@ -2328,6 +2354,7 @@ switch (yykind)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
template <typename Base>
|
template <typename Base>
|
||||||
AgentParser::symbol_kind_type
|
AgentParser::symbol_kind_type
|
||||||
AgentParser::basic_symbol<Base>::type_get () const YY_NOEXCEPT
|
AgentParser::basic_symbol<Base>::type_get () const YY_NOEXCEPT
|
||||||
@@ -2335,6 +2362,7 @@ switch (yykind)
|
|||||||
return this->kind ();
|
return this->kind ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template <typename Base>
|
template <typename Base>
|
||||||
bool
|
bool
|
||||||
AgentParser::basic_symbol<Base>::empty () const YY_NOEXCEPT
|
AgentParser::basic_symbol<Base>::empty () const YY_NOEXCEPT
|
||||||
@@ -2381,13 +2409,13 @@ switch (yykind)
|
|||||||
|
|
||||||
// by_kind.
|
// by_kind.
|
||||||
inline
|
inline
|
||||||
AgentParser::by_kind::by_kind ()
|
AgentParser::by_kind::by_kind () YY_NOEXCEPT
|
||||||
: kind_ (symbol_kind::S_YYEMPTY)
|
: kind_ (symbol_kind::S_YYEMPTY)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
inline
|
inline
|
||||||
AgentParser::by_kind::by_kind (by_kind&& that)
|
AgentParser::by_kind::by_kind (by_kind&& that) YY_NOEXCEPT
|
||||||
: kind_ (that.kind_)
|
: kind_ (that.kind_)
|
||||||
{
|
{
|
||||||
that.clear ();
|
that.clear ();
|
||||||
@@ -2395,15 +2423,17 @@ switch (yykind)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
inline
|
inline
|
||||||
AgentParser::by_kind::by_kind (const by_kind& that)
|
AgentParser::by_kind::by_kind (const by_kind& that) YY_NOEXCEPT
|
||||||
: kind_ (that.kind_)
|
: kind_ (that.kind_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
inline
|
inline
|
||||||
AgentParser::by_kind::by_kind (token_kind_type t)
|
AgentParser::by_kind::by_kind (token_kind_type t) YY_NOEXCEPT
|
||||||
: kind_ (yytranslate_ (t))
|
: kind_ (yytranslate_ (t))
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
inline
|
inline
|
||||||
void
|
void
|
||||||
AgentParser::by_kind::clear () YY_NOEXCEPT
|
AgentParser::by_kind::clear () YY_NOEXCEPT
|
||||||
@@ -2426,6 +2456,7 @@ switch (yykind)
|
|||||||
return kind_;
|
return kind_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
inline
|
inline
|
||||||
AgentParser::symbol_kind_type
|
AgentParser::symbol_kind_type
|
||||||
AgentParser::by_kind::type_get () const YY_NOEXCEPT
|
AgentParser::by_kind::type_get () const YY_NOEXCEPT
|
||||||
@@ -2433,9 +2464,10 @@ switch (yykind)
|
|||||||
return this->kind ();
|
return this->kind ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#line 14 "agent_parser.yy"
|
#line 14 "agent_parser.yy"
|
||||||
} } // isc::agent
|
} } // isc::agent
|
||||||
#line 2439 "agent_parser.h"
|
#line 2471 "agent_parser.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// A Bison parser, made by GNU Bison 3.7.6.
|
// A Bison parser, made by GNU Bison 3.8.2.
|
||||||
|
|
||||||
// Locations for Bison parsers in C++
|
// Locations for Bison parsers in C++
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// A Bison parser, made by GNU Bison 3.7.6.
|
// A Bison parser, made by GNU Bison 3.8.2.
|
||||||
|
|
||||||
// Skeleton implementation for Bison LALR(1) parsers in C++
|
// Skeleton implementation for Bison LALR(1) parsers in C++
|
||||||
|
|
||||||
@@ -160,9 +160,9 @@ namespace isc { namespace d2 {
|
|||||||
D2Parser::syntax_error::~syntax_error () YY_NOEXCEPT YY_NOTHROW
|
D2Parser::syntax_error::~syntax_error () YY_NOEXCEPT YY_NOTHROW
|
||||||
{}
|
{}
|
||||||
|
|
||||||
/*---------------.
|
/*---------.
|
||||||
| symbol kinds. |
|
| symbol. |
|
||||||
`---------------*/
|
`---------*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -447,7 +447,7 @@ namespace isc { namespace d2 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
D2Parser::yypop_ (int n)
|
D2Parser::yypop_ (int n) YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
yystack_.pop (n);
|
yystack_.pop (n);
|
||||||
}
|
}
|
||||||
@@ -490,13 +490,13 @@ namespace isc { namespace d2 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
D2Parser::yy_pact_value_is_default_ (int yyvalue)
|
D2Parser::yy_pact_value_is_default_ (int yyvalue) YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
return yyvalue == yypact_ninf_;
|
return yyvalue == yypact_ninf_;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
D2Parser::yy_table_value_is_error_ (int yyvalue)
|
D2Parser::yy_table_value_is_error_ (int yyvalue) YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
return yyvalue == yytable_ninf_;
|
return yyvalue == yytable_ninf_;
|
||||||
}
|
}
|
||||||
@@ -2150,16 +2150,16 @@ namespace isc { namespace d2 {
|
|||||||
// Actual number of expected tokens
|
// Actual number of expected tokens
|
||||||
int yycount = 0;
|
int yycount = 0;
|
||||||
|
|
||||||
int yyn = yypact_[+yyparser_.yystack_[0].state];
|
const int yyn = yypact_[+yyparser_.yystack_[0].state];
|
||||||
if (!yy_pact_value_is_default_ (yyn))
|
if (!yy_pact_value_is_default_ (yyn))
|
||||||
{
|
{
|
||||||
/* Start YYX at -YYN if negative to avoid negative indexes in
|
/* Start YYX at -YYN if negative to avoid negative indexes in
|
||||||
YYCHECK. In other words, skip the first -YYN actions for
|
YYCHECK. In other words, skip the first -YYN actions for
|
||||||
this state because they are default actions. */
|
this state because they are default actions. */
|
||||||
int yyxbegin = yyn < 0 ? -yyn : 0;
|
const int yyxbegin = yyn < 0 ? -yyn : 0;
|
||||||
// Stay within bounds of both yycheck and yytname.
|
// Stay within bounds of both yycheck and yytname.
|
||||||
int yychecklim = yylast_ - yyn + 1;
|
const int yychecklim = yylast_ - yyn + 1;
|
||||||
int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
|
const int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
|
||||||
for (int yyx = yyxbegin; yyx < yyxend; ++yyx)
|
for (int yyx = yyxbegin; yyx < yyxend; ++yyx)
|
||||||
if (yycheck_[yyx + yyn] == yyx && yyx != symbol_kind::S_YYerror
|
if (yycheck_[yyx + yyn] == yyx && yyx != symbol_kind::S_YYerror
|
||||||
&& !yy_table_value_is_error_ (yytable_[yyx + yyn]))
|
&& !yy_table_value_is_error_ (yytable_[yyx + yyn]))
|
||||||
@@ -2180,6 +2180,9 @@ namespace isc { namespace d2 {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
D2Parser::yy_syntax_error_arguments_ (const context& yyctx,
|
D2Parser::yy_syntax_error_arguments_ (const context& yyctx,
|
||||||
symbol_kind_type yyarg[], int yyargn) const
|
symbol_kind_type yyarg[], int yyargn) const
|
||||||
@@ -2691,7 +2694,7 @@ namespace isc { namespace d2 {
|
|||||||
|
|
||||||
#line 14 "d2_parser.yy"
|
#line 14 "d2_parser.yy"
|
||||||
} } // isc::d2
|
} } // isc::d2
|
||||||
#line 2695 "d2_parser.cc"
|
#line 2698 "d2_parser.cc"
|
||||||
|
|
||||||
#line 929 "d2_parser.yy"
|
#line 929 "d2_parser.yy"
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// A Bison parser, made by GNU Bison 3.7.6.
|
// A Bison parser, made by GNU Bison 3.8.2.
|
||||||
|
|
||||||
// Skeleton interface for Bison LALR(1) parsers in C++
|
// Skeleton interface for Bison LALR(1) parsers in C++
|
||||||
|
|
||||||
@@ -133,12 +133,18 @@ using namespace std;
|
|||||||
# define YY_USE(E) /* empty */
|
# define YY_USE(E) /* empty */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
|
|
||||||
/* Suppress an incorrect diagnostic about yylval being uninitialized. */
|
/* Suppress an incorrect diagnostic about yylval being uninitialized. */
|
||||||
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
|
#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 \
|
||||||
_Pragma ("GCC diagnostic push") \
|
_Pragma ("GCC diagnostic push") \
|
||||||
_Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
|
_Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
|
||||||
_Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
|
_Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
|
||||||
|
# endif
|
||||||
# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
|
# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
|
||||||
_Pragma ("GCC diagnostic pop")
|
_Pragma ("GCC diagnostic pop")
|
||||||
#else
|
#else
|
||||||
@@ -200,7 +206,7 @@ using namespace std;
|
|||||||
|
|
||||||
#line 14 "d2_parser.yy"
|
#line 14 "d2_parser.yy"
|
||||||
namespace isc { namespace d2 {
|
namespace isc { namespace d2 {
|
||||||
#line 204 "d2_parser.h"
|
#line 210 "d2_parser.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -209,27 +215,32 @@ namespace isc { namespace d2 {
|
|||||||
class D2Parser
|
class D2Parser
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
#ifndef D2_PARSER_STYPE
|
#ifdef D2_PARSER_STYPE
|
||||||
|
# ifdef __GNUC__
|
||||||
|
# pragma GCC message "bison: do not #define D2_PARSER_STYPE in C++, use %define api.value.type"
|
||||||
|
# endif
|
||||||
|
typedef D2_PARSER_STYPE value_type;
|
||||||
|
#else
|
||||||
/// A buffer to store and retrieve objects.
|
/// A buffer to store and retrieve objects.
|
||||||
///
|
///
|
||||||
/// Sort of a variant, but does not keep track of the nature
|
/// Sort of a variant, but does not keep track of the nature
|
||||||
/// of the stored data, since that knowledge is available
|
/// of the stored data, since that knowledge is available
|
||||||
/// via the current parser state.
|
/// via the current parser state.
|
||||||
class semantic_type
|
class value_type
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/// Type of *this.
|
/// Type of *this.
|
||||||
typedef semantic_type self_type;
|
typedef value_type self_type;
|
||||||
|
|
||||||
/// Empty construction.
|
/// Empty construction.
|
||||||
semantic_type () YY_NOEXCEPT
|
value_type () YY_NOEXCEPT
|
||||||
: yybuffer_ ()
|
: yyraw_ ()
|
||||||
, yytypeid_ (YY_NULLPTR)
|
, yytypeid_ (YY_NULLPTR)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
/// Construct and fill.
|
/// Construct and fill.
|
||||||
template <typename T>
|
template <typename T>
|
||||||
semantic_type (YY_RVREF (T) t)
|
value_type (YY_RVREF (T) t)
|
||||||
: yytypeid_ (&typeid (T))
|
: yytypeid_ (&typeid (T))
|
||||||
{
|
{
|
||||||
D2_PARSER__ASSERT (sizeof (T) <= size);
|
D2_PARSER__ASSERT (sizeof (T) <= size);
|
||||||
@@ -238,13 +249,13 @@ namespace isc { namespace d2 {
|
|||||||
|
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
/// Non copyable.
|
/// Non copyable.
|
||||||
semantic_type (const self_type&) = delete;
|
value_type (const self_type&) = delete;
|
||||||
/// Non copyable.
|
/// Non copyable.
|
||||||
self_type& operator= (const self_type&) = delete;
|
self_type& operator= (const self_type&) = delete;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/// Destruction, allowed only if empty.
|
/// Destruction, allowed only if empty.
|
||||||
~semantic_type () YY_NOEXCEPT
|
~value_type () YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
D2_PARSER__ASSERT (!yytypeid_);
|
D2_PARSER__ASSERT (!yytypeid_);
|
||||||
}
|
}
|
||||||
@@ -388,7 +399,7 @@ namespace isc { namespace d2 {
|
|||||||
private:
|
private:
|
||||||
#if YY_CPLUSPLUS < 201103L
|
#if YY_CPLUSPLUS < 201103L
|
||||||
/// Non copyable.
|
/// Non copyable.
|
||||||
semantic_type (const self_type&);
|
value_type (const self_type&);
|
||||||
/// Non copyable.
|
/// Non copyable.
|
||||||
self_type& operator= (const self_type&);
|
self_type& operator= (const self_type&);
|
||||||
#endif
|
#endif
|
||||||
@@ -398,7 +409,7 @@ namespace isc { namespace d2 {
|
|||||||
T*
|
T*
|
||||||
yyas_ () YY_NOEXCEPT
|
yyas_ () YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
void *yyp = yybuffer_.yyraw;
|
void *yyp = yyraw_;
|
||||||
return static_cast<T*> (yyp);
|
return static_cast<T*> (yyp);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -407,7 +418,7 @@ namespace isc { namespace d2 {
|
|||||||
const T*
|
const T*
|
||||||
yyas_ () const YY_NOEXCEPT
|
yyas_ () const YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
const void *yyp = yybuffer_.yyraw;
|
const void *yyp = yyraw_;
|
||||||
return static_cast<const T*> (yyp);
|
return static_cast<const T*> (yyp);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -439,18 +450,19 @@ namespace isc { namespace d2 {
|
|||||||
union
|
union
|
||||||
{
|
{
|
||||||
/// Strongest alignment constraints.
|
/// Strongest alignment constraints.
|
||||||
long double yyalign_me;
|
long double yyalign_me_;
|
||||||
/// A buffer large enough to store any of the semantic values.
|
/// 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.
|
/// Whether the content is built: if defined, the name of the stored type.
|
||||||
const std::type_info *yytypeid_;
|
const std::type_info *yytypeid_;
|
||||||
};
|
};
|
||||||
|
|
||||||
#else
|
|
||||||
typedef D2_PARSER_STYPE semantic_type;
|
|
||||||
#endif
|
#endif
|
||||||
|
/// Backward compatibility (Bison 3.8).
|
||||||
|
typedef value_type semantic_type;
|
||||||
|
|
||||||
/// Symbol locations.
|
/// Symbol locations.
|
||||||
typedef location location_type;
|
typedef location location_type;
|
||||||
|
|
||||||
@@ -545,7 +557,7 @@ namespace isc { namespace d2 {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/// Token kind, as returned by yylex.
|
/// Token kind, as returned by yylex.
|
||||||
typedef token::yytokentype token_kind_type;
|
typedef token::token_kind_type token_kind_type;
|
||||||
|
|
||||||
/// Backward compatibility alias (Bison 3.6).
|
/// Backward compatibility alias (Bison 3.6).
|
||||||
typedef token_kind_type token_type;
|
typedef token_kind_type token_type;
|
||||||
@@ -791,7 +803,7 @@ namespace isc { namespace d2 {
|
|||||||
typedef Base super_type;
|
typedef Base super_type;
|
||||||
|
|
||||||
/// Default constructor.
|
/// Default constructor.
|
||||||
basic_symbol ()
|
basic_symbol () YY_NOEXCEPT
|
||||||
: value ()
|
: value ()
|
||||||
, location ()
|
, location ()
|
||||||
{}
|
{}
|
||||||
@@ -926,6 +938,8 @@ namespace isc { namespace d2 {
|
|||||||
clear ();
|
clear ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// Destroy contents, and record that is empty.
|
/// Destroy contents, and record that is empty.
|
||||||
void clear () YY_NOEXCEPT
|
void clear () YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
@@ -987,7 +1001,7 @@ switch (yykind)
|
|||||||
void move (basic_symbol& s);
|
void move (basic_symbol& s);
|
||||||
|
|
||||||
/// The semantic value.
|
/// The semantic value.
|
||||||
semantic_type value;
|
value_type value;
|
||||||
|
|
||||||
/// The location.
|
/// The location.
|
||||||
location_type location;
|
location_type location;
|
||||||
@@ -1002,22 +1016,24 @@ switch (yykind)
|
|||||||
/// Type access provider for token (enum) based symbols.
|
/// Type access provider for token (enum) based symbols.
|
||||||
struct by_kind
|
struct by_kind
|
||||||
{
|
{
|
||||||
/// Default constructor.
|
|
||||||
by_kind ();
|
|
||||||
|
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
|
||||||
/// Move constructor.
|
|
||||||
by_kind (by_kind&& that);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/// Copy constructor.
|
|
||||||
by_kind (const by_kind& that);
|
|
||||||
|
|
||||||
/// The symbol kind as needed by the constructor.
|
/// The symbol kind as needed by the constructor.
|
||||||
typedef token_kind_type kind_type;
|
typedef token_kind_type kind_type;
|
||||||
|
|
||||||
|
/// Default constructor.
|
||||||
|
by_kind () YY_NOEXCEPT;
|
||||||
|
|
||||||
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
|
/// Move constructor.
|
||||||
|
by_kind (by_kind&& that) YY_NOEXCEPT;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/// Copy constructor.
|
||||||
|
by_kind (const by_kind& that) YY_NOEXCEPT;
|
||||||
|
|
||||||
/// Constructor from (external) token numbers.
|
/// Constructor from (external) token numbers.
|
||||||
by_kind (kind_type t);
|
by_kind (kind_type t) YY_NOEXCEPT;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// Record that this symbol is empty.
|
/// Record that this symbol is empty.
|
||||||
void clear () YY_NOEXCEPT;
|
void clear () YY_NOEXCEPT;
|
||||||
@@ -1047,59 +1063,69 @@ switch (yykind)
|
|||||||
typedef basic_symbol<by_kind> super_type;
|
typedef basic_symbol<by_kind> super_type;
|
||||||
|
|
||||||
/// Empty symbol.
|
/// Empty symbol.
|
||||||
symbol_type () {}
|
symbol_type () YY_NOEXCEPT {}
|
||||||
|
|
||||||
/// Constructor for valueless symbols, and symbols from each type.
|
/// Constructor for valueless symbols, and symbols from each type.
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
symbol_type (int tok, location_type l)
|
symbol_type (int tok, location_type l)
|
||||||
: super_type(token_type (tok), std::move (l))
|
: super_type (token_kind_type (tok), std::move (l))
|
||||||
#else
|
#else
|
||||||
symbol_type (int tok, const location_type& l)
|
symbol_type (int tok, const location_type& l)
|
||||||
: super_type(token_type (tok), l)
|
: super_type (token_kind_type (tok), l)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
#if !defined _MSC_VER || defined __clang__
|
||||||
D2_PARSER__ASSERT (tok == token::TOKEN_END
|
D2_PARSER__ASSERT (tok == token::TOKEN_END
|
||||||
|| (token::TOKEN_D2_PARSER_error <= tok && tok <= token::TOKEN_SUB_HOOKS_LIBRARY));
|
|| (token::TOKEN_D2_PARSER_error <= tok && tok <= token::TOKEN_SUB_HOOKS_LIBRARY));
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
symbol_type (int tok, bool v, location_type l)
|
symbol_type (int tok, bool v, location_type l)
|
||||||
: super_type(token_type (tok), std::move (v), std::move (l))
|
: super_type (token_kind_type (tok), std::move (v), std::move (l))
|
||||||
#else
|
#else
|
||||||
symbol_type (int tok, const bool& v, const location_type& l)
|
symbol_type (int tok, const bool& v, const location_type& l)
|
||||||
: super_type(token_type (tok), v, l)
|
: super_type (token_kind_type (tok), v, l)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
#if !defined _MSC_VER || defined __clang__
|
||||||
D2_PARSER__ASSERT (tok == token::TOKEN_BOOLEAN);
|
D2_PARSER__ASSERT (tok == token::TOKEN_BOOLEAN);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
symbol_type (int tok, double v, location_type l)
|
symbol_type (int tok, double v, location_type l)
|
||||||
: super_type(token_type (tok), std::move (v), std::move (l))
|
: super_type (token_kind_type (tok), std::move (v), std::move (l))
|
||||||
#else
|
#else
|
||||||
symbol_type (int tok, const double& v, const location_type& l)
|
symbol_type (int tok, const double& v, const location_type& l)
|
||||||
: super_type(token_type (tok), v, l)
|
: super_type (token_kind_type (tok), v, l)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
#if !defined _MSC_VER || defined __clang__
|
||||||
D2_PARSER__ASSERT (tok == token::TOKEN_FLOAT);
|
D2_PARSER__ASSERT (tok == token::TOKEN_FLOAT);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
symbol_type (int tok, int64_t v, location_type l)
|
symbol_type (int tok, int64_t v, location_type l)
|
||||||
: super_type(token_type (tok), std::move (v), std::move (l))
|
: super_type (token_kind_type (tok), std::move (v), std::move (l))
|
||||||
#else
|
#else
|
||||||
symbol_type (int tok, const int64_t& v, const location_type& l)
|
symbol_type (int tok, const int64_t& v, const location_type& l)
|
||||||
: super_type(token_type (tok), v, l)
|
: super_type (token_kind_type (tok), v, l)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
#if !defined _MSC_VER || defined __clang__
|
||||||
D2_PARSER__ASSERT (tok == token::TOKEN_INTEGER);
|
D2_PARSER__ASSERT (tok == token::TOKEN_INTEGER);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
symbol_type (int tok, std::string v, location_type l)
|
symbol_type (int tok, std::string v, location_type l)
|
||||||
: super_type(token_type (tok), std::move (v), std::move (l))
|
: super_type (token_kind_type (tok), std::move (v), std::move (l))
|
||||||
#else
|
#else
|
||||||
symbol_type (int tok, const std::string& v, const location_type& l)
|
symbol_type (int tok, const std::string& v, const location_type& l)
|
||||||
: super_type(token_type (tok), v, l)
|
: super_type (token_kind_type (tok), v, l)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
#if !defined _MSC_VER || defined __clang__
|
||||||
D2_PARSER__ASSERT (tok == token::TOKEN_STRING);
|
D2_PARSER__ASSERT (tok == token::TOKEN_STRING);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1148,7 +1174,7 @@ switch (yykind)
|
|||||||
/// YYSYMBOL. No bounds checking.
|
/// YYSYMBOL. No bounds checking.
|
||||||
static std::string symbol_name (symbol_kind_type yysymbol);
|
static std::string symbol_name (symbol_kind_type yysymbol);
|
||||||
|
|
||||||
// Implementation of make_symbol for each symbol type.
|
// Implementation of make_symbol for each token kind.
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
static
|
static
|
||||||
symbol_type
|
symbol_type
|
||||||
@@ -2110,19 +2136,19 @@ switch (yykind)
|
|||||||
|
|
||||||
/// Whether the given \c yypact_ value indicates a defaulted state.
|
/// Whether the given \c yypact_ value indicates a defaulted state.
|
||||||
/// \param yyvalue the value to check
|
/// \param yyvalue the value to check
|
||||||
static bool yy_pact_value_is_default_ (int yyvalue);
|
static bool yy_pact_value_is_default_ (int yyvalue) YY_NOEXCEPT;
|
||||||
|
|
||||||
/// Whether the given \c yytable_ value indicates a syntax error.
|
/// Whether the given \c yytable_ value indicates a syntax error.
|
||||||
/// \param yyvalue the value to check
|
/// \param yyvalue the value to check
|
||||||
static bool yy_table_value_is_error_ (int yyvalue);
|
static bool yy_table_value_is_error_ (int yyvalue) YY_NOEXCEPT;
|
||||||
|
|
||||||
static const short yypact_ninf_;
|
static const short yypact_ninf_;
|
||||||
static const signed char yytable_ninf_;
|
static const signed char yytable_ninf_;
|
||||||
|
|
||||||
/// Convert a scanner token kind \a t to a symbol kind.
|
/// Convert a scanner token kind \a t to a symbol kind.
|
||||||
/// In theory \a t should be a token_kind_type, but character literals
|
/// In theory \a t should be a token_kind_type, but character literals
|
||||||
/// are valid, yet not members of the token_type enum.
|
/// are valid, yet not members of the token_kind_type enum.
|
||||||
static symbol_kind_type yytranslate_ (int t);
|
static symbol_kind_type yytranslate_ (int t) YY_NOEXCEPT;
|
||||||
|
|
||||||
/// Convert the symbol name \a n to a form suitable for a diagnostic.
|
/// Convert the symbol name \a n to a form suitable for a diagnostic.
|
||||||
static std::string yytnamerr_ (const char *yystr);
|
static std::string yytnamerr_ (const char *yystr);
|
||||||
@@ -2154,14 +2180,14 @@ switch (yykind)
|
|||||||
|
|
||||||
static const short yycheck_[];
|
static const short yycheck_[];
|
||||||
|
|
||||||
// YYSTOS[STATE-NUM] -- The (internal number of the) accessing
|
// YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
|
||||||
// symbol of state STATE-NUM.
|
// state STATE-NUM.
|
||||||
static const unsigned char yystos_[];
|
static const unsigned char yystos_[];
|
||||||
|
|
||||||
// YYR1[YYN] -- Symbol number of symbol that rule YYN derives.
|
// YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.
|
||||||
static const unsigned char yyr1_[];
|
static const unsigned char yyr1_[];
|
||||||
|
|
||||||
// YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.
|
// YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.
|
||||||
static const signed char yyr2_[];
|
static const signed char yyr2_[];
|
||||||
|
|
||||||
|
|
||||||
@@ -2260,7 +2286,7 @@ switch (yykind)
|
|||||||
typedef typename S::size_type size_type;
|
typedef typename S::size_type size_type;
|
||||||
typedef typename std::ptrdiff_t index_type;
|
typedef typename std::ptrdiff_t index_type;
|
||||||
|
|
||||||
stack (size_type n = 200)
|
stack (size_type n = 200) YY_NOEXCEPT
|
||||||
: seq_ (n)
|
: seq_ (n)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
@@ -2339,7 +2365,7 @@ switch (yykind)
|
|||||||
class slice
|
class slice
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
slice (const stack& stack, index_type range)
|
slice (const stack& stack, index_type range) YY_NOEXCEPT
|
||||||
: stack_ (stack)
|
: stack_ (stack)
|
||||||
, range_ (range)
|
, range_ (range)
|
||||||
{}
|
{}
|
||||||
@@ -2389,7 +2415,7 @@ switch (yykind)
|
|||||||
void yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym);
|
void yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym);
|
||||||
|
|
||||||
/// Pop \a n symbols from the stack.
|
/// Pop \a n symbols from the stack.
|
||||||
void yypop_ (int n = 1);
|
void yypop_ (int n = 1) YY_NOEXCEPT;
|
||||||
|
|
||||||
/// Constants.
|
/// Constants.
|
||||||
enum
|
enum
|
||||||
@@ -2407,7 +2433,7 @@ switch (yykind)
|
|||||||
|
|
||||||
inline
|
inline
|
||||||
D2Parser::symbol_kind_type
|
D2Parser::symbol_kind_type
|
||||||
D2Parser::yytranslate_ (int t)
|
D2Parser::yytranslate_ (int t) YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
// YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to
|
// YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to
|
||||||
// TOKEN-NUM as returned by yylex.
|
// TOKEN-NUM as returned by yylex.
|
||||||
@@ -2454,7 +2480,7 @@ switch (yykind)
|
|||||||
if (t <= 0)
|
if (t <= 0)
|
||||||
return symbol_kind::S_YYEOF;
|
return symbol_kind::S_YYEOF;
|
||||||
else if (t <= code_max)
|
else if (t <= code_max)
|
||||||
return YY_CAST (symbol_kind_type, translate_table[t]);
|
return static_cast <symbol_kind_type> (translate_table[t]);
|
||||||
else
|
else
|
||||||
return symbol_kind::S_YYUNDEF;
|
return symbol_kind::S_YYUNDEF;
|
||||||
}
|
}
|
||||||
@@ -2498,6 +2524,7 @@ switch (yykind)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
template <typename Base>
|
template <typename Base>
|
||||||
D2Parser::symbol_kind_type
|
D2Parser::symbol_kind_type
|
||||||
D2Parser::basic_symbol<Base>::type_get () const YY_NOEXCEPT
|
D2Parser::basic_symbol<Base>::type_get () const YY_NOEXCEPT
|
||||||
@@ -2505,6 +2532,7 @@ switch (yykind)
|
|||||||
return this->kind ();
|
return this->kind ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template <typename Base>
|
template <typename Base>
|
||||||
bool
|
bool
|
||||||
D2Parser::basic_symbol<Base>::empty () const YY_NOEXCEPT
|
D2Parser::basic_symbol<Base>::empty () const YY_NOEXCEPT
|
||||||
@@ -2550,13 +2578,13 @@ switch (yykind)
|
|||||||
|
|
||||||
// by_kind.
|
// by_kind.
|
||||||
inline
|
inline
|
||||||
D2Parser::by_kind::by_kind ()
|
D2Parser::by_kind::by_kind () YY_NOEXCEPT
|
||||||
: kind_ (symbol_kind::S_YYEMPTY)
|
: kind_ (symbol_kind::S_YYEMPTY)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
inline
|
inline
|
||||||
D2Parser::by_kind::by_kind (by_kind&& that)
|
D2Parser::by_kind::by_kind (by_kind&& that) YY_NOEXCEPT
|
||||||
: kind_ (that.kind_)
|
: kind_ (that.kind_)
|
||||||
{
|
{
|
||||||
that.clear ();
|
that.clear ();
|
||||||
@@ -2564,15 +2592,17 @@ switch (yykind)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
inline
|
inline
|
||||||
D2Parser::by_kind::by_kind (const by_kind& that)
|
D2Parser::by_kind::by_kind (const by_kind& that) YY_NOEXCEPT
|
||||||
: kind_ (that.kind_)
|
: kind_ (that.kind_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
inline
|
inline
|
||||||
D2Parser::by_kind::by_kind (token_kind_type t)
|
D2Parser::by_kind::by_kind (token_kind_type t) YY_NOEXCEPT
|
||||||
: kind_ (yytranslate_ (t))
|
: kind_ (yytranslate_ (t))
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
inline
|
inline
|
||||||
void
|
void
|
||||||
D2Parser::by_kind::clear () YY_NOEXCEPT
|
D2Parser::by_kind::clear () YY_NOEXCEPT
|
||||||
@@ -2595,6 +2625,7 @@ switch (yykind)
|
|||||||
return kind_;
|
return kind_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
inline
|
inline
|
||||||
D2Parser::symbol_kind_type
|
D2Parser::symbol_kind_type
|
||||||
D2Parser::by_kind::type_get () const YY_NOEXCEPT
|
D2Parser::by_kind::type_get () const YY_NOEXCEPT
|
||||||
@@ -2602,9 +2633,10 @@ switch (yykind)
|
|||||||
return this->kind ();
|
return this->kind ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#line 14 "d2_parser.yy"
|
#line 14 "d2_parser.yy"
|
||||||
} } // isc::d2
|
} } // isc::d2
|
||||||
#line 2608 "d2_parser.h"
|
#line 2640 "d2_parser.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// A Bison parser, made by GNU Bison 3.7.6.
|
// A Bison parser, made by GNU Bison 3.8.2.
|
||||||
|
|
||||||
// Locations for Bison parsers in C++
|
// Locations for Bison parsers in C++
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// A Bison parser, made by GNU Bison 3.7.6.
|
// A Bison parser, made by GNU Bison 3.8.2.
|
||||||
|
|
||||||
// Skeleton implementation for Bison LALR(1) parsers in C++
|
// Skeleton implementation for Bison LALR(1) parsers in C++
|
||||||
|
|
||||||
@@ -160,9 +160,9 @@ namespace isc { namespace dhcp {
|
|||||||
Dhcp4Parser::syntax_error::~syntax_error () YY_NOEXCEPT YY_NOTHROW
|
Dhcp4Parser::syntax_error::~syntax_error () YY_NOEXCEPT YY_NOTHROW
|
||||||
{}
|
{}
|
||||||
|
|
||||||
/*---------------.
|
/*---------.
|
||||||
| symbol kinds. |
|
| symbol. |
|
||||||
`---------------*/
|
`---------*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -507,7 +507,7 @@ namespace isc { namespace dhcp {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Dhcp4Parser::yypop_ (int n)
|
Dhcp4Parser::yypop_ (int n) YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
yystack_.pop (n);
|
yystack_.pop (n);
|
||||||
}
|
}
|
||||||
@@ -550,13 +550,13 @@ namespace isc { namespace dhcp {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
Dhcp4Parser::yy_pact_value_is_default_ (int yyvalue)
|
Dhcp4Parser::yy_pact_value_is_default_ (int yyvalue) YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
return yyvalue == yypact_ninf_;
|
return yyvalue == yypact_ninf_;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
Dhcp4Parser::yy_table_value_is_error_ (int yyvalue)
|
Dhcp4Parser::yy_table_value_is_error_ (int yyvalue) YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
return yyvalue == yytable_ninf_;
|
return yyvalue == yytable_ninf_;
|
||||||
}
|
}
|
||||||
@@ -4479,16 +4479,16 @@ namespace isc { namespace dhcp {
|
|||||||
// Actual number of expected tokens
|
// Actual number of expected tokens
|
||||||
int yycount = 0;
|
int yycount = 0;
|
||||||
|
|
||||||
int yyn = yypact_[+yyparser_.yystack_[0].state];
|
const int yyn = yypact_[+yyparser_.yystack_[0].state];
|
||||||
if (!yy_pact_value_is_default_ (yyn))
|
if (!yy_pact_value_is_default_ (yyn))
|
||||||
{
|
{
|
||||||
/* Start YYX at -YYN if negative to avoid negative indexes in
|
/* Start YYX at -YYN if negative to avoid negative indexes in
|
||||||
YYCHECK. In other words, skip the first -YYN actions for
|
YYCHECK. In other words, skip the first -YYN actions for
|
||||||
this state because they are default actions. */
|
this state because they are default actions. */
|
||||||
int yyxbegin = yyn < 0 ? -yyn : 0;
|
const int yyxbegin = yyn < 0 ? -yyn : 0;
|
||||||
// Stay within bounds of both yycheck and yytname.
|
// Stay within bounds of both yycheck and yytname.
|
||||||
int yychecklim = yylast_ - yyn + 1;
|
const int yychecklim = yylast_ - yyn + 1;
|
||||||
int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
|
const int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
|
||||||
for (int yyx = yyxbegin; yyx < yyxend; ++yyx)
|
for (int yyx = yyxbegin; yyx < yyxend; ++yyx)
|
||||||
if (yycheck_[yyx + yyn] == yyx && yyx != symbol_kind::S_YYerror
|
if (yycheck_[yyx + yyn] == yyx && yyx != symbol_kind::S_YYerror
|
||||||
&& !yy_table_value_is_error_ (yytable_[yyx + yyn]))
|
&& !yy_table_value_is_error_ (yytable_[yyx + yyn]))
|
||||||
@@ -4509,6 +4509,9 @@ namespace isc { namespace dhcp {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
Dhcp4Parser::yy_syntax_error_arguments_ (const context& yyctx,
|
Dhcp4Parser::yy_syntax_error_arguments_ (const context& yyctx,
|
||||||
symbol_kind_type yyarg[], int yyargn) const
|
symbol_kind_type yyarg[], int yyargn) const
|
||||||
@@ -5833,7 +5836,7 @@ namespace isc { namespace dhcp {
|
|||||||
|
|
||||||
#line 14 "dhcp4_parser.yy"
|
#line 14 "dhcp4_parser.yy"
|
||||||
} } // isc::dhcp
|
} } // isc::dhcp
|
||||||
#line 5837 "dhcp4_parser.cc"
|
#line 5840 "dhcp4_parser.cc"
|
||||||
|
|
||||||
#line 2732 "dhcp4_parser.yy"
|
#line 2732 "dhcp4_parser.yy"
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// A Bison parser, made by GNU Bison 3.7.6.
|
// A Bison parser, made by GNU Bison 3.8.2.
|
||||||
|
|
||||||
// Skeleton interface for Bison LALR(1) parsers in C++
|
// Skeleton interface for Bison LALR(1) parsers in C++
|
||||||
|
|
||||||
@@ -133,12 +133,18 @@ using namespace std;
|
|||||||
# define YY_USE(E) /* empty */
|
# define YY_USE(E) /* empty */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
|
|
||||||
/* Suppress an incorrect diagnostic about yylval being uninitialized. */
|
/* Suppress an incorrect diagnostic about yylval being uninitialized. */
|
||||||
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
|
#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 \
|
||||||
_Pragma ("GCC diagnostic push") \
|
_Pragma ("GCC diagnostic push") \
|
||||||
_Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
|
_Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
|
||||||
_Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
|
_Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
|
||||||
|
# endif
|
||||||
# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
|
# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
|
||||||
_Pragma ("GCC diagnostic pop")
|
_Pragma ("GCC diagnostic pop")
|
||||||
#else
|
#else
|
||||||
@@ -200,7 +206,7 @@ using namespace std;
|
|||||||
|
|
||||||
#line 14 "dhcp4_parser.yy"
|
#line 14 "dhcp4_parser.yy"
|
||||||
namespace isc { namespace dhcp {
|
namespace isc { namespace dhcp {
|
||||||
#line 204 "dhcp4_parser.h"
|
#line 210 "dhcp4_parser.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -209,27 +215,32 @@ namespace isc { namespace dhcp {
|
|||||||
class Dhcp4Parser
|
class Dhcp4Parser
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
#ifndef PARSER4_STYPE
|
#ifdef PARSER4_STYPE
|
||||||
|
# ifdef __GNUC__
|
||||||
|
# pragma GCC message "bison: do not #define PARSER4_STYPE in C++, use %define api.value.type"
|
||||||
|
# endif
|
||||||
|
typedef PARSER4_STYPE value_type;
|
||||||
|
#else
|
||||||
/// A buffer to store and retrieve objects.
|
/// A buffer to store and retrieve objects.
|
||||||
///
|
///
|
||||||
/// Sort of a variant, but does not keep track of the nature
|
/// Sort of a variant, but does not keep track of the nature
|
||||||
/// of the stored data, since that knowledge is available
|
/// of the stored data, since that knowledge is available
|
||||||
/// via the current parser state.
|
/// via the current parser state.
|
||||||
class semantic_type
|
class value_type
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/// Type of *this.
|
/// Type of *this.
|
||||||
typedef semantic_type self_type;
|
typedef value_type self_type;
|
||||||
|
|
||||||
/// Empty construction.
|
/// Empty construction.
|
||||||
semantic_type () YY_NOEXCEPT
|
value_type () YY_NOEXCEPT
|
||||||
: yybuffer_ ()
|
: yyraw_ ()
|
||||||
, yytypeid_ (YY_NULLPTR)
|
, yytypeid_ (YY_NULLPTR)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
/// Construct and fill.
|
/// Construct and fill.
|
||||||
template <typename T>
|
template <typename T>
|
||||||
semantic_type (YY_RVREF (T) t)
|
value_type (YY_RVREF (T) t)
|
||||||
: yytypeid_ (&typeid (T))
|
: yytypeid_ (&typeid (T))
|
||||||
{
|
{
|
||||||
PARSER4__ASSERT (sizeof (T) <= size);
|
PARSER4__ASSERT (sizeof (T) <= size);
|
||||||
@@ -238,13 +249,13 @@ namespace isc { namespace dhcp {
|
|||||||
|
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
/// Non copyable.
|
/// Non copyable.
|
||||||
semantic_type (const self_type&) = delete;
|
value_type (const self_type&) = delete;
|
||||||
/// Non copyable.
|
/// Non copyable.
|
||||||
self_type& operator= (const self_type&) = delete;
|
self_type& operator= (const self_type&) = delete;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/// Destruction, allowed only if empty.
|
/// Destruction, allowed only if empty.
|
||||||
~semantic_type () YY_NOEXCEPT
|
~value_type () YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
PARSER4__ASSERT (!yytypeid_);
|
PARSER4__ASSERT (!yytypeid_);
|
||||||
}
|
}
|
||||||
@@ -388,7 +399,7 @@ namespace isc { namespace dhcp {
|
|||||||
private:
|
private:
|
||||||
#if YY_CPLUSPLUS < 201103L
|
#if YY_CPLUSPLUS < 201103L
|
||||||
/// Non copyable.
|
/// Non copyable.
|
||||||
semantic_type (const self_type&);
|
value_type (const self_type&);
|
||||||
/// Non copyable.
|
/// Non copyable.
|
||||||
self_type& operator= (const self_type&);
|
self_type& operator= (const self_type&);
|
||||||
#endif
|
#endif
|
||||||
@@ -398,7 +409,7 @@ namespace isc { namespace dhcp {
|
|||||||
T*
|
T*
|
||||||
yyas_ () YY_NOEXCEPT
|
yyas_ () YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
void *yyp = yybuffer_.yyraw;
|
void *yyp = yyraw_;
|
||||||
return static_cast<T*> (yyp);
|
return static_cast<T*> (yyp);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -407,7 +418,7 @@ namespace isc { namespace dhcp {
|
|||||||
const T*
|
const T*
|
||||||
yyas_ () const YY_NOEXCEPT
|
yyas_ () const YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
const void *yyp = yybuffer_.yyraw;
|
const void *yyp = yyraw_;
|
||||||
return static_cast<const T*> (yyp);
|
return static_cast<const T*> (yyp);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -445,18 +456,19 @@ namespace isc { namespace dhcp {
|
|||||||
union
|
union
|
||||||
{
|
{
|
||||||
/// Strongest alignment constraints.
|
/// Strongest alignment constraints.
|
||||||
long double yyalign_me;
|
long double yyalign_me_;
|
||||||
/// A buffer large enough to store any of the semantic values.
|
/// 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.
|
/// Whether the content is built: if defined, the name of the stored type.
|
||||||
const std::type_info *yytypeid_;
|
const std::type_info *yytypeid_;
|
||||||
};
|
};
|
||||||
|
|
||||||
#else
|
|
||||||
typedef PARSER4_STYPE semantic_type;
|
|
||||||
#endif
|
#endif
|
||||||
|
/// Backward compatibility (Bison 3.8).
|
||||||
|
typedef value_type semantic_type;
|
||||||
|
|
||||||
/// Symbol locations.
|
/// Symbol locations.
|
||||||
typedef location location_type;
|
typedef location location_type;
|
||||||
|
|
||||||
@@ -695,7 +707,7 @@ namespace isc { namespace dhcp {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/// Token kind, as returned by yylex.
|
/// Token kind, as returned by yylex.
|
||||||
typedef token::yytokentype token_kind_type;
|
typedef token::token_kind_type token_kind_type;
|
||||||
|
|
||||||
/// Backward compatibility alias (Bison 3.6).
|
/// Backward compatibility alias (Bison 3.6).
|
||||||
typedef token_kind_type token_type;
|
typedef token_kind_type token_type;
|
||||||
@@ -1353,7 +1365,7 @@ namespace isc { namespace dhcp {
|
|||||||
typedef Base super_type;
|
typedef Base super_type;
|
||||||
|
|
||||||
/// Default constructor.
|
/// Default constructor.
|
||||||
basic_symbol ()
|
basic_symbol () YY_NOEXCEPT
|
||||||
: value ()
|
: value ()
|
||||||
, location ()
|
, location ()
|
||||||
{}
|
{}
|
||||||
@@ -1494,6 +1506,8 @@ namespace isc { namespace dhcp {
|
|||||||
clear ();
|
clear ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// Destroy contents, and record that is empty.
|
/// Destroy contents, and record that is empty.
|
||||||
void clear () YY_NOEXCEPT
|
void clear () YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
@@ -1561,7 +1575,7 @@ switch (yykind)
|
|||||||
void move (basic_symbol& s);
|
void move (basic_symbol& s);
|
||||||
|
|
||||||
/// The semantic value.
|
/// The semantic value.
|
||||||
semantic_type value;
|
value_type value;
|
||||||
|
|
||||||
/// The location.
|
/// The location.
|
||||||
location_type location;
|
location_type location;
|
||||||
@@ -1576,22 +1590,24 @@ switch (yykind)
|
|||||||
/// Type access provider for token (enum) based symbols.
|
/// Type access provider for token (enum) based symbols.
|
||||||
struct by_kind
|
struct by_kind
|
||||||
{
|
{
|
||||||
/// Default constructor.
|
|
||||||
by_kind ();
|
|
||||||
|
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
|
||||||
/// Move constructor.
|
|
||||||
by_kind (by_kind&& that);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/// Copy constructor.
|
|
||||||
by_kind (const by_kind& that);
|
|
||||||
|
|
||||||
/// The symbol kind as needed by the constructor.
|
/// The symbol kind as needed by the constructor.
|
||||||
typedef token_kind_type kind_type;
|
typedef token_kind_type kind_type;
|
||||||
|
|
||||||
|
/// Default constructor.
|
||||||
|
by_kind () YY_NOEXCEPT;
|
||||||
|
|
||||||
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
|
/// Move constructor.
|
||||||
|
by_kind (by_kind&& that) YY_NOEXCEPT;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/// Copy constructor.
|
||||||
|
by_kind (const by_kind& that) YY_NOEXCEPT;
|
||||||
|
|
||||||
/// Constructor from (external) token numbers.
|
/// Constructor from (external) token numbers.
|
||||||
by_kind (kind_type t);
|
by_kind (kind_type t) YY_NOEXCEPT;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// Record that this symbol is empty.
|
/// Record that this symbol is empty.
|
||||||
void clear () YY_NOEXCEPT;
|
void clear () YY_NOEXCEPT;
|
||||||
@@ -1621,59 +1637,69 @@ switch (yykind)
|
|||||||
typedef basic_symbol<by_kind> super_type;
|
typedef basic_symbol<by_kind> super_type;
|
||||||
|
|
||||||
/// Empty symbol.
|
/// Empty symbol.
|
||||||
symbol_type () {}
|
symbol_type () YY_NOEXCEPT {}
|
||||||
|
|
||||||
/// Constructor for valueless symbols, and symbols from each type.
|
/// Constructor for valueless symbols, and symbols from each type.
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
symbol_type (int tok, location_type l)
|
symbol_type (int tok, location_type l)
|
||||||
: super_type(token_type (tok), std::move (l))
|
: super_type (token_kind_type (tok), std::move (l))
|
||||||
#else
|
#else
|
||||||
symbol_type (int tok, const location_type& l)
|
symbol_type (int tok, const location_type& l)
|
||||||
: super_type(token_type (tok), l)
|
: super_type (token_kind_type (tok), l)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
#if !defined _MSC_VER || defined __clang__
|
||||||
PARSER4__ASSERT (tok == token::TOKEN_END
|
PARSER4__ASSERT (tok == token::TOKEN_END
|
||||||
|| (token::TOKEN_PARSER4_error <= tok && tok <= token::TOKEN_SUB_CONFIG_CONTROL));
|
|| (token::TOKEN_PARSER4_error <= tok && tok <= token::TOKEN_SUB_CONFIG_CONTROL));
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
symbol_type (int tok, bool v, location_type l)
|
symbol_type (int tok, bool v, location_type l)
|
||||||
: super_type(token_type (tok), std::move (v), std::move (l))
|
: super_type (token_kind_type (tok), std::move (v), std::move (l))
|
||||||
#else
|
#else
|
||||||
symbol_type (int tok, const bool& v, const location_type& l)
|
symbol_type (int tok, const bool& v, const location_type& l)
|
||||||
: super_type(token_type (tok), v, l)
|
: super_type (token_kind_type (tok), v, l)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
#if !defined _MSC_VER || defined __clang__
|
||||||
PARSER4__ASSERT (tok == token::TOKEN_BOOLEAN);
|
PARSER4__ASSERT (tok == token::TOKEN_BOOLEAN);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
symbol_type (int tok, double v, location_type l)
|
symbol_type (int tok, double v, location_type l)
|
||||||
: super_type(token_type (tok), std::move (v), std::move (l))
|
: super_type (token_kind_type (tok), std::move (v), std::move (l))
|
||||||
#else
|
#else
|
||||||
symbol_type (int tok, const double& v, const location_type& l)
|
symbol_type (int tok, const double& v, const location_type& l)
|
||||||
: super_type(token_type (tok), v, l)
|
: super_type (token_kind_type (tok), v, l)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
#if !defined _MSC_VER || defined __clang__
|
||||||
PARSER4__ASSERT (tok == token::TOKEN_FLOAT);
|
PARSER4__ASSERT (tok == token::TOKEN_FLOAT);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
symbol_type (int tok, int64_t v, location_type l)
|
symbol_type (int tok, int64_t v, location_type l)
|
||||||
: super_type(token_type (tok), std::move (v), std::move (l))
|
: super_type (token_kind_type (tok), std::move (v), std::move (l))
|
||||||
#else
|
#else
|
||||||
symbol_type (int tok, const int64_t& v, const location_type& l)
|
symbol_type (int tok, const int64_t& v, const location_type& l)
|
||||||
: super_type(token_type (tok), v, l)
|
: super_type (token_kind_type (tok), v, l)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
#if !defined _MSC_VER || defined __clang__
|
||||||
PARSER4__ASSERT (tok == token::TOKEN_INTEGER);
|
PARSER4__ASSERT (tok == token::TOKEN_INTEGER);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
symbol_type (int tok, std::string v, location_type l)
|
symbol_type (int tok, std::string v, location_type l)
|
||||||
: super_type(token_type (tok), std::move (v), std::move (l))
|
: super_type (token_kind_type (tok), std::move (v), std::move (l))
|
||||||
#else
|
#else
|
||||||
symbol_type (int tok, const std::string& v, const location_type& l)
|
symbol_type (int tok, const std::string& v, const location_type& l)
|
||||||
: super_type(token_type (tok), v, l)
|
: super_type (token_kind_type (tok), v, l)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
#if !defined _MSC_VER || defined __clang__
|
||||||
PARSER4__ASSERT (tok == token::TOKEN_STRING);
|
PARSER4__ASSERT (tok == token::TOKEN_STRING);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1722,7 +1748,7 @@ switch (yykind)
|
|||||||
/// YYSYMBOL. No bounds checking.
|
/// YYSYMBOL. No bounds checking.
|
||||||
static std::string symbol_name (symbol_kind_type yysymbol);
|
static std::string symbol_name (symbol_kind_type yysymbol);
|
||||||
|
|
||||||
// Implementation of make_symbol for each symbol type.
|
// Implementation of make_symbol for each token kind.
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
static
|
static
|
||||||
symbol_type
|
symbol_type
|
||||||
@@ -4844,19 +4870,19 @@ switch (yykind)
|
|||||||
|
|
||||||
/// Whether the given \c yypact_ value indicates a defaulted state.
|
/// Whether the given \c yypact_ value indicates a defaulted state.
|
||||||
/// \param yyvalue the value to check
|
/// \param yyvalue the value to check
|
||||||
static bool yy_pact_value_is_default_ (int yyvalue);
|
static bool yy_pact_value_is_default_ (int yyvalue) YY_NOEXCEPT;
|
||||||
|
|
||||||
/// Whether the given \c yytable_ value indicates a syntax error.
|
/// Whether the given \c yytable_ value indicates a syntax error.
|
||||||
/// \param yyvalue the value to check
|
/// \param yyvalue the value to check
|
||||||
static bool yy_table_value_is_error_ (int yyvalue);
|
static bool yy_table_value_is_error_ (int yyvalue) YY_NOEXCEPT;
|
||||||
|
|
||||||
static const short yypact_ninf_;
|
static const short yypact_ninf_;
|
||||||
static const signed char yytable_ninf_;
|
static const signed char yytable_ninf_;
|
||||||
|
|
||||||
/// Convert a scanner token kind \a t to a symbol kind.
|
/// Convert a scanner token kind \a t to a symbol kind.
|
||||||
/// In theory \a t should be a token_kind_type, but character literals
|
/// In theory \a t should be a token_kind_type, but character literals
|
||||||
/// are valid, yet not members of the token_type enum.
|
/// are valid, yet not members of the token_kind_type enum.
|
||||||
static symbol_kind_type yytranslate_ (int t);
|
static symbol_kind_type yytranslate_ (int t) YY_NOEXCEPT;
|
||||||
|
|
||||||
/// Convert the symbol name \a n to a form suitable for a diagnostic.
|
/// Convert the symbol name \a n to a form suitable for a diagnostic.
|
||||||
static std::string yytnamerr_ (const char *yystr);
|
static std::string yytnamerr_ (const char *yystr);
|
||||||
@@ -4888,14 +4914,14 @@ switch (yykind)
|
|||||||
|
|
||||||
static const short yycheck_[];
|
static const short yycheck_[];
|
||||||
|
|
||||||
// YYSTOS[STATE-NUM] -- The (internal number of the) accessing
|
// YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
|
||||||
// symbol of state STATE-NUM.
|
// state STATE-NUM.
|
||||||
static const short yystos_[];
|
static const short yystos_[];
|
||||||
|
|
||||||
// YYR1[YYN] -- Symbol number of symbol that rule YYN derives.
|
// YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.
|
||||||
static const short yyr1_[];
|
static const short yyr1_[];
|
||||||
|
|
||||||
// YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.
|
// YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.
|
||||||
static const signed char yyr2_[];
|
static const signed char yyr2_[];
|
||||||
|
|
||||||
|
|
||||||
@@ -4994,7 +5020,7 @@ switch (yykind)
|
|||||||
typedef typename S::size_type size_type;
|
typedef typename S::size_type size_type;
|
||||||
typedef typename std::ptrdiff_t index_type;
|
typedef typename std::ptrdiff_t index_type;
|
||||||
|
|
||||||
stack (size_type n = 200)
|
stack (size_type n = 200) YY_NOEXCEPT
|
||||||
: seq_ (n)
|
: seq_ (n)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
@@ -5073,7 +5099,7 @@ switch (yykind)
|
|||||||
class slice
|
class slice
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
slice (const stack& stack, index_type range)
|
slice (const stack& stack, index_type range) YY_NOEXCEPT
|
||||||
: stack_ (stack)
|
: stack_ (stack)
|
||||||
, range_ (range)
|
, range_ (range)
|
||||||
{}
|
{}
|
||||||
@@ -5123,7 +5149,7 @@ switch (yykind)
|
|||||||
void yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym);
|
void yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym);
|
||||||
|
|
||||||
/// Pop \a n symbols from the stack.
|
/// Pop \a n symbols from the stack.
|
||||||
void yypop_ (int n = 1);
|
void yypop_ (int n = 1) YY_NOEXCEPT;
|
||||||
|
|
||||||
/// Constants.
|
/// Constants.
|
||||||
enum
|
enum
|
||||||
@@ -5141,7 +5167,7 @@ switch (yykind)
|
|||||||
|
|
||||||
inline
|
inline
|
||||||
Dhcp4Parser::symbol_kind_type
|
Dhcp4Parser::symbol_kind_type
|
||||||
Dhcp4Parser::yytranslate_ (int t)
|
Dhcp4Parser::yytranslate_ (int t) YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
// YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to
|
// YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to
|
||||||
// TOKEN-NUM as returned by yylex.
|
// TOKEN-NUM as returned by yylex.
|
||||||
@@ -5202,7 +5228,7 @@ switch (yykind)
|
|||||||
if (t <= 0)
|
if (t <= 0)
|
||||||
return symbol_kind::S_YYEOF;
|
return symbol_kind::S_YYEOF;
|
||||||
else if (t <= code_max)
|
else if (t <= code_max)
|
||||||
return YY_CAST (symbol_kind_type, translate_table[t]);
|
return static_cast <symbol_kind_type> (translate_table[t]);
|
||||||
else
|
else
|
||||||
return symbol_kind::S_YYUNDEF;
|
return symbol_kind::S_YYUNDEF;
|
||||||
}
|
}
|
||||||
@@ -5252,6 +5278,7 @@ switch (yykind)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
template <typename Base>
|
template <typename Base>
|
||||||
Dhcp4Parser::symbol_kind_type
|
Dhcp4Parser::symbol_kind_type
|
||||||
Dhcp4Parser::basic_symbol<Base>::type_get () const YY_NOEXCEPT
|
Dhcp4Parser::basic_symbol<Base>::type_get () const YY_NOEXCEPT
|
||||||
@@ -5259,6 +5286,7 @@ switch (yykind)
|
|||||||
return this->kind ();
|
return this->kind ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template <typename Base>
|
template <typename Base>
|
||||||
bool
|
bool
|
||||||
Dhcp4Parser::basic_symbol<Base>::empty () const YY_NOEXCEPT
|
Dhcp4Parser::basic_symbol<Base>::empty () const YY_NOEXCEPT
|
||||||
@@ -5310,13 +5338,13 @@ switch (yykind)
|
|||||||
|
|
||||||
// by_kind.
|
// by_kind.
|
||||||
inline
|
inline
|
||||||
Dhcp4Parser::by_kind::by_kind ()
|
Dhcp4Parser::by_kind::by_kind () YY_NOEXCEPT
|
||||||
: kind_ (symbol_kind::S_YYEMPTY)
|
: kind_ (symbol_kind::S_YYEMPTY)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
inline
|
inline
|
||||||
Dhcp4Parser::by_kind::by_kind (by_kind&& that)
|
Dhcp4Parser::by_kind::by_kind (by_kind&& that) YY_NOEXCEPT
|
||||||
: kind_ (that.kind_)
|
: kind_ (that.kind_)
|
||||||
{
|
{
|
||||||
that.clear ();
|
that.clear ();
|
||||||
@@ -5324,15 +5352,17 @@ switch (yykind)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
inline
|
inline
|
||||||
Dhcp4Parser::by_kind::by_kind (const by_kind& that)
|
Dhcp4Parser::by_kind::by_kind (const by_kind& that) YY_NOEXCEPT
|
||||||
: kind_ (that.kind_)
|
: kind_ (that.kind_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
inline
|
inline
|
||||||
Dhcp4Parser::by_kind::by_kind (token_kind_type t)
|
Dhcp4Parser::by_kind::by_kind (token_kind_type t) YY_NOEXCEPT
|
||||||
: kind_ (yytranslate_ (t))
|
: kind_ (yytranslate_ (t))
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
inline
|
inline
|
||||||
void
|
void
|
||||||
Dhcp4Parser::by_kind::clear () YY_NOEXCEPT
|
Dhcp4Parser::by_kind::clear () YY_NOEXCEPT
|
||||||
@@ -5355,6 +5385,7 @@ switch (yykind)
|
|||||||
return kind_;
|
return kind_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
inline
|
inline
|
||||||
Dhcp4Parser::symbol_kind_type
|
Dhcp4Parser::symbol_kind_type
|
||||||
Dhcp4Parser::by_kind::type_get () const YY_NOEXCEPT
|
Dhcp4Parser::by_kind::type_get () const YY_NOEXCEPT
|
||||||
@@ -5362,9 +5393,10 @@ switch (yykind)
|
|||||||
return this->kind ();
|
return this->kind ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#line 14 "dhcp4_parser.yy"
|
#line 14 "dhcp4_parser.yy"
|
||||||
} } // isc::dhcp
|
} } // isc::dhcp
|
||||||
#line 5368 "dhcp4_parser.h"
|
#line 5400 "dhcp4_parser.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// A Bison parser, made by GNU Bison 3.7.6.
|
// A Bison parser, made by GNU Bison 3.8.2.
|
||||||
|
|
||||||
// Locations for Bison parsers in C++
|
// Locations for Bison parsers in C++
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// A Bison parser, made by GNU Bison 3.7.6.
|
// A Bison parser, made by GNU Bison 3.8.2.
|
||||||
|
|
||||||
// Skeleton implementation for Bison LALR(1) parsers in C++
|
// Skeleton implementation for Bison LALR(1) parsers in C++
|
||||||
|
|
||||||
@@ -160,9 +160,9 @@ namespace isc { namespace dhcp {
|
|||||||
Dhcp6Parser::syntax_error::~syntax_error () YY_NOEXCEPT YY_NOTHROW
|
Dhcp6Parser::syntax_error::~syntax_error () YY_NOEXCEPT YY_NOTHROW
|
||||||
{}
|
{}
|
||||||
|
|
||||||
/*---------------.
|
/*---------.
|
||||||
| symbol kinds. |
|
| symbol. |
|
||||||
`---------------*/
|
`---------*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -497,7 +497,7 @@ namespace isc { namespace dhcp {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Dhcp6Parser::yypop_ (int n)
|
Dhcp6Parser::yypop_ (int n) YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
yystack_.pop (n);
|
yystack_.pop (n);
|
||||||
}
|
}
|
||||||
@@ -540,13 +540,13 @@ namespace isc { namespace dhcp {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
Dhcp6Parser::yy_pact_value_is_default_ (int yyvalue)
|
Dhcp6Parser::yy_pact_value_is_default_ (int yyvalue) YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
return yyvalue == yypact_ninf_;
|
return yyvalue == yypact_ninf_;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
Dhcp6Parser::yy_table_value_is_error_ (int yyvalue)
|
Dhcp6Parser::yy_table_value_is_error_ (int yyvalue) YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
return yyvalue == yytable_ninf_;
|
return yyvalue == yytable_ninf_;
|
||||||
}
|
}
|
||||||
@@ -4601,16 +4601,16 @@ namespace isc { namespace dhcp {
|
|||||||
// Actual number of expected tokens
|
// Actual number of expected tokens
|
||||||
int yycount = 0;
|
int yycount = 0;
|
||||||
|
|
||||||
int yyn = yypact_[+yyparser_.yystack_[0].state];
|
const int yyn = yypact_[+yyparser_.yystack_[0].state];
|
||||||
if (!yy_pact_value_is_default_ (yyn))
|
if (!yy_pact_value_is_default_ (yyn))
|
||||||
{
|
{
|
||||||
/* Start YYX at -YYN if negative to avoid negative indexes in
|
/* Start YYX at -YYN if negative to avoid negative indexes in
|
||||||
YYCHECK. In other words, skip the first -YYN actions for
|
YYCHECK. In other words, skip the first -YYN actions for
|
||||||
this state because they are default actions. */
|
this state because they are default actions. */
|
||||||
int yyxbegin = yyn < 0 ? -yyn : 0;
|
const int yyxbegin = yyn < 0 ? -yyn : 0;
|
||||||
// Stay within bounds of both yycheck and yytname.
|
// Stay within bounds of both yycheck and yytname.
|
||||||
int yychecklim = yylast_ - yyn + 1;
|
const int yychecklim = yylast_ - yyn + 1;
|
||||||
int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
|
const int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
|
||||||
for (int yyx = yyxbegin; yyx < yyxend; ++yyx)
|
for (int yyx = yyxbegin; yyx < yyxend; ++yyx)
|
||||||
if (yycheck_[yyx + yyn] == yyx && yyx != symbol_kind::S_YYerror
|
if (yycheck_[yyx + yyn] == yyx && yyx != symbol_kind::S_YYerror
|
||||||
&& !yy_table_value_is_error_ (yytable_[yyx + yyn]))
|
&& !yy_table_value_is_error_ (yytable_[yyx + yyn]))
|
||||||
@@ -4631,6 +4631,9 @@ namespace isc { namespace dhcp {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
Dhcp6Parser::yy_syntax_error_arguments_ (const context& yyctx,
|
Dhcp6Parser::yy_syntax_error_arguments_ (const context& yyctx,
|
||||||
symbol_kind_type yyarg[], int yyargn) const
|
symbol_kind_type yyarg[], int yyargn) const
|
||||||
@@ -5977,7 +5980,7 @@ namespace isc { namespace dhcp {
|
|||||||
|
|
||||||
#line 14 "dhcp6_parser.yy"
|
#line 14 "dhcp6_parser.yy"
|
||||||
} } // isc::dhcp
|
} } // isc::dhcp
|
||||||
#line 5981 "dhcp6_parser.cc"
|
#line 5984 "dhcp6_parser.cc"
|
||||||
|
|
||||||
#line 2864 "dhcp6_parser.yy"
|
#line 2864 "dhcp6_parser.yy"
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// A Bison parser, made by GNU Bison 3.7.6.
|
// A Bison parser, made by GNU Bison 3.8.2.
|
||||||
|
|
||||||
// Skeleton interface for Bison LALR(1) parsers in C++
|
// Skeleton interface for Bison LALR(1) parsers in C++
|
||||||
|
|
||||||
@@ -133,12 +133,18 @@ using namespace std;
|
|||||||
# define YY_USE(E) /* empty */
|
# define YY_USE(E) /* empty */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
|
|
||||||
/* Suppress an incorrect diagnostic about yylval being uninitialized. */
|
/* Suppress an incorrect diagnostic about yylval being uninitialized. */
|
||||||
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
|
#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 \
|
||||||
_Pragma ("GCC diagnostic push") \
|
_Pragma ("GCC diagnostic push") \
|
||||||
_Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
|
_Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
|
||||||
_Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
|
_Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
|
||||||
|
# endif
|
||||||
# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
|
# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
|
||||||
_Pragma ("GCC diagnostic pop")
|
_Pragma ("GCC diagnostic pop")
|
||||||
#else
|
#else
|
||||||
@@ -200,7 +206,7 @@ using namespace std;
|
|||||||
|
|
||||||
#line 14 "dhcp6_parser.yy"
|
#line 14 "dhcp6_parser.yy"
|
||||||
namespace isc { namespace dhcp {
|
namespace isc { namespace dhcp {
|
||||||
#line 204 "dhcp6_parser.h"
|
#line 210 "dhcp6_parser.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -209,27 +215,32 @@ namespace isc { namespace dhcp {
|
|||||||
class Dhcp6Parser
|
class Dhcp6Parser
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
#ifndef PARSER6_STYPE
|
#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
|
||||||
/// A buffer to store and retrieve objects.
|
/// A buffer to store and retrieve objects.
|
||||||
///
|
///
|
||||||
/// Sort of a variant, but does not keep track of the nature
|
/// Sort of a variant, but does not keep track of the nature
|
||||||
/// of the stored data, since that knowledge is available
|
/// of the stored data, since that knowledge is available
|
||||||
/// via the current parser state.
|
/// via the current parser state.
|
||||||
class semantic_type
|
class value_type
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/// Type of *this.
|
/// Type of *this.
|
||||||
typedef semantic_type self_type;
|
typedef value_type self_type;
|
||||||
|
|
||||||
/// Empty construction.
|
/// Empty construction.
|
||||||
semantic_type () YY_NOEXCEPT
|
value_type () YY_NOEXCEPT
|
||||||
: yybuffer_ ()
|
: yyraw_ ()
|
||||||
, yytypeid_ (YY_NULLPTR)
|
, yytypeid_ (YY_NULLPTR)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
/// Construct and fill.
|
/// Construct and fill.
|
||||||
template <typename T>
|
template <typename T>
|
||||||
semantic_type (YY_RVREF (T) t)
|
value_type (YY_RVREF (T) t)
|
||||||
: yytypeid_ (&typeid (T))
|
: yytypeid_ (&typeid (T))
|
||||||
{
|
{
|
||||||
PARSER6__ASSERT (sizeof (T) <= size);
|
PARSER6__ASSERT (sizeof (T) <= size);
|
||||||
@@ -238,13 +249,13 @@ namespace isc { namespace dhcp {
|
|||||||
|
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
/// Non copyable.
|
/// Non copyable.
|
||||||
semantic_type (const self_type&) = delete;
|
value_type (const self_type&) = delete;
|
||||||
/// Non copyable.
|
/// Non copyable.
|
||||||
self_type& operator= (const self_type&) = delete;
|
self_type& operator= (const self_type&) = delete;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/// Destruction, allowed only if empty.
|
/// Destruction, allowed only if empty.
|
||||||
~semantic_type () YY_NOEXCEPT
|
~value_type () YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
PARSER6__ASSERT (!yytypeid_);
|
PARSER6__ASSERT (!yytypeid_);
|
||||||
}
|
}
|
||||||
@@ -388,7 +399,7 @@ namespace isc { namespace dhcp {
|
|||||||
private:
|
private:
|
||||||
#if YY_CPLUSPLUS < 201103L
|
#if YY_CPLUSPLUS < 201103L
|
||||||
/// Non copyable.
|
/// Non copyable.
|
||||||
semantic_type (const self_type&);
|
value_type (const self_type&);
|
||||||
/// Non copyable.
|
/// Non copyable.
|
||||||
self_type& operator= (const self_type&);
|
self_type& operator= (const self_type&);
|
||||||
#endif
|
#endif
|
||||||
@@ -398,7 +409,7 @@ namespace isc { namespace dhcp {
|
|||||||
T*
|
T*
|
||||||
yyas_ () YY_NOEXCEPT
|
yyas_ () YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
void *yyp = yybuffer_.yyraw;
|
void *yyp = yyraw_;
|
||||||
return static_cast<T*> (yyp);
|
return static_cast<T*> (yyp);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -407,7 +418,7 @@ namespace isc { namespace dhcp {
|
|||||||
const T*
|
const T*
|
||||||
yyas_ () const YY_NOEXCEPT
|
yyas_ () const YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
const void *yyp = yybuffer_.yyraw;
|
const void *yyp = yyraw_;
|
||||||
return static_cast<const T*> (yyp);
|
return static_cast<const T*> (yyp);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -444,18 +455,19 @@ namespace isc { namespace dhcp {
|
|||||||
union
|
union
|
||||||
{
|
{
|
||||||
/// Strongest alignment constraints.
|
/// Strongest alignment constraints.
|
||||||
long double yyalign_me;
|
long double yyalign_me_;
|
||||||
/// A buffer large enough to store any of the semantic values.
|
/// 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.
|
/// Whether the content is built: if defined, the name of the stored type.
|
||||||
const std::type_info *yytypeid_;
|
const std::type_info *yytypeid_;
|
||||||
};
|
};
|
||||||
|
|
||||||
#else
|
|
||||||
typedef PARSER6_STYPE semantic_type;
|
|
||||||
#endif
|
#endif
|
||||||
|
/// Backward compatibility (Bison 3.8).
|
||||||
|
typedef value_type semantic_type;
|
||||||
|
|
||||||
/// Symbol locations.
|
/// Symbol locations.
|
||||||
typedef location location_type;
|
typedef location location_type;
|
||||||
|
|
||||||
@@ -702,7 +714,7 @@ namespace isc { namespace dhcp {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/// Token kind, as returned by yylex.
|
/// Token kind, as returned by yylex.
|
||||||
typedef token::yytokentype token_kind_type;
|
typedef token::token_kind_type token_kind_type;
|
||||||
|
|
||||||
/// Backward compatibility alias (Bison 3.6).
|
/// Backward compatibility alias (Bison 3.6).
|
||||||
typedef token_kind_type token_type;
|
typedef token_kind_type token_type;
|
||||||
@@ -1388,7 +1400,7 @@ namespace isc { namespace dhcp {
|
|||||||
typedef Base super_type;
|
typedef Base super_type;
|
||||||
|
|
||||||
/// Default constructor.
|
/// Default constructor.
|
||||||
basic_symbol ()
|
basic_symbol () YY_NOEXCEPT
|
||||||
: value ()
|
: value ()
|
||||||
, location ()
|
, location ()
|
||||||
{}
|
{}
|
||||||
@@ -1528,6 +1540,8 @@ namespace isc { namespace dhcp {
|
|||||||
clear ();
|
clear ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// Destroy contents, and record that is empty.
|
/// Destroy contents, and record that is empty.
|
||||||
void clear () YY_NOEXCEPT
|
void clear () YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
@@ -1594,7 +1608,7 @@ switch (yykind)
|
|||||||
void move (basic_symbol& s);
|
void move (basic_symbol& s);
|
||||||
|
|
||||||
/// The semantic value.
|
/// The semantic value.
|
||||||
semantic_type value;
|
value_type value;
|
||||||
|
|
||||||
/// The location.
|
/// The location.
|
||||||
location_type location;
|
location_type location;
|
||||||
@@ -1609,22 +1623,24 @@ switch (yykind)
|
|||||||
/// Type access provider for token (enum) based symbols.
|
/// Type access provider for token (enum) based symbols.
|
||||||
struct by_kind
|
struct by_kind
|
||||||
{
|
{
|
||||||
/// Default constructor.
|
|
||||||
by_kind ();
|
|
||||||
|
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
|
||||||
/// Move constructor.
|
|
||||||
by_kind (by_kind&& that);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/// Copy constructor.
|
|
||||||
by_kind (const by_kind& that);
|
|
||||||
|
|
||||||
/// The symbol kind as needed by the constructor.
|
/// The symbol kind as needed by the constructor.
|
||||||
typedef token_kind_type kind_type;
|
typedef token_kind_type kind_type;
|
||||||
|
|
||||||
|
/// Default constructor.
|
||||||
|
by_kind () YY_NOEXCEPT;
|
||||||
|
|
||||||
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
|
/// Move constructor.
|
||||||
|
by_kind (by_kind&& that) YY_NOEXCEPT;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/// Copy constructor.
|
||||||
|
by_kind (const by_kind& that) YY_NOEXCEPT;
|
||||||
|
|
||||||
/// Constructor from (external) token numbers.
|
/// Constructor from (external) token numbers.
|
||||||
by_kind (kind_type t);
|
by_kind (kind_type t) YY_NOEXCEPT;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// Record that this symbol is empty.
|
/// Record that this symbol is empty.
|
||||||
void clear () YY_NOEXCEPT;
|
void clear () YY_NOEXCEPT;
|
||||||
@@ -1654,59 +1670,69 @@ switch (yykind)
|
|||||||
typedef basic_symbol<by_kind> super_type;
|
typedef basic_symbol<by_kind> super_type;
|
||||||
|
|
||||||
/// Empty symbol.
|
/// Empty symbol.
|
||||||
symbol_type () {}
|
symbol_type () YY_NOEXCEPT {}
|
||||||
|
|
||||||
/// Constructor for valueless symbols, and symbols from each type.
|
/// Constructor for valueless symbols, and symbols from each type.
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
symbol_type (int tok, location_type l)
|
symbol_type (int tok, location_type l)
|
||||||
: super_type(token_type (tok), std::move (l))
|
: super_type (token_kind_type (tok), std::move (l))
|
||||||
#else
|
#else
|
||||||
symbol_type (int tok, const location_type& l)
|
symbol_type (int tok, const location_type& l)
|
||||||
: super_type(token_type (tok), l)
|
: super_type (token_kind_type (tok), l)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
#if !defined _MSC_VER || defined __clang__
|
||||||
PARSER6__ASSERT (tok == token::TOKEN_END
|
PARSER6__ASSERT (tok == token::TOKEN_END
|
||||||
|| (token::TOKEN_PARSER6_error <= tok && tok <= token::TOKEN_SUB_CONFIG_CONTROL));
|
|| (token::TOKEN_PARSER6_error <= tok && tok <= token::TOKEN_SUB_CONFIG_CONTROL));
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
symbol_type (int tok, bool v, location_type l)
|
symbol_type (int tok, bool v, location_type l)
|
||||||
: super_type(token_type (tok), std::move (v), std::move (l))
|
: super_type (token_kind_type (tok), std::move (v), std::move (l))
|
||||||
#else
|
#else
|
||||||
symbol_type (int tok, const bool& v, const location_type& l)
|
symbol_type (int tok, const bool& v, const location_type& l)
|
||||||
: super_type(token_type (tok), v, l)
|
: super_type (token_kind_type (tok), v, l)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
#if !defined _MSC_VER || defined __clang__
|
||||||
PARSER6__ASSERT (tok == token::TOKEN_BOOLEAN);
|
PARSER6__ASSERT (tok == token::TOKEN_BOOLEAN);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
symbol_type (int tok, double v, location_type l)
|
symbol_type (int tok, double v, location_type l)
|
||||||
: super_type(token_type (tok), std::move (v), std::move (l))
|
: super_type (token_kind_type (tok), std::move (v), std::move (l))
|
||||||
#else
|
#else
|
||||||
symbol_type (int tok, const double& v, const location_type& l)
|
symbol_type (int tok, const double& v, const location_type& l)
|
||||||
: super_type(token_type (tok), v, l)
|
: super_type (token_kind_type (tok), v, l)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
#if !defined _MSC_VER || defined __clang__
|
||||||
PARSER6__ASSERT (tok == token::TOKEN_FLOAT);
|
PARSER6__ASSERT (tok == token::TOKEN_FLOAT);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
symbol_type (int tok, int64_t v, location_type l)
|
symbol_type (int tok, int64_t v, location_type l)
|
||||||
: super_type(token_type (tok), std::move (v), std::move (l))
|
: super_type (token_kind_type (tok), std::move (v), std::move (l))
|
||||||
#else
|
#else
|
||||||
symbol_type (int tok, const int64_t& v, const location_type& l)
|
symbol_type (int tok, const int64_t& v, const location_type& l)
|
||||||
: super_type(token_type (tok), v, l)
|
: super_type (token_kind_type (tok), v, l)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
#if !defined _MSC_VER || defined __clang__
|
||||||
PARSER6__ASSERT (tok == token::TOKEN_INTEGER);
|
PARSER6__ASSERT (tok == token::TOKEN_INTEGER);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
symbol_type (int tok, std::string v, location_type l)
|
symbol_type (int tok, std::string v, location_type l)
|
||||||
: super_type(token_type (tok), std::move (v), std::move (l))
|
: super_type (token_kind_type (tok), std::move (v), std::move (l))
|
||||||
#else
|
#else
|
||||||
symbol_type (int tok, const std::string& v, const location_type& l)
|
symbol_type (int tok, const std::string& v, const location_type& l)
|
||||||
: super_type(token_type (tok), v, l)
|
: super_type (token_kind_type (tok), v, l)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
#if !defined _MSC_VER || defined __clang__
|
||||||
PARSER6__ASSERT (tok == token::TOKEN_STRING);
|
PARSER6__ASSERT (tok == token::TOKEN_STRING);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1755,7 +1781,7 @@ switch (yykind)
|
|||||||
/// YYSYMBOL. No bounds checking.
|
/// YYSYMBOL. No bounds checking.
|
||||||
static std::string symbol_name (symbol_kind_type yysymbol);
|
static std::string symbol_name (symbol_kind_type yysymbol);
|
||||||
|
|
||||||
// Implementation of make_symbol for each symbol type.
|
// Implementation of make_symbol for each token kind.
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
static
|
static
|
||||||
symbol_type
|
symbol_type
|
||||||
@@ -4997,19 +5023,19 @@ switch (yykind)
|
|||||||
|
|
||||||
/// Whether the given \c yypact_ value indicates a defaulted state.
|
/// Whether the given \c yypact_ value indicates a defaulted state.
|
||||||
/// \param yyvalue the value to check
|
/// \param yyvalue the value to check
|
||||||
static bool yy_pact_value_is_default_ (int yyvalue);
|
static bool yy_pact_value_is_default_ (int yyvalue) YY_NOEXCEPT;
|
||||||
|
|
||||||
/// Whether the given \c yytable_ value indicates a syntax error.
|
/// Whether the given \c yytable_ value indicates a syntax error.
|
||||||
/// \param yyvalue the value to check
|
/// \param yyvalue the value to check
|
||||||
static bool yy_table_value_is_error_ (int yyvalue);
|
static bool yy_table_value_is_error_ (int yyvalue) YY_NOEXCEPT;
|
||||||
|
|
||||||
static const short yypact_ninf_;
|
static const short yypact_ninf_;
|
||||||
static const signed char yytable_ninf_;
|
static const signed char yytable_ninf_;
|
||||||
|
|
||||||
/// Convert a scanner token kind \a t to a symbol kind.
|
/// Convert a scanner token kind \a t to a symbol kind.
|
||||||
/// In theory \a t should be a token_kind_type, but character literals
|
/// In theory \a t should be a token_kind_type, but character literals
|
||||||
/// are valid, yet not members of the token_type enum.
|
/// are valid, yet not members of the token_kind_type enum.
|
||||||
static symbol_kind_type yytranslate_ (int t);
|
static symbol_kind_type yytranslate_ (int t) YY_NOEXCEPT;
|
||||||
|
|
||||||
/// Convert the symbol name \a n to a form suitable for a diagnostic.
|
/// Convert the symbol name \a n to a form suitable for a diagnostic.
|
||||||
static std::string yytnamerr_ (const char *yystr);
|
static std::string yytnamerr_ (const char *yystr);
|
||||||
@@ -5041,14 +5067,14 @@ switch (yykind)
|
|||||||
|
|
||||||
static const short yycheck_[];
|
static const short yycheck_[];
|
||||||
|
|
||||||
// YYSTOS[STATE-NUM] -- The (internal number of the) accessing
|
// YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
|
||||||
// symbol of state STATE-NUM.
|
// state STATE-NUM.
|
||||||
static const short yystos_[];
|
static const short yystos_[];
|
||||||
|
|
||||||
// YYR1[YYN] -- Symbol number of symbol that rule YYN derives.
|
// YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.
|
||||||
static const short yyr1_[];
|
static const short yyr1_[];
|
||||||
|
|
||||||
// YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.
|
// YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.
|
||||||
static const signed char yyr2_[];
|
static const signed char yyr2_[];
|
||||||
|
|
||||||
|
|
||||||
@@ -5147,7 +5173,7 @@ switch (yykind)
|
|||||||
typedef typename S::size_type size_type;
|
typedef typename S::size_type size_type;
|
||||||
typedef typename std::ptrdiff_t index_type;
|
typedef typename std::ptrdiff_t index_type;
|
||||||
|
|
||||||
stack (size_type n = 200)
|
stack (size_type n = 200) YY_NOEXCEPT
|
||||||
: seq_ (n)
|
: seq_ (n)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
@@ -5226,7 +5252,7 @@ switch (yykind)
|
|||||||
class slice
|
class slice
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
slice (const stack& stack, index_type range)
|
slice (const stack& stack, index_type range) YY_NOEXCEPT
|
||||||
: stack_ (stack)
|
: stack_ (stack)
|
||||||
, range_ (range)
|
, range_ (range)
|
||||||
{}
|
{}
|
||||||
@@ -5276,7 +5302,7 @@ switch (yykind)
|
|||||||
void yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym);
|
void yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym);
|
||||||
|
|
||||||
/// Pop \a n symbols from the stack.
|
/// Pop \a n symbols from the stack.
|
||||||
void yypop_ (int n = 1);
|
void yypop_ (int n = 1) YY_NOEXCEPT;
|
||||||
|
|
||||||
/// Constants.
|
/// Constants.
|
||||||
enum
|
enum
|
||||||
@@ -5294,7 +5320,7 @@ switch (yykind)
|
|||||||
|
|
||||||
inline
|
inline
|
||||||
Dhcp6Parser::symbol_kind_type
|
Dhcp6Parser::symbol_kind_type
|
||||||
Dhcp6Parser::yytranslate_ (int t)
|
Dhcp6Parser::yytranslate_ (int t) YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
// YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to
|
// YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to
|
||||||
// TOKEN-NUM as returned by yylex.
|
// TOKEN-NUM as returned by yylex.
|
||||||
@@ -5356,7 +5382,7 @@ switch (yykind)
|
|||||||
if (t <= 0)
|
if (t <= 0)
|
||||||
return symbol_kind::S_YYEOF;
|
return symbol_kind::S_YYEOF;
|
||||||
else if (t <= code_max)
|
else if (t <= code_max)
|
||||||
return YY_CAST (symbol_kind_type, translate_table[t]);
|
return static_cast <symbol_kind_type> (translate_table[t]);
|
||||||
else
|
else
|
||||||
return symbol_kind::S_YYUNDEF;
|
return symbol_kind::S_YYUNDEF;
|
||||||
}
|
}
|
||||||
@@ -5405,6 +5431,7 @@ switch (yykind)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
template <typename Base>
|
template <typename Base>
|
||||||
Dhcp6Parser::symbol_kind_type
|
Dhcp6Parser::symbol_kind_type
|
||||||
Dhcp6Parser::basic_symbol<Base>::type_get () const YY_NOEXCEPT
|
Dhcp6Parser::basic_symbol<Base>::type_get () const YY_NOEXCEPT
|
||||||
@@ -5412,6 +5439,7 @@ switch (yykind)
|
|||||||
return this->kind ();
|
return this->kind ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template <typename Base>
|
template <typename Base>
|
||||||
bool
|
bool
|
||||||
Dhcp6Parser::basic_symbol<Base>::empty () const YY_NOEXCEPT
|
Dhcp6Parser::basic_symbol<Base>::empty () const YY_NOEXCEPT
|
||||||
@@ -5462,13 +5490,13 @@ switch (yykind)
|
|||||||
|
|
||||||
// by_kind.
|
// by_kind.
|
||||||
inline
|
inline
|
||||||
Dhcp6Parser::by_kind::by_kind ()
|
Dhcp6Parser::by_kind::by_kind () YY_NOEXCEPT
|
||||||
: kind_ (symbol_kind::S_YYEMPTY)
|
: kind_ (symbol_kind::S_YYEMPTY)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
inline
|
inline
|
||||||
Dhcp6Parser::by_kind::by_kind (by_kind&& that)
|
Dhcp6Parser::by_kind::by_kind (by_kind&& that) YY_NOEXCEPT
|
||||||
: kind_ (that.kind_)
|
: kind_ (that.kind_)
|
||||||
{
|
{
|
||||||
that.clear ();
|
that.clear ();
|
||||||
@@ -5476,15 +5504,17 @@ switch (yykind)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
inline
|
inline
|
||||||
Dhcp6Parser::by_kind::by_kind (const by_kind& that)
|
Dhcp6Parser::by_kind::by_kind (const by_kind& that) YY_NOEXCEPT
|
||||||
: kind_ (that.kind_)
|
: kind_ (that.kind_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
inline
|
inline
|
||||||
Dhcp6Parser::by_kind::by_kind (token_kind_type t)
|
Dhcp6Parser::by_kind::by_kind (token_kind_type t) YY_NOEXCEPT
|
||||||
: kind_ (yytranslate_ (t))
|
: kind_ (yytranslate_ (t))
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
inline
|
inline
|
||||||
void
|
void
|
||||||
Dhcp6Parser::by_kind::clear () YY_NOEXCEPT
|
Dhcp6Parser::by_kind::clear () YY_NOEXCEPT
|
||||||
@@ -5507,6 +5537,7 @@ switch (yykind)
|
|||||||
return kind_;
|
return kind_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
inline
|
inline
|
||||||
Dhcp6Parser::symbol_kind_type
|
Dhcp6Parser::symbol_kind_type
|
||||||
Dhcp6Parser::by_kind::type_get () const YY_NOEXCEPT
|
Dhcp6Parser::by_kind::type_get () const YY_NOEXCEPT
|
||||||
@@ -5514,9 +5545,10 @@ switch (yykind)
|
|||||||
return this->kind ();
|
return this->kind ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#line 14 "dhcp6_parser.yy"
|
#line 14 "dhcp6_parser.yy"
|
||||||
} } // isc::dhcp
|
} } // isc::dhcp
|
||||||
#line 5520 "dhcp6_parser.h"
|
#line 5552 "dhcp6_parser.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// A Bison parser, made by GNU Bison 3.7.6.
|
// A Bison parser, made by GNU Bison 3.8.2.
|
||||||
|
|
||||||
// Locations for Bison parsers in C++
|
// Locations for Bison parsers in C++
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// A Bison parser, made by GNU Bison 3.7.6.
|
// A Bison parser, made by GNU Bison 3.8.2.
|
||||||
|
|
||||||
// Locations for Bison parsers in C++
|
// Locations for Bison parsers in C++
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// A Bison parser, made by GNU Bison 3.7.6.
|
// A Bison parser, made by GNU Bison 3.8.2.
|
||||||
|
|
||||||
// Skeleton implementation for Bison LALR(1) parsers in C++
|
// Skeleton implementation for Bison LALR(1) parsers in C++
|
||||||
|
|
||||||
@@ -160,9 +160,9 @@ namespace isc { namespace netconf {
|
|||||||
NetconfParser::syntax_error::~syntax_error () YY_NOEXCEPT YY_NOTHROW
|
NetconfParser::syntax_error::~syntax_error () YY_NOEXCEPT YY_NOTHROW
|
||||||
{}
|
{}
|
||||||
|
|
||||||
/*---------------.
|
/*---------.
|
||||||
| symbol kinds. |
|
| symbol. |
|
||||||
`---------------*/
|
`---------*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -447,7 +447,7 @@ namespace isc { namespace netconf {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
NetconfParser::yypop_ (int n)
|
NetconfParser::yypop_ (int n) YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
yystack_.pop (n);
|
yystack_.pop (n);
|
||||||
}
|
}
|
||||||
@@ -490,13 +490,13 @@ namespace isc { namespace netconf {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
NetconfParser::yy_pact_value_is_default_ (int yyvalue)
|
NetconfParser::yy_pact_value_is_default_ (int yyvalue) YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
return yyvalue == yypact_ninf_;
|
return yyvalue == yypact_ninf_;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
NetconfParser::yy_table_value_is_error_ (int yyvalue)
|
NetconfParser::yy_table_value_is_error_ (int yyvalue) YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
return yyvalue == yytable_ninf_;
|
return yyvalue == yytable_ninf_;
|
||||||
}
|
}
|
||||||
@@ -1749,16 +1749,16 @@ namespace isc { namespace netconf {
|
|||||||
// Actual number of expected tokens
|
// Actual number of expected tokens
|
||||||
int yycount = 0;
|
int yycount = 0;
|
||||||
|
|
||||||
int yyn = yypact_[+yyparser_.yystack_[0].state];
|
const int yyn = yypact_[+yyparser_.yystack_[0].state];
|
||||||
if (!yy_pact_value_is_default_ (yyn))
|
if (!yy_pact_value_is_default_ (yyn))
|
||||||
{
|
{
|
||||||
/* Start YYX at -YYN if negative to avoid negative indexes in
|
/* Start YYX at -YYN if negative to avoid negative indexes in
|
||||||
YYCHECK. In other words, skip the first -YYN actions for
|
YYCHECK. In other words, skip the first -YYN actions for
|
||||||
this state because they are default actions. */
|
this state because they are default actions. */
|
||||||
int yyxbegin = yyn < 0 ? -yyn : 0;
|
const int yyxbegin = yyn < 0 ? -yyn : 0;
|
||||||
// Stay within bounds of both yycheck and yytname.
|
// Stay within bounds of both yycheck and yytname.
|
||||||
int yychecklim = yylast_ - yyn + 1;
|
const int yychecklim = yylast_ - yyn + 1;
|
||||||
int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
|
const int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
|
||||||
for (int yyx = yyxbegin; yyx < yyxend; ++yyx)
|
for (int yyx = yyxbegin; yyx < yyxend; ++yyx)
|
||||||
if (yycheck_[yyx + yyn] == yyx && yyx != symbol_kind::S_YYerror
|
if (yycheck_[yyx + yyn] == yyx && yyx != symbol_kind::S_YYerror
|
||||||
&& !yy_table_value_is_error_ (yytable_[yyx + yyn]))
|
&& !yy_table_value_is_error_ (yytable_[yyx + yyn]))
|
||||||
@@ -1779,6 +1779,9 @@ namespace isc { namespace netconf {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
NetconfParser::yy_syntax_error_arguments_ (const context& yyctx,
|
NetconfParser::yy_syntax_error_arguments_ (const context& yyctx,
|
||||||
symbol_kind_type yyarg[], int yyargn) const
|
symbol_kind_type yyarg[], int yyargn) const
|
||||||
@@ -2188,7 +2191,7 @@ namespace isc { namespace netconf {
|
|||||||
|
|
||||||
#line 14 "netconf_parser.yy"
|
#line 14 "netconf_parser.yy"
|
||||||
} } // isc::netconf
|
} } // isc::netconf
|
||||||
#line 2192 "netconf_parser.cc"
|
#line 2195 "netconf_parser.cc"
|
||||||
|
|
||||||
#line 706 "netconf_parser.yy"
|
#line 706 "netconf_parser.yy"
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// A Bison parser, made by GNU Bison 3.7.6.
|
// A Bison parser, made by GNU Bison 3.8.2.
|
||||||
|
|
||||||
// Skeleton interface for Bison LALR(1) parsers in C++
|
// Skeleton interface for Bison LALR(1) parsers in C++
|
||||||
|
|
||||||
@@ -132,12 +132,18 @@ using namespace std;
|
|||||||
# define YY_USE(E) /* empty */
|
# define YY_USE(E) /* empty */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
|
|
||||||
/* Suppress an incorrect diagnostic about yylval being uninitialized. */
|
/* Suppress an incorrect diagnostic about yylval being uninitialized. */
|
||||||
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
|
#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 \
|
||||||
_Pragma ("GCC diagnostic push") \
|
_Pragma ("GCC diagnostic push") \
|
||||||
_Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
|
_Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
|
||||||
_Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
|
_Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
|
||||||
|
# endif
|
||||||
# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
|
# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
|
||||||
_Pragma ("GCC diagnostic pop")
|
_Pragma ("GCC diagnostic pop")
|
||||||
#else
|
#else
|
||||||
@@ -199,7 +205,7 @@ using namespace std;
|
|||||||
|
|
||||||
#line 14 "netconf_parser.yy"
|
#line 14 "netconf_parser.yy"
|
||||||
namespace isc { namespace netconf {
|
namespace isc { namespace netconf {
|
||||||
#line 203 "netconf_parser.h"
|
#line 209 "netconf_parser.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -208,27 +214,32 @@ namespace isc { namespace netconf {
|
|||||||
class NetconfParser
|
class NetconfParser
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
#ifndef NETCONF_STYPE
|
#ifdef NETCONF_STYPE
|
||||||
|
# ifdef __GNUC__
|
||||||
|
# pragma GCC message "bison: do not #define NETCONF_STYPE in C++, use %define api.value.type"
|
||||||
|
# endif
|
||||||
|
typedef NETCONF_STYPE value_type;
|
||||||
|
#else
|
||||||
/// A buffer to store and retrieve objects.
|
/// A buffer to store and retrieve objects.
|
||||||
///
|
///
|
||||||
/// Sort of a variant, but does not keep track of the nature
|
/// Sort of a variant, but does not keep track of the nature
|
||||||
/// of the stored data, since that knowledge is available
|
/// of the stored data, since that knowledge is available
|
||||||
/// via the current parser state.
|
/// via the current parser state.
|
||||||
class semantic_type
|
class value_type
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/// Type of *this.
|
/// Type of *this.
|
||||||
typedef semantic_type self_type;
|
typedef value_type self_type;
|
||||||
|
|
||||||
/// Empty construction.
|
/// Empty construction.
|
||||||
semantic_type () YY_NOEXCEPT
|
value_type () YY_NOEXCEPT
|
||||||
: yybuffer_ ()
|
: yyraw_ ()
|
||||||
, yytypeid_ (YY_NULLPTR)
|
, yytypeid_ (YY_NULLPTR)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
/// Construct and fill.
|
/// Construct and fill.
|
||||||
template <typename T>
|
template <typename T>
|
||||||
semantic_type (YY_RVREF (T) t)
|
value_type (YY_RVREF (T) t)
|
||||||
: yytypeid_ (&typeid (T))
|
: yytypeid_ (&typeid (T))
|
||||||
{
|
{
|
||||||
NETCONF__ASSERT (sizeof (T) <= size);
|
NETCONF__ASSERT (sizeof (T) <= size);
|
||||||
@@ -237,13 +248,13 @@ namespace isc { namespace netconf {
|
|||||||
|
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
/// Non copyable.
|
/// Non copyable.
|
||||||
semantic_type (const self_type&) = delete;
|
value_type (const self_type&) = delete;
|
||||||
/// Non copyable.
|
/// Non copyable.
|
||||||
self_type& operator= (const self_type&) = delete;
|
self_type& operator= (const self_type&) = delete;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/// Destruction, allowed only if empty.
|
/// Destruction, allowed only if empty.
|
||||||
~semantic_type () YY_NOEXCEPT
|
~value_type () YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
NETCONF__ASSERT (!yytypeid_);
|
NETCONF__ASSERT (!yytypeid_);
|
||||||
}
|
}
|
||||||
@@ -387,7 +398,7 @@ namespace isc { namespace netconf {
|
|||||||
private:
|
private:
|
||||||
#if YY_CPLUSPLUS < 201103L
|
#if YY_CPLUSPLUS < 201103L
|
||||||
/// Non copyable.
|
/// Non copyable.
|
||||||
semantic_type (const self_type&);
|
value_type (const self_type&);
|
||||||
/// Non copyable.
|
/// Non copyable.
|
||||||
self_type& operator= (const self_type&);
|
self_type& operator= (const self_type&);
|
||||||
#endif
|
#endif
|
||||||
@@ -397,7 +408,7 @@ namespace isc { namespace netconf {
|
|||||||
T*
|
T*
|
||||||
yyas_ () YY_NOEXCEPT
|
yyas_ () YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
void *yyp = yybuffer_.yyraw;
|
void *yyp = yyraw_;
|
||||||
return static_cast<T*> (yyp);
|
return static_cast<T*> (yyp);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -406,7 +417,7 @@ namespace isc { namespace netconf {
|
|||||||
const T*
|
const T*
|
||||||
yyas_ () const YY_NOEXCEPT
|
yyas_ () const YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
const void *yyp = yybuffer_.yyraw;
|
const void *yyp = yyraw_;
|
||||||
return static_cast<const T*> (yyp);
|
return static_cast<const T*> (yyp);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -438,18 +449,19 @@ namespace isc { namespace netconf {
|
|||||||
union
|
union
|
||||||
{
|
{
|
||||||
/// Strongest alignment constraints.
|
/// Strongest alignment constraints.
|
||||||
long double yyalign_me;
|
long double yyalign_me_;
|
||||||
/// A buffer large enough to store any of the semantic values.
|
/// 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.
|
/// Whether the content is built: if defined, the name of the stored type.
|
||||||
const std::type_info *yytypeid_;
|
const std::type_info *yytypeid_;
|
||||||
};
|
};
|
||||||
|
|
||||||
#else
|
|
||||||
typedef NETCONF_STYPE semantic_type;
|
|
||||||
#endif
|
#endif
|
||||||
|
/// Backward compatibility (Bison 3.8).
|
||||||
|
typedef value_type semantic_type;
|
||||||
|
|
||||||
/// Symbol locations.
|
/// Symbol locations.
|
||||||
typedef location location_type;
|
typedef location location_type;
|
||||||
|
|
||||||
@@ -532,7 +544,7 @@ namespace isc { namespace netconf {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/// Token kind, as returned by yylex.
|
/// Token kind, as returned by yylex.
|
||||||
typedef token::yytokentype token_kind_type;
|
typedef token::token_kind_type token_kind_type;
|
||||||
|
|
||||||
/// Backward compatibility alias (Bison 3.6).
|
/// Backward compatibility alias (Bison 3.6).
|
||||||
typedef token_kind_type token_type;
|
typedef token_kind_type token_type;
|
||||||
@@ -714,7 +726,7 @@ namespace isc { namespace netconf {
|
|||||||
typedef Base super_type;
|
typedef Base super_type;
|
||||||
|
|
||||||
/// Default constructor.
|
/// Default constructor.
|
||||||
basic_symbol ()
|
basic_symbol () YY_NOEXCEPT
|
||||||
: value ()
|
: value ()
|
||||||
, location ()
|
, location ()
|
||||||
{}
|
{}
|
||||||
@@ -849,6 +861,8 @@ namespace isc { namespace netconf {
|
|||||||
clear ();
|
clear ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// Destroy contents, and record that is empty.
|
/// Destroy contents, and record that is empty.
|
||||||
void clear () YY_NOEXCEPT
|
void clear () YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
@@ -910,7 +924,7 @@ switch (yykind)
|
|||||||
void move (basic_symbol& s);
|
void move (basic_symbol& s);
|
||||||
|
|
||||||
/// The semantic value.
|
/// The semantic value.
|
||||||
semantic_type value;
|
value_type value;
|
||||||
|
|
||||||
/// The location.
|
/// The location.
|
||||||
location_type location;
|
location_type location;
|
||||||
@@ -925,22 +939,24 @@ switch (yykind)
|
|||||||
/// Type access provider for token (enum) based symbols.
|
/// Type access provider for token (enum) based symbols.
|
||||||
struct by_kind
|
struct by_kind
|
||||||
{
|
{
|
||||||
/// Default constructor.
|
|
||||||
by_kind ();
|
|
||||||
|
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
|
||||||
/// Move constructor.
|
|
||||||
by_kind (by_kind&& that);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/// Copy constructor.
|
|
||||||
by_kind (const by_kind& that);
|
|
||||||
|
|
||||||
/// The symbol kind as needed by the constructor.
|
/// The symbol kind as needed by the constructor.
|
||||||
typedef token_kind_type kind_type;
|
typedef token_kind_type kind_type;
|
||||||
|
|
||||||
|
/// Default constructor.
|
||||||
|
by_kind () YY_NOEXCEPT;
|
||||||
|
|
||||||
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
|
/// Move constructor.
|
||||||
|
by_kind (by_kind&& that) YY_NOEXCEPT;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/// Copy constructor.
|
||||||
|
by_kind (const by_kind& that) YY_NOEXCEPT;
|
||||||
|
|
||||||
/// Constructor from (external) token numbers.
|
/// Constructor from (external) token numbers.
|
||||||
by_kind (kind_type t);
|
by_kind (kind_type t) YY_NOEXCEPT;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// Record that this symbol is empty.
|
/// Record that this symbol is empty.
|
||||||
void clear () YY_NOEXCEPT;
|
void clear () YY_NOEXCEPT;
|
||||||
@@ -970,59 +986,69 @@ switch (yykind)
|
|||||||
typedef basic_symbol<by_kind> super_type;
|
typedef basic_symbol<by_kind> super_type;
|
||||||
|
|
||||||
/// Empty symbol.
|
/// Empty symbol.
|
||||||
symbol_type () {}
|
symbol_type () YY_NOEXCEPT {}
|
||||||
|
|
||||||
/// Constructor for valueless symbols, and symbols from each type.
|
/// Constructor for valueless symbols, and symbols from each type.
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
symbol_type (int tok, location_type l)
|
symbol_type (int tok, location_type l)
|
||||||
: super_type(token_type (tok), std::move (l))
|
: super_type (token_kind_type (tok), std::move (l))
|
||||||
#else
|
#else
|
||||||
symbol_type (int tok, const location_type& l)
|
symbol_type (int tok, const location_type& l)
|
||||||
: super_type(token_type (tok), l)
|
: super_type (token_kind_type (tok), l)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
#if !defined _MSC_VER || defined __clang__
|
||||||
NETCONF__ASSERT (tok == token::TOKEN_END
|
NETCONF__ASSERT (tok == token::TOKEN_END
|
||||||
|| (token::TOKEN_NETCONF_error <= tok && tok <= token::TOKEN_START_SUB_NETCONF));
|
|| (token::TOKEN_NETCONF_error <= tok && tok <= token::TOKEN_START_SUB_NETCONF));
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
symbol_type (int tok, bool v, location_type l)
|
symbol_type (int tok, bool v, location_type l)
|
||||||
: super_type(token_type (tok), std::move (v), std::move (l))
|
: super_type (token_kind_type (tok), std::move (v), std::move (l))
|
||||||
#else
|
#else
|
||||||
symbol_type (int tok, const bool& v, const location_type& l)
|
symbol_type (int tok, const bool& v, const location_type& l)
|
||||||
: super_type(token_type (tok), v, l)
|
: super_type (token_kind_type (tok), v, l)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
#if !defined _MSC_VER || defined __clang__
|
||||||
NETCONF__ASSERT (tok == token::TOKEN_BOOLEAN);
|
NETCONF__ASSERT (tok == token::TOKEN_BOOLEAN);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
symbol_type (int tok, double v, location_type l)
|
symbol_type (int tok, double v, location_type l)
|
||||||
: super_type(token_type (tok), std::move (v), std::move (l))
|
: super_type (token_kind_type (tok), std::move (v), std::move (l))
|
||||||
#else
|
#else
|
||||||
symbol_type (int tok, const double& v, const location_type& l)
|
symbol_type (int tok, const double& v, const location_type& l)
|
||||||
: super_type(token_type (tok), v, l)
|
: super_type (token_kind_type (tok), v, l)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
#if !defined _MSC_VER || defined __clang__
|
||||||
NETCONF__ASSERT (tok == token::TOKEN_FLOAT);
|
NETCONF__ASSERT (tok == token::TOKEN_FLOAT);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
symbol_type (int tok, int64_t v, location_type l)
|
symbol_type (int tok, int64_t v, location_type l)
|
||||||
: super_type(token_type (tok), std::move (v), std::move (l))
|
: super_type (token_kind_type (tok), std::move (v), std::move (l))
|
||||||
#else
|
#else
|
||||||
symbol_type (int tok, const int64_t& v, const location_type& l)
|
symbol_type (int tok, const int64_t& v, const location_type& l)
|
||||||
: super_type(token_type (tok), v, l)
|
: super_type (token_kind_type (tok), v, l)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
#if !defined _MSC_VER || defined __clang__
|
||||||
NETCONF__ASSERT (tok == token::TOKEN_INTEGER);
|
NETCONF__ASSERT (tok == token::TOKEN_INTEGER);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
symbol_type (int tok, std::string v, location_type l)
|
symbol_type (int tok, std::string v, location_type l)
|
||||||
: super_type(token_type (tok), std::move (v), std::move (l))
|
: super_type (token_kind_type (tok), std::move (v), std::move (l))
|
||||||
#else
|
#else
|
||||||
symbol_type (int tok, const std::string& v, const location_type& l)
|
symbol_type (int tok, const std::string& v, const location_type& l)
|
||||||
: super_type(token_type (tok), v, l)
|
: super_type (token_kind_type (tok), v, l)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
#if !defined _MSC_VER || defined __clang__
|
||||||
NETCONF__ASSERT (tok == token::TOKEN_STRING);
|
NETCONF__ASSERT (tok == token::TOKEN_STRING);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1071,7 +1097,7 @@ switch (yykind)
|
|||||||
/// YYSYMBOL. No bounds checking.
|
/// YYSYMBOL. No bounds checking.
|
||||||
static std::string symbol_name (symbol_kind_type yysymbol);
|
static std::string symbol_name (symbol_kind_type yysymbol);
|
||||||
|
|
||||||
// Implementation of make_symbol for each symbol type.
|
// Implementation of make_symbol for each token kind.
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
static
|
static
|
||||||
symbol_type
|
symbol_type
|
||||||
@@ -1853,19 +1879,19 @@ switch (yykind)
|
|||||||
|
|
||||||
/// Whether the given \c yypact_ value indicates a defaulted state.
|
/// Whether the given \c yypact_ value indicates a defaulted state.
|
||||||
/// \param yyvalue the value to check
|
/// \param yyvalue the value to check
|
||||||
static bool yy_pact_value_is_default_ (int yyvalue);
|
static bool yy_pact_value_is_default_ (int yyvalue) YY_NOEXCEPT;
|
||||||
|
|
||||||
/// Whether the given \c yytable_ value indicates a syntax error.
|
/// Whether the given \c yytable_ value indicates a syntax error.
|
||||||
/// \param yyvalue the value to check
|
/// \param yyvalue the value to check
|
||||||
static bool yy_table_value_is_error_ (int yyvalue);
|
static bool yy_table_value_is_error_ (int yyvalue) YY_NOEXCEPT;
|
||||||
|
|
||||||
static const signed char yypact_ninf_;
|
static const signed char yypact_ninf_;
|
||||||
static const signed char yytable_ninf_;
|
static const signed char yytable_ninf_;
|
||||||
|
|
||||||
/// Convert a scanner token kind \a t to a symbol kind.
|
/// Convert a scanner token kind \a t to a symbol kind.
|
||||||
/// In theory \a t should be a token_kind_type, but character literals
|
/// In theory \a t should be a token_kind_type, but character literals
|
||||||
/// are valid, yet not members of the token_type enum.
|
/// are valid, yet not members of the token_kind_type enum.
|
||||||
static symbol_kind_type yytranslate_ (int t);
|
static symbol_kind_type yytranslate_ (int t) YY_NOEXCEPT;
|
||||||
|
|
||||||
/// Convert the symbol name \a n to a form suitable for a diagnostic.
|
/// Convert the symbol name \a n to a form suitable for a diagnostic.
|
||||||
static std::string yytnamerr_ (const char *yystr);
|
static std::string yytnamerr_ (const char *yystr);
|
||||||
@@ -1897,14 +1923,14 @@ switch (yykind)
|
|||||||
|
|
||||||
static const short yycheck_[];
|
static const short yycheck_[];
|
||||||
|
|
||||||
// YYSTOS[STATE-NUM] -- The (internal number of the) accessing
|
// YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
|
||||||
// symbol of state STATE-NUM.
|
// state STATE-NUM.
|
||||||
static const unsigned char yystos_[];
|
static const unsigned char yystos_[];
|
||||||
|
|
||||||
// YYR1[YYN] -- Symbol number of symbol that rule YYN derives.
|
// YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.
|
||||||
static const unsigned char yyr1_[];
|
static const unsigned char yyr1_[];
|
||||||
|
|
||||||
// YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.
|
// YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.
|
||||||
static const signed char yyr2_[];
|
static const signed char yyr2_[];
|
||||||
|
|
||||||
|
|
||||||
@@ -2003,7 +2029,7 @@ switch (yykind)
|
|||||||
typedef typename S::size_type size_type;
|
typedef typename S::size_type size_type;
|
||||||
typedef typename std::ptrdiff_t index_type;
|
typedef typename std::ptrdiff_t index_type;
|
||||||
|
|
||||||
stack (size_type n = 200)
|
stack (size_type n = 200) YY_NOEXCEPT
|
||||||
: seq_ (n)
|
: seq_ (n)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
@@ -2082,7 +2108,7 @@ switch (yykind)
|
|||||||
class slice
|
class slice
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
slice (const stack& stack, index_type range)
|
slice (const stack& stack, index_type range) YY_NOEXCEPT
|
||||||
: stack_ (stack)
|
: stack_ (stack)
|
||||||
, range_ (range)
|
, range_ (range)
|
||||||
{}
|
{}
|
||||||
@@ -2132,7 +2158,7 @@ switch (yykind)
|
|||||||
void yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym);
|
void yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym);
|
||||||
|
|
||||||
/// Pop \a n symbols from the stack.
|
/// Pop \a n symbols from the stack.
|
||||||
void yypop_ (int n = 1);
|
void yypop_ (int n = 1) YY_NOEXCEPT;
|
||||||
|
|
||||||
/// Constants.
|
/// Constants.
|
||||||
enum
|
enum
|
||||||
@@ -2150,7 +2176,7 @@ switch (yykind)
|
|||||||
|
|
||||||
inline
|
inline
|
||||||
NetconfParser::symbol_kind_type
|
NetconfParser::symbol_kind_type
|
||||||
NetconfParser::yytranslate_ (int t)
|
NetconfParser::yytranslate_ (int t) YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
// YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to
|
// YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to
|
||||||
// TOKEN-NUM as returned by yylex.
|
// TOKEN-NUM as returned by yylex.
|
||||||
@@ -2196,7 +2222,7 @@ switch (yykind)
|
|||||||
if (t <= 0)
|
if (t <= 0)
|
||||||
return symbol_kind::S_YYEOF;
|
return symbol_kind::S_YYEOF;
|
||||||
else if (t <= code_max)
|
else if (t <= code_max)
|
||||||
return YY_CAST (symbol_kind_type, translate_table[t]);
|
return static_cast <symbol_kind_type> (translate_table[t]);
|
||||||
else
|
else
|
||||||
return symbol_kind::S_YYUNDEF;
|
return symbol_kind::S_YYUNDEF;
|
||||||
}
|
}
|
||||||
@@ -2240,6 +2266,7 @@ switch (yykind)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
template <typename Base>
|
template <typename Base>
|
||||||
NetconfParser::symbol_kind_type
|
NetconfParser::symbol_kind_type
|
||||||
NetconfParser::basic_symbol<Base>::type_get () const YY_NOEXCEPT
|
NetconfParser::basic_symbol<Base>::type_get () const YY_NOEXCEPT
|
||||||
@@ -2247,6 +2274,7 @@ switch (yykind)
|
|||||||
return this->kind ();
|
return this->kind ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template <typename Base>
|
template <typename Base>
|
||||||
bool
|
bool
|
||||||
NetconfParser::basic_symbol<Base>::empty () const YY_NOEXCEPT
|
NetconfParser::basic_symbol<Base>::empty () const YY_NOEXCEPT
|
||||||
@@ -2292,13 +2320,13 @@ switch (yykind)
|
|||||||
|
|
||||||
// by_kind.
|
// by_kind.
|
||||||
inline
|
inline
|
||||||
NetconfParser::by_kind::by_kind ()
|
NetconfParser::by_kind::by_kind () YY_NOEXCEPT
|
||||||
: kind_ (symbol_kind::S_YYEMPTY)
|
: kind_ (symbol_kind::S_YYEMPTY)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
inline
|
inline
|
||||||
NetconfParser::by_kind::by_kind (by_kind&& that)
|
NetconfParser::by_kind::by_kind (by_kind&& that) YY_NOEXCEPT
|
||||||
: kind_ (that.kind_)
|
: kind_ (that.kind_)
|
||||||
{
|
{
|
||||||
that.clear ();
|
that.clear ();
|
||||||
@@ -2306,15 +2334,17 @@ switch (yykind)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
inline
|
inline
|
||||||
NetconfParser::by_kind::by_kind (const by_kind& that)
|
NetconfParser::by_kind::by_kind (const by_kind& that) YY_NOEXCEPT
|
||||||
: kind_ (that.kind_)
|
: kind_ (that.kind_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
inline
|
inline
|
||||||
NetconfParser::by_kind::by_kind (token_kind_type t)
|
NetconfParser::by_kind::by_kind (token_kind_type t) YY_NOEXCEPT
|
||||||
: kind_ (yytranslate_ (t))
|
: kind_ (yytranslate_ (t))
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
inline
|
inline
|
||||||
void
|
void
|
||||||
NetconfParser::by_kind::clear () YY_NOEXCEPT
|
NetconfParser::by_kind::clear () YY_NOEXCEPT
|
||||||
@@ -2337,6 +2367,7 @@ switch (yykind)
|
|||||||
return kind_;
|
return kind_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
inline
|
inline
|
||||||
NetconfParser::symbol_kind_type
|
NetconfParser::symbol_kind_type
|
||||||
NetconfParser::by_kind::type_get () const YY_NOEXCEPT
|
NetconfParser::by_kind::type_get () const YY_NOEXCEPT
|
||||||
@@ -2344,9 +2375,10 @@ switch (yykind)
|
|||||||
return this->kind ();
|
return this->kind ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#line 14 "netconf_parser.yy"
|
#line 14 "netconf_parser.yy"
|
||||||
} } // isc::netconf
|
} } // isc::netconf
|
||||||
#line 2350 "netconf_parser.h"
|
#line 2382 "netconf_parser.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2019-2020 Internet Systems Consortium, Inc. ("ISC")
|
// Copyright (C) 2019-2021 Internet Systems Consortium, Inc. ("ISC")
|
||||||
//
|
//
|
||||||
// This Source Code Form is subject to the terms of the Mozilla Public
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2019 Internet Systems Consortium, Inc. ("ISC")
|
// Copyright (C) 2019-2021 Internet Systems Consortium, Inc. ("ISC")
|
||||||
//
|
//
|
||||||
// This Source Code Form is subject to the terms of the Mozilla Public
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2014-2020 Internet Systems Consortium, Inc. ("ISC")
|
// Copyright (C) 2014-2021 Internet Systems Consortium, Inc. ("ISC")
|
||||||
//
|
//
|
||||||
// This Source Code Form is subject to the terms of the Mozilla Public
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// A Bison parser, made by GNU Bison 3.7.6.
|
// A Bison parser, made by GNU Bison 3.8.2.
|
||||||
|
|
||||||
// Locations for Bison parsers in C++
|
// Locations for Bison parsers in C++
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// A Bison parser, made by GNU Bison 3.7.6.
|
// A Bison parser, made by GNU Bison 3.8.2.
|
||||||
|
|
||||||
// Skeleton implementation for Bison LALR(1) parsers in C++
|
// Skeleton implementation for Bison LALR(1) parsers in C++
|
||||||
|
|
||||||
@@ -160,9 +160,9 @@ namespace isc { namespace eval {
|
|||||||
EvalParser::syntax_error::~syntax_error () YY_NOEXCEPT YY_NOTHROW
|
EvalParser::syntax_error::~syntax_error () YY_NOEXCEPT YY_NOTHROW
|
||||||
{}
|
{}
|
||||||
|
|
||||||
/*---------------.
|
/*---------.
|
||||||
| symbol kinds. |
|
| symbol. |
|
||||||
`---------------*/
|
`---------*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -575,7 +575,7 @@ namespace isc { namespace eval {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
EvalParser::yypop_ (int n)
|
EvalParser::yypop_ (int n) YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
yystack_.pop (n);
|
yystack_.pop (n);
|
||||||
}
|
}
|
||||||
@@ -618,13 +618,13 @@ namespace isc { namespace eval {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
EvalParser::yy_pact_value_is_default_ (int yyvalue)
|
EvalParser::yy_pact_value_is_default_ (int yyvalue) YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
return yyvalue == yypact_ninf_;
|
return yyvalue == yypact_ninf_;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
EvalParser::yy_table_value_is_error_ (int yyvalue)
|
EvalParser::yy_table_value_is_error_ (int yyvalue) YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
return yyvalue == yytable_ninf_;
|
return yyvalue == yytable_ninf_;
|
||||||
}
|
}
|
||||||
@@ -1806,16 +1806,16 @@ namespace isc { namespace eval {
|
|||||||
// Actual number of expected tokens
|
// Actual number of expected tokens
|
||||||
int yycount = 0;
|
int yycount = 0;
|
||||||
|
|
||||||
int yyn = yypact_[+yyparser_.yystack_[0].state];
|
const int yyn = yypact_[+yyparser_.yystack_[0].state];
|
||||||
if (!yy_pact_value_is_default_ (yyn))
|
if (!yy_pact_value_is_default_ (yyn))
|
||||||
{
|
{
|
||||||
/* Start YYX at -YYN if negative to avoid negative indexes in
|
/* Start YYX at -YYN if negative to avoid negative indexes in
|
||||||
YYCHECK. In other words, skip the first -YYN actions for
|
YYCHECK. In other words, skip the first -YYN actions for
|
||||||
this state because they are default actions. */
|
this state because they are default actions. */
|
||||||
int yyxbegin = yyn < 0 ? -yyn : 0;
|
const int yyxbegin = yyn < 0 ? -yyn : 0;
|
||||||
// Stay within bounds of both yycheck and yytname.
|
// Stay within bounds of both yycheck and yytname.
|
||||||
int yychecklim = yylast_ - yyn + 1;
|
const int yychecklim = yylast_ - yyn + 1;
|
||||||
int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
|
const int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
|
||||||
for (int yyx = yyxbegin; yyx < yyxend; ++yyx)
|
for (int yyx = yyxbegin; yyx < yyxend; ++yyx)
|
||||||
if (yycheck_[yyx + yyn] == yyx && yyx != symbol_kind::S_YYerror
|
if (yycheck_[yyx + yyn] == yyx && yyx != symbol_kind::S_YYerror
|
||||||
&& !yy_table_value_is_error_ (yytable_[yyx + yyn]))
|
&& !yy_table_value_is_error_ (yytable_[yyx + yyn]))
|
||||||
@@ -1836,6 +1836,9 @@ namespace isc { namespace eval {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
EvalParser::yy_syntax_error_arguments_ (const context& yyctx,
|
EvalParser::yy_syntax_error_arguments_ (const context& yyctx,
|
||||||
symbol_kind_type yyarg[], int yyargn) const
|
symbol_kind_type yyarg[], int yyargn) const
|
||||||
@@ -2184,7 +2187,7 @@ namespace isc { namespace eval {
|
|||||||
|
|
||||||
#line 14 "parser.yy"
|
#line 14 "parser.yy"
|
||||||
} } // isc::eval
|
} } // isc::eval
|
||||||
#line 2188 "parser.cc"
|
#line 2191 "parser.cc"
|
||||||
|
|
||||||
#line 626 "parser.yy"
|
#line 626 "parser.yy"
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// A Bison parser, made by GNU Bison 3.7.6.
|
// A Bison parser, made by GNU Bison 3.8.2.
|
||||||
|
|
||||||
// Skeleton interface for Bison LALR(1) parsers in C++
|
// Skeleton interface for Bison LALR(1) parsers in C++
|
||||||
|
|
||||||
@@ -132,12 +132,18 @@ using namespace isc::eval;
|
|||||||
# define YY_USE(E) /* empty */
|
# define YY_USE(E) /* empty */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
|
|
||||||
/* Suppress an incorrect diagnostic about yylval being uninitialized. */
|
/* Suppress an incorrect diagnostic about yylval being uninitialized. */
|
||||||
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
|
#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 \
|
||||||
_Pragma ("GCC diagnostic push") \
|
_Pragma ("GCC diagnostic push") \
|
||||||
_Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
|
_Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
|
||||||
_Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
|
_Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
|
||||||
|
# endif
|
||||||
# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
|
# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
|
||||||
_Pragma ("GCC diagnostic pop")
|
_Pragma ("GCC diagnostic pop")
|
||||||
#else
|
#else
|
||||||
@@ -199,7 +205,7 @@ using namespace isc::eval;
|
|||||||
|
|
||||||
#line 14 "parser.yy"
|
#line 14 "parser.yy"
|
||||||
namespace isc { namespace eval {
|
namespace isc { namespace eval {
|
||||||
#line 203 "parser.h"
|
#line 209 "parser.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -208,27 +214,32 @@ namespace isc { namespace eval {
|
|||||||
class EvalParser
|
class EvalParser
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
#ifndef EVALSTYPE
|
#ifdef EVALSTYPE
|
||||||
|
# ifdef __GNUC__
|
||||||
|
# pragma GCC message "bison: do not #define EVALSTYPE in C++, use %define api.value.type"
|
||||||
|
# endif
|
||||||
|
typedef EVALSTYPE value_type;
|
||||||
|
#else
|
||||||
/// A buffer to store and retrieve objects.
|
/// A buffer to store and retrieve objects.
|
||||||
///
|
///
|
||||||
/// Sort of a variant, but does not keep track of the nature
|
/// Sort of a variant, but does not keep track of the nature
|
||||||
/// of the stored data, since that knowledge is available
|
/// of the stored data, since that knowledge is available
|
||||||
/// via the current parser state.
|
/// via the current parser state.
|
||||||
class semantic_type
|
class value_type
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/// Type of *this.
|
/// Type of *this.
|
||||||
typedef semantic_type self_type;
|
typedef value_type self_type;
|
||||||
|
|
||||||
/// Empty construction.
|
/// Empty construction.
|
||||||
semantic_type () YY_NOEXCEPT
|
value_type () YY_NOEXCEPT
|
||||||
: yybuffer_ ()
|
: yyraw_ ()
|
||||||
, yytypeid_ (YY_NULLPTR)
|
, yytypeid_ (YY_NULLPTR)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
/// Construct and fill.
|
/// Construct and fill.
|
||||||
template <typename T>
|
template <typename T>
|
||||||
semantic_type (YY_RVREF (T) t)
|
value_type (YY_RVREF (T) t)
|
||||||
: yytypeid_ (&typeid (T))
|
: yytypeid_ (&typeid (T))
|
||||||
{
|
{
|
||||||
EVAL_ASSERT (sizeof (T) <= size);
|
EVAL_ASSERT (sizeof (T) <= size);
|
||||||
@@ -237,13 +248,13 @@ namespace isc { namespace eval {
|
|||||||
|
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
/// Non copyable.
|
/// Non copyable.
|
||||||
semantic_type (const self_type&) = delete;
|
value_type (const self_type&) = delete;
|
||||||
/// Non copyable.
|
/// Non copyable.
|
||||||
self_type& operator= (const self_type&) = delete;
|
self_type& operator= (const self_type&) = delete;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/// Destruction, allowed only if empty.
|
/// Destruction, allowed only if empty.
|
||||||
~semantic_type () YY_NOEXCEPT
|
~value_type () YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
EVAL_ASSERT (!yytypeid_);
|
EVAL_ASSERT (!yytypeid_);
|
||||||
}
|
}
|
||||||
@@ -387,7 +398,7 @@ namespace isc { namespace eval {
|
|||||||
private:
|
private:
|
||||||
#if YY_CPLUSPLUS < 201103L
|
#if YY_CPLUSPLUS < 201103L
|
||||||
/// Non copyable.
|
/// Non copyable.
|
||||||
semantic_type (const self_type&);
|
value_type (const self_type&);
|
||||||
/// Non copyable.
|
/// Non copyable.
|
||||||
self_type& operator= (const self_type&);
|
self_type& operator= (const self_type&);
|
||||||
#endif
|
#endif
|
||||||
@@ -397,7 +408,7 @@ namespace isc { namespace eval {
|
|||||||
T*
|
T*
|
||||||
yyas_ () YY_NOEXCEPT
|
yyas_ () YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
void *yyp = yybuffer_.yyraw;
|
void *yyp = yyraw_;
|
||||||
return static_cast<T*> (yyp);
|
return static_cast<T*> (yyp);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -406,7 +417,7 @@ namespace isc { namespace eval {
|
|||||||
const T*
|
const T*
|
||||||
yyas_ () const YY_NOEXCEPT
|
yyas_ () const YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
const void *yyp = yybuffer_.yyraw;
|
const void *yyp = yyraw_;
|
||||||
return static_cast<const T*> (yyp);
|
return static_cast<const T*> (yyp);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -454,18 +465,19 @@ namespace isc { namespace eval {
|
|||||||
union
|
union
|
||||||
{
|
{
|
||||||
/// Strongest alignment constraints.
|
/// Strongest alignment constraints.
|
||||||
long double yyalign_me;
|
long double yyalign_me_;
|
||||||
/// A buffer large enough to store any of the semantic values.
|
/// 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.
|
/// Whether the content is built: if defined, the name of the stored type.
|
||||||
const std::type_info *yytypeid_;
|
const std::type_info *yytypeid_;
|
||||||
};
|
};
|
||||||
|
|
||||||
#else
|
|
||||||
typedef EVALSTYPE semantic_type;
|
|
||||||
#endif
|
#endif
|
||||||
|
/// Backward compatibility (Bison 3.8).
|
||||||
|
typedef value_type semantic_type;
|
||||||
|
|
||||||
/// Symbol locations.
|
/// Symbol locations.
|
||||||
typedef location location_type;
|
typedef location location_type;
|
||||||
|
|
||||||
@@ -562,7 +574,7 @@ namespace isc { namespace eval {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/// Token kind, as returned by yylex.
|
/// Token kind, as returned by yylex.
|
||||||
typedef token::yytokentype token_kind_type;
|
typedef token::token_kind_type token_kind_type;
|
||||||
|
|
||||||
/// Backward compatibility alias (Bison 3.6).
|
/// Backward compatibility alias (Bison 3.6).
|
||||||
typedef token_kind_type token_type;
|
typedef token_kind_type token_type;
|
||||||
@@ -676,7 +688,7 @@ namespace isc { namespace eval {
|
|||||||
typedef Base super_type;
|
typedef Base super_type;
|
||||||
|
|
||||||
/// Default constructor.
|
/// Default constructor.
|
||||||
basic_symbol ()
|
basic_symbol () YY_NOEXCEPT
|
||||||
: value ()
|
: value ()
|
||||||
, location ()
|
, location ()
|
||||||
{}
|
{}
|
||||||
@@ -887,6 +899,8 @@ namespace isc { namespace eval {
|
|||||||
clear ();
|
clear ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// Destroy contents, and record that is empty.
|
/// Destroy contents, and record that is empty.
|
||||||
void clear () YY_NOEXCEPT
|
void clear () YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
@@ -968,7 +982,7 @@ switch (yykind)
|
|||||||
void move (basic_symbol& s);
|
void move (basic_symbol& s);
|
||||||
|
|
||||||
/// The semantic value.
|
/// The semantic value.
|
||||||
semantic_type value;
|
value_type value;
|
||||||
|
|
||||||
/// The location.
|
/// The location.
|
||||||
location_type location;
|
location_type location;
|
||||||
@@ -983,22 +997,24 @@ switch (yykind)
|
|||||||
/// Type access provider for token (enum) based symbols.
|
/// Type access provider for token (enum) based symbols.
|
||||||
struct by_kind
|
struct by_kind
|
||||||
{
|
{
|
||||||
/// Default constructor.
|
|
||||||
by_kind ();
|
|
||||||
|
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
|
||||||
/// Move constructor.
|
|
||||||
by_kind (by_kind&& that);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/// Copy constructor.
|
|
||||||
by_kind (const by_kind& that);
|
|
||||||
|
|
||||||
/// The symbol kind as needed by the constructor.
|
/// The symbol kind as needed by the constructor.
|
||||||
typedef token_kind_type kind_type;
|
typedef token_kind_type kind_type;
|
||||||
|
|
||||||
|
/// Default constructor.
|
||||||
|
by_kind () YY_NOEXCEPT;
|
||||||
|
|
||||||
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
|
/// Move constructor.
|
||||||
|
by_kind (by_kind&& that) YY_NOEXCEPT;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/// Copy constructor.
|
||||||
|
by_kind (const by_kind& that) YY_NOEXCEPT;
|
||||||
|
|
||||||
/// Constructor from (external) token numbers.
|
/// Constructor from (external) token numbers.
|
||||||
by_kind (kind_type t);
|
by_kind (kind_type t) YY_NOEXCEPT;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// Record that this symbol is empty.
|
/// Record that this symbol is empty.
|
||||||
void clear () YY_NOEXCEPT;
|
void clear () YY_NOEXCEPT;
|
||||||
@@ -1028,29 +1044,33 @@ switch (yykind)
|
|||||||
typedef basic_symbol<by_kind> super_type;
|
typedef basic_symbol<by_kind> super_type;
|
||||||
|
|
||||||
/// Empty symbol.
|
/// Empty symbol.
|
||||||
symbol_type () {}
|
symbol_type () YY_NOEXCEPT {}
|
||||||
|
|
||||||
/// Constructor for valueless symbols, and symbols from each type.
|
/// Constructor for valueless symbols, and symbols from each type.
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
symbol_type (int tok, location_type l)
|
symbol_type (int tok, location_type l)
|
||||||
: super_type(token_type (tok), std::move (l))
|
: super_type (token_kind_type (tok), std::move (l))
|
||||||
#else
|
#else
|
||||||
symbol_type (int tok, const location_type& l)
|
symbol_type (int tok, const location_type& l)
|
||||||
: super_type(token_type (tok), l)
|
: super_type (token_kind_type (tok), l)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
#if !defined _MSC_VER || defined __clang__
|
||||||
EVAL_ASSERT (tok == token::TOKEN_END
|
EVAL_ASSERT (tok == token::TOKEN_END
|
||||||
|| (token::TOKEN_EVALerror <= tok && tok <= token::TOKEN_TOPLEVEL_STRING));
|
|| (token::TOKEN_EVALerror <= tok && tok <= token::TOKEN_TOPLEVEL_STRING));
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
symbol_type (int tok, std::string v, location_type l)
|
symbol_type (int tok, std::string v, location_type l)
|
||||||
: super_type(token_type (tok), std::move (v), std::move (l))
|
: super_type (token_kind_type (tok), std::move (v), std::move (l))
|
||||||
#else
|
#else
|
||||||
symbol_type (int tok, const std::string& v, const location_type& l)
|
symbol_type (int tok, const std::string& v, const location_type& l)
|
||||||
: super_type(token_type (tok), v, l)
|
: super_type (token_kind_type (tok), v, l)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
#if !defined _MSC_VER || defined __clang__
|
||||||
EVAL_ASSERT ((token::TOKEN_STRING <= tok && tok <= token::TOKEN_IP_ADDRESS));
|
EVAL_ASSERT ((token::TOKEN_STRING <= tok && tok <= token::TOKEN_IP_ADDRESS));
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1099,7 +1119,7 @@ switch (yykind)
|
|||||||
/// YYSYMBOL. No bounds checking.
|
/// YYSYMBOL. No bounds checking.
|
||||||
static std::string symbol_name (symbol_kind_type yysymbol);
|
static std::string symbol_name (symbol_kind_type yysymbol);
|
||||||
|
|
||||||
// Implementation of make_symbol for each symbol type.
|
// Implementation of make_symbol for each token kind.
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
static
|
static
|
||||||
symbol_type
|
symbol_type
|
||||||
@@ -2091,19 +2111,19 @@ switch (yykind)
|
|||||||
|
|
||||||
/// Whether the given \c yypact_ value indicates a defaulted state.
|
/// Whether the given \c yypact_ value indicates a defaulted state.
|
||||||
/// \param yyvalue the value to check
|
/// \param yyvalue the value to check
|
||||||
static bool yy_pact_value_is_default_ (int yyvalue);
|
static bool yy_pact_value_is_default_ (int yyvalue) YY_NOEXCEPT;
|
||||||
|
|
||||||
/// Whether the given \c yytable_ value indicates a syntax error.
|
/// Whether the given \c yytable_ value indicates a syntax error.
|
||||||
/// \param yyvalue the value to check
|
/// \param yyvalue the value to check
|
||||||
static bool yy_table_value_is_error_ (int yyvalue);
|
static bool yy_table_value_is_error_ (int yyvalue) YY_NOEXCEPT;
|
||||||
|
|
||||||
static const short yypact_ninf_;
|
static const short yypact_ninf_;
|
||||||
static const signed char yytable_ninf_;
|
static const signed char yytable_ninf_;
|
||||||
|
|
||||||
/// Convert a scanner token kind \a t to a symbol kind.
|
/// Convert a scanner token kind \a t to a symbol kind.
|
||||||
/// In theory \a t should be a token_kind_type, but character literals
|
/// In theory \a t should be a token_kind_type, but character literals
|
||||||
/// are valid, yet not members of the token_type enum.
|
/// are valid, yet not members of the token_kind_type enum.
|
||||||
static symbol_kind_type yytranslate_ (int t);
|
static symbol_kind_type yytranslate_ (int t) YY_NOEXCEPT;
|
||||||
|
|
||||||
/// Convert the symbol name \a n to a form suitable for a diagnostic.
|
/// Convert the symbol name \a n to a form suitable for a diagnostic.
|
||||||
static std::string yytnamerr_ (const char *yystr);
|
static std::string yytnamerr_ (const char *yystr);
|
||||||
@@ -2135,14 +2155,14 @@ switch (yykind)
|
|||||||
|
|
||||||
static const unsigned char yycheck_[];
|
static const unsigned char yycheck_[];
|
||||||
|
|
||||||
// YYSTOS[STATE-NUM] -- The (internal number of the) accessing
|
// YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
|
||||||
// symbol of state STATE-NUM.
|
// state STATE-NUM.
|
||||||
static const signed char yystos_[];
|
static const signed char yystos_[];
|
||||||
|
|
||||||
// YYR1[YYN] -- Symbol number of symbol that rule YYN derives.
|
// YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.
|
||||||
static const signed char yyr1_[];
|
static const signed char yyr1_[];
|
||||||
|
|
||||||
// YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.
|
// YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.
|
||||||
static const signed char yyr2_[];
|
static const signed char yyr2_[];
|
||||||
|
|
||||||
|
|
||||||
@@ -2241,7 +2261,7 @@ switch (yykind)
|
|||||||
typedef typename S::size_type size_type;
|
typedef typename S::size_type size_type;
|
||||||
typedef typename std::ptrdiff_t index_type;
|
typedef typename std::ptrdiff_t index_type;
|
||||||
|
|
||||||
stack (size_type n = 200)
|
stack (size_type n = 200) YY_NOEXCEPT
|
||||||
: seq_ (n)
|
: seq_ (n)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
@@ -2320,7 +2340,7 @@ switch (yykind)
|
|||||||
class slice
|
class slice
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
slice (const stack& stack, index_type range)
|
slice (const stack& stack, index_type range) YY_NOEXCEPT
|
||||||
: stack_ (stack)
|
: stack_ (stack)
|
||||||
, range_ (range)
|
, range_ (range)
|
||||||
{}
|
{}
|
||||||
@@ -2370,7 +2390,7 @@ switch (yykind)
|
|||||||
void yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym);
|
void yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym);
|
||||||
|
|
||||||
/// Pop \a n symbols from the stack.
|
/// Pop \a n symbols from the stack.
|
||||||
void yypop_ (int n = 1);
|
void yypop_ (int n = 1) YY_NOEXCEPT;
|
||||||
|
|
||||||
/// Constants.
|
/// Constants.
|
||||||
enum
|
enum
|
||||||
@@ -2388,7 +2408,7 @@ switch (yykind)
|
|||||||
|
|
||||||
inline
|
inline
|
||||||
EvalParser::symbol_kind_type
|
EvalParser::symbol_kind_type
|
||||||
EvalParser::yytranslate_ (int t)
|
EvalParser::yytranslate_ (int t) YY_NOEXCEPT
|
||||||
{
|
{
|
||||||
// YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to
|
// YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to
|
||||||
// TOKEN-NUM as returned by yylex.
|
// TOKEN-NUM as returned by yylex.
|
||||||
@@ -2435,7 +2455,7 @@ switch (yykind)
|
|||||||
if (t <= 0)
|
if (t <= 0)
|
||||||
return symbol_kind::S_YYEOF;
|
return symbol_kind::S_YYEOF;
|
||||||
else if (t <= code_max)
|
else if (t <= code_max)
|
||||||
return YY_CAST (symbol_kind_type, translate_table[t]);
|
return static_cast <symbol_kind_type> (translate_table[t]);
|
||||||
else
|
else
|
||||||
return symbol_kind::S_YYUNDEF;
|
return symbol_kind::S_YYUNDEF;
|
||||||
}
|
}
|
||||||
@@ -2499,6 +2519,7 @@ switch (yykind)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
template <typename Base>
|
template <typename Base>
|
||||||
EvalParser::symbol_kind_type
|
EvalParser::symbol_kind_type
|
||||||
EvalParser::basic_symbol<Base>::type_get () const YY_NOEXCEPT
|
EvalParser::basic_symbol<Base>::type_get () const YY_NOEXCEPT
|
||||||
@@ -2506,6 +2527,7 @@ switch (yykind)
|
|||||||
return this->kind ();
|
return this->kind ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template <typename Base>
|
template <typename Base>
|
||||||
bool
|
bool
|
||||||
EvalParser::basic_symbol<Base>::empty () const YY_NOEXCEPT
|
EvalParser::basic_symbol<Base>::empty () const YY_NOEXCEPT
|
||||||
@@ -2571,13 +2593,13 @@ switch (yykind)
|
|||||||
|
|
||||||
// by_kind.
|
// by_kind.
|
||||||
inline
|
inline
|
||||||
EvalParser::by_kind::by_kind ()
|
EvalParser::by_kind::by_kind () YY_NOEXCEPT
|
||||||
: kind_ (symbol_kind::S_YYEMPTY)
|
: kind_ (symbol_kind::S_YYEMPTY)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
#if 201103L <= YY_CPLUSPLUS
|
#if 201103L <= YY_CPLUSPLUS
|
||||||
inline
|
inline
|
||||||
EvalParser::by_kind::by_kind (by_kind&& that)
|
EvalParser::by_kind::by_kind (by_kind&& that) YY_NOEXCEPT
|
||||||
: kind_ (that.kind_)
|
: kind_ (that.kind_)
|
||||||
{
|
{
|
||||||
that.clear ();
|
that.clear ();
|
||||||
@@ -2585,15 +2607,17 @@ switch (yykind)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
inline
|
inline
|
||||||
EvalParser::by_kind::by_kind (const by_kind& that)
|
EvalParser::by_kind::by_kind (const by_kind& that) YY_NOEXCEPT
|
||||||
: kind_ (that.kind_)
|
: kind_ (that.kind_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
inline
|
inline
|
||||||
EvalParser::by_kind::by_kind (token_kind_type t)
|
EvalParser::by_kind::by_kind (token_kind_type t) YY_NOEXCEPT
|
||||||
: kind_ (yytranslate_ (t))
|
: kind_ (yytranslate_ (t))
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
inline
|
inline
|
||||||
void
|
void
|
||||||
EvalParser::by_kind::clear () YY_NOEXCEPT
|
EvalParser::by_kind::clear () YY_NOEXCEPT
|
||||||
@@ -2616,6 +2640,7 @@ switch (yykind)
|
|||||||
return kind_;
|
return kind_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
inline
|
inline
|
||||||
EvalParser::symbol_kind_type
|
EvalParser::symbol_kind_type
|
||||||
EvalParser::by_kind::type_get () const YY_NOEXCEPT
|
EvalParser::by_kind::type_get () const YY_NOEXCEPT
|
||||||
@@ -2623,9 +2648,10 @@ switch (yykind)
|
|||||||
return this->kind ();
|
return this->kind ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#line 14 "parser.yy"
|
#line 14 "parser.yy"
|
||||||
} } // isc::eval
|
} } // isc::eval
|
||||||
#line 2629 "parser.h"
|
#line 2655 "parser.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -104,7 +104,7 @@ BasicHttpAuthConfig::parse(const ConstElementPtr& config) {
|
|||||||
<< config->getPosition() << ")");
|
<< config->getPosition() << ")");
|
||||||
}
|
}
|
||||||
if (type->getType() != Element::string) {
|
if (type->getType() != Element::string) {
|
||||||
isc_throw(DhcpConfigError, "type is must be a string ("
|
isc_throw(DhcpConfigError, "type must be a string ("
|
||||||
<< type->getPosition() << ")");
|
<< type->getPosition() << ")");
|
||||||
}
|
}
|
||||||
if (type->stringValue() != "basic") {
|
if (type->stringValue() != "basic") {
|
||||||
@@ -117,7 +117,7 @@ BasicHttpAuthConfig::parse(const ConstElementPtr& config) {
|
|||||||
ConstElementPtr realm = config->get("realm");
|
ConstElementPtr realm = config->get("realm");
|
||||||
if (realm) {
|
if (realm) {
|
||||||
if (realm->getType() != Element::string) {
|
if (realm->getType() != Element::string) {
|
||||||
isc_throw(DhcpConfigError, "realm is must be a string ("
|
isc_throw(DhcpConfigError, "realm must be a string ("
|
||||||
<< realm->getPosition() << ")");
|
<< realm->getPosition() << ")");
|
||||||
}
|
}
|
||||||
setRealm(realm->stringValue());
|
setRealm(realm->stringValue());
|
||||||
|
@@ -149,7 +149,7 @@ TEST(BasicHttpAuthConfigTest, parse) {
|
|||||||
// The type must be a string.
|
// The type must be a string.
|
||||||
cfg->set("type", Element::create(true));
|
cfg->set("type", Element::create(true));
|
||||||
EXPECT_THROW_MSG(config.parse(cfg), DhcpConfigError,
|
EXPECT_THROW_MSG(config.parse(cfg), DhcpConfigError,
|
||||||
"type is must be a string (:0:0)");
|
"type must be a string (:0:0)");
|
||||||
|
|
||||||
// The type must be basic.
|
// The type must be basic.
|
||||||
cfg->set("type", Element::create(string("foobar")));
|
cfg->set("type", Element::create(string("foobar")));
|
||||||
@@ -162,7 +162,7 @@ TEST(BasicHttpAuthConfigTest, parse) {
|
|||||||
// The realm must be a string.
|
// The realm must be a string.
|
||||||
cfg->set("realm", Element::createList());
|
cfg->set("realm", Element::createList());
|
||||||
EXPECT_THROW_MSG(config.parse(cfg), DhcpConfigError,
|
EXPECT_THROW_MSG(config.parse(cfg), DhcpConfigError,
|
||||||
"realm is must be a string (:0:0)");
|
"realm must be a string (:0:0)");
|
||||||
cfg->set("realm", Element::create(string("my-realm")));
|
cfg->set("realm", Element::create(string("my-realm")));
|
||||||
EXPECT_NO_THROW(config.parse(cfg));
|
EXPECT_NO_THROW(config.parse(cfg));
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2011-2020 Internet Systems Consortium, Inc. ("ISC")
|
// Copyright (C) 2011-2021 Internet Systems Consortium, Inc. ("ISC")
|
||||||
//
|
//
|
||||||
// This Source Code Form is subject to the terms of the Mozilla Public
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2016-2018 Internet Systems Consortium, Inc. ("ISC")
|
// Copyright (C) 2016-2021 Internet Systems Consortium, Inc. ("ISC")
|
||||||
//
|
//
|
||||||
// This Source Code Form is subject to the terms of the Mozilla Public
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2016-2020 Internet Systems Consortium, Inc. ("ISC")
|
// Copyright (C) 2016-2021 Internet Systems Consortium, Inc. ("ISC")
|
||||||
//
|
//
|
||||||
// This Source Code Form is subject to the terms of the Mozilla Public
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
@@ -804,7 +804,7 @@ TEST_F(PgSqlBasicsTest, get) {
|
|||||||
EXPECT_THROW(bind_array.getInteger<uint32_t>(), OutOfRange);
|
EXPECT_THROW(bind_array.getInteger<uint32_t>(), OutOfRange);
|
||||||
EXPECT_THROW(bind_array.getType(), OutOfRange);
|
EXPECT_THROW(bind_array.getType(), OutOfRange);
|
||||||
|
|
||||||
// Now try again wi
|
// Now try again with proper values.
|
||||||
bind_array.add(123); // This will be converted to "123" string.
|
bind_array.add(123); // This will be converted to "123" string.
|
||||||
bind_array.addNull();
|
bind_array.addNull();
|
||||||
bind_array.add("sagittarius");
|
bind_array.add("sagittarius");
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2012-2015 Internet Systems Consortium, Inc. ("ISC")
|
// Copyright (C) 2012-2021 Internet Systems Consortium, Inc. ("ISC")
|
||||||
//
|
//
|
||||||
// This Source Code Form is subject to the terms of the Mozilla Public
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2012-2019 Internet Systems Consortium, Inc. ("ISC")
|
// Copyright (C) 2012-2021 Internet Systems Consortium, Inc. ("ISC")
|
||||||
//
|
//
|
||||||
// This Source Code Form is subject to the terms of the Mozilla Public
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
@@ -115,7 +115,7 @@ To run YANG/NETCONF/Sysrepo tests you need to compile Kea with Sysrepo support:
|
|||||||
@endverbatim
|
@endverbatim
|
||||||
|
|
||||||
For details, see Section "YANG/NETCONF support" in the Kea Administrator
|
For details, see Section "YANG/NETCONF support" in the Kea Administrator
|
||||||
Reference Manual: https://kea.readthedocs.io/en/latest/arm/netconf.html.
|
Reference Manual: https://kea.readthedocs.io/en/latest/arm/integrations.html#yang-netconf.
|
||||||
|
|
||||||
You also need to install YANG modules, so the unit tests are able to
|
You also need to install YANG modules, so the unit tests are able to
|
||||||
retrieve, add, update and generally interact with the sysrepo information.
|
retrieve, add, update and generally interact with the sysrepo information.
|
||||||
|
@@ -31,7 +31,7 @@ else
|
|||||||
. "@abs_top_builddir@/src/bin/admin/admin-utils.sh"
|
. "@abs_top_builddir@/src/bin/admin/admin-utils.sh"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# First argument is must be the expected schema version <major>.<minor>
|
# First argument must be the expected schema version <major>.<minor>
|
||||||
# Check if it's passed at all.
|
# Check if it's passed at all.
|
||||||
if [ "$#" -lt "1" ]; then
|
if [ "$#" -lt "1" ]; then
|
||||||
printf "Required at least one parameter: schema version number, e.g. 7.0\n"
|
printf "Required at least one parameter: schema version number, e.g. 7.0\n"
|
||||||
|
@@ -1894,7 +1894,7 @@ BEGIN
|
|||||||
INSERT INTO dhcp4_audit_revision (modification_ts, server_id, log_message)
|
INSERT INTO dhcp4_audit_revision (modification_ts, server_id, log_message)
|
||||||
VALUES (audit_ts, srv_id, audit_log_message) returning id INTO audit_revision_id;
|
VALUES (audit_ts, srv_id, audit_log_message) returning id INTO audit_revision_id;
|
||||||
|
|
||||||
-- Update pertienent session variables.
|
-- Update pertinent session variables.
|
||||||
PERFORM set_session_value('kea.audit_revision_id', audit_revision_id);
|
PERFORM set_session_value('kea.audit_revision_id', audit_revision_id);
|
||||||
PERFORM set_session_value('kea.cascade_transaction', cascade_transaction);
|
PERFORM set_session_value('kea.cascade_transaction', cascade_transaction);
|
||||||
END IF;
|
END IF;
|
||||||
@@ -2504,7 +2504,7 @@ BEGIN
|
|||||||
INSERT INTO dhcp6_audit_revision (modification_ts, server_id, log_message)
|
INSERT INTO dhcp6_audit_revision (modification_ts, server_id, log_message)
|
||||||
VALUES (audit_ts, srv_id, audit_log_message) returning id INTO audit_revision_id;
|
VALUES (audit_ts, srv_id, audit_log_message) returning id INTO audit_revision_id;
|
||||||
|
|
||||||
-- Update pertienent session variables.
|
-- Update pertinent session variables.
|
||||||
PERFORM set_session_value('kea.audit_revision_id', audit_revision_id);
|
PERFORM set_session_value('kea.audit_revision_id', audit_revision_id);
|
||||||
PERFORM set_session_value('kea.cascade_transaction', cascade_transaction);
|
PERFORM set_session_value('kea.cascade_transaction', cascade_transaction);
|
||||||
END IF;
|
END IF;
|
||||||
@@ -3254,7 +3254,7 @@ CREATE TRIGGER dhcp4_option_def_ADEL
|
|||||||
-- - p_modification_ts: modification timestamp of the
|
-- - p_modification_ts: modification timestamp of the
|
||||||
-- option.
|
-- option.
|
||||||
-- Some arguments are prefixed with "p_" to avoid ambiguity
|
-- Some arguments are prefixed with "p_" to avoid ambiguity
|
||||||
-- with column names in SQL statments. PostgreSQL does not
|
-- with column names in SQL statements. PostgreSQL does not
|
||||||
-- allow table aliases to be used with column names in update
|
-- allow table aliases to be used with column names in update
|
||||||
-- set expressions.
|
-- set expressions.
|
||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
|
@@ -901,7 +901,7 @@ BEGIN
|
|||||||
INSERT INTO dhcp4_audit_revision (modification_ts, server_id, log_message)
|
INSERT INTO dhcp4_audit_revision (modification_ts, server_id, log_message)
|
||||||
VALUES (audit_ts, srv_id, audit_log_message) returning id INTO audit_revision_id;
|
VALUES (audit_ts, srv_id, audit_log_message) returning id INTO audit_revision_id;
|
||||||
|
|
||||||
-- Update pertienent session variables.
|
-- Update pertinent session variables.
|
||||||
PERFORM set_session_value('kea.audit_revision_id', audit_revision_id);
|
PERFORM set_session_value('kea.audit_revision_id', audit_revision_id);
|
||||||
PERFORM set_session_value('kea.cascade_transaction', cascade_transaction);
|
PERFORM set_session_value('kea.cascade_transaction', cascade_transaction);
|
||||||
END IF;
|
END IF;
|
||||||
@@ -1511,7 +1511,7 @@ BEGIN
|
|||||||
INSERT INTO dhcp6_audit_revision (modification_ts, server_id, log_message)
|
INSERT INTO dhcp6_audit_revision (modification_ts, server_id, log_message)
|
||||||
VALUES (audit_ts, srv_id, audit_log_message) returning id INTO audit_revision_id;
|
VALUES (audit_ts, srv_id, audit_log_message) returning id INTO audit_revision_id;
|
||||||
|
|
||||||
-- Update pertienent session variables.
|
-- Update pertinent session variables.
|
||||||
PERFORM set_session_value('kea.audit_revision_id', audit_revision_id);
|
PERFORM set_session_value('kea.audit_revision_id', audit_revision_id);
|
||||||
PERFORM set_session_value('kea.cascade_transaction', cascade_transaction);
|
PERFORM set_session_value('kea.cascade_transaction', cascade_transaction);
|
||||||
END IF;
|
END IF;
|
||||||
@@ -2261,7 +2261,7 @@ CREATE TRIGGER dhcp4_option_def_ADEL
|
|||||||
-- - p_modification_ts: modification timestamp of the
|
-- - p_modification_ts: modification timestamp of the
|
||||||
-- option.
|
-- option.
|
||||||
-- Some arguments are prefixed with "p_" to avoid ambiguity
|
-- Some arguments are prefixed with "p_" to avoid ambiguity
|
||||||
-- with column names in SQL statments. PostgreSQL does not
|
-- with column names in SQL statements. PostgreSQL does not
|
||||||
-- allow table aliases to be used with column names in update
|
-- allow table aliases to be used with column names in update
|
||||||
-- set expressions.
|
-- set expressions.
|
||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
# Copyright (C) 2019-2020 Internet Systems Consortium, Inc. ("ISC")
|
# Copyright (C) 2019-2021 Internet Systems Consortium, Inc. ("ISC")
|
||||||
#
|
#
|
||||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
@@ -31,7 +31,7 @@ else
|
|||||||
. "@abs_top_builddir@/src/bin/admin/admin-utils.sh"
|
. "@abs_top_builddir@/src/bin/admin/admin-utils.sh"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# First argument is must be the expected schema version <major>.<minor>
|
# First argument must be the expected schema version <major>.<minor>
|
||||||
# Check if it's passed at all.
|
# Check if it's passed at all.
|
||||||
if [ "$#" -lt "1" ]; then
|
if [ "$#" -lt "1" ]; then
|
||||||
printf "Required at least one parameter: schema version number, e.g. 7.0\n"
|
printf "Required at least one parameter: schema version number, e.g. 7.0\n"
|
||||||
|
@@ -31,9 +31,8 @@ fi
|
|||||||
# Get the output file
|
# Get the output file
|
||||||
base=$1
|
base=$1
|
||||||
output=
|
output=
|
||||||
now=$(date +"%Y-%m-%-d %H:%m")
|
|
||||||
|
|
||||||
header="Grammar generated on $now. See Chapter $md_name for an explanation."
|
header="Grammar generated from $(basename "${base}").yy. See Chapter ${md_name} for an explanation."
|
||||||
|
|
||||||
if [ -f "${base}.yy" ]; then
|
if [ -f "${base}.yy" ]; then
|
||||||
# We want to explicitly set the language to English. Otherwise
|
# We want to explicitly set the language to English. Otherwise
|
||||||
|
Reference in New Issue
Block a user