45#ifndef YY_D2_PARSER_D2_PARSER_H_INCLUDED
46# define YY_D2_PARSER_D2_PARSER_H_INCLUDED
48#line 17 "d2_parser.yy"
53#include <boost/lexical_cast.hpp>
69#if defined __cplusplus
70# define YY_CPLUSPLUS __cplusplus
72# define YY_CPLUSPLUS 199711L
76#if 201103L <= YY_CPLUSPLUS
77# define YY_MOVE std::move
78# define YY_MOVE_OR_COPY move
79# define YY_MOVE_REF(Type) Type&&
80# define YY_RVREF(Type) Type&&
81# define YY_COPY(Type) Type
84# define YY_MOVE_OR_COPY copy
85# define YY_MOVE_REF(Type) Type&
86# define YY_RVREF(Type) const Type&
87# define YY_COPY(Type) const Type&
91#if 201103L <= YY_CPLUSPLUS
92# define YY_NOEXCEPT noexcept
96# define YY_NOTHROW throw ()
100#if 201703 <= YY_CPLUSPLUS
101# define YY_CONSTEXPR constexpr
105# include "location.hh"
107#ifndef D2_PARSER__ASSERT
109# define D2_PARSER__ASSERT assert
113#ifndef YY_ATTRIBUTE_PURE
114# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
115# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
117# define YY_ATTRIBUTE_PURE
121#ifndef YY_ATTRIBUTE_UNUSED
122# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
123# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
125# define YY_ATTRIBUTE_UNUSED
130#if ! defined lint || defined __GNUC__
131# define YY_USE(E) ((void) (E))
137#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
138# if __GNUC__ * 100 + __GNUC_MINOR__ < 407
139# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
140 _Pragma ("GCC diagnostic push") \
141 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
143# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
144 _Pragma ("GCC diagnostic push") \
145 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
146 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
148# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
149 _Pragma ("GCC diagnostic pop")
151# define YY_INITIAL_VALUE(Value) Value
153#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
154# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
155# define YY_IGNORE_MAYBE_UNINITIALIZED_END
157#ifndef YY_INITIAL_VALUE
158# define YY_INITIAL_VALUE(Value)
161#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
162# define YY_IGNORE_USELESS_CAST_BEGIN \
163 _Pragma ("GCC diagnostic push") \
164 _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
165# define YY_IGNORE_USELESS_CAST_END \
166 _Pragma ("GCC diagnostic pop")
168#ifndef YY_IGNORE_USELESS_CAST_BEGIN
169# define YY_IGNORE_USELESS_CAST_BEGIN
170# define YY_IGNORE_USELESS_CAST_END
175# define YY_CAST(Type, Val) static_cast<Type> (Val)
176# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
178# define YY_CAST(Type, Val) ((Type) (Val))
179# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
183# if defined __cplusplus
184# if 201103L <= __cplusplus
185# define YY_NULLPTR nullptr
190# define YY_NULLPTR ((void*)0)
195#ifndef D2_PARSER_DEBUG
198# define D2_PARSER_DEBUG 1
200# define D2_PARSER_DEBUG 0
203# define D2_PARSER_DEBUG 1
207#line 14 "d2_parser.yy"
208namespace isc {
namespace d2 {
209#line 210 "d2_parser.h"
218#ifdef D2_PARSER_STYPE
220# pragma GCC message "bison: do not #define D2_PARSER_STYPE in C++, use %define api.value.type"
238 , yytypeid_ (YY_NULLPTR)
242 template <
typename T>
244 : yytypeid_ (&typeid (T))
247 new (yyas_<T> ()) T (
YY_MOVE (t));
250#if 201103L <= YY_CPLUSPLUS
263# if 201103L <= YY_CPLUSPLUS
265 template <
typename T,
typename... U>
271 yytypeid_ = &
typeid (T);
272 return *
new (yyas_<T> ()) T (std::forward <U>(u)...);
276 template <
typename T>
282 yytypeid_ = &
typeid (T);
283 return *
new (yyas_<T> ()) T ();
287 template <
typename T>
293 yytypeid_ = &
typeid (T);
294 return *
new (yyas_<T> ()) T (t);
300 template <
typename T>
304 return emplace<T> ();
309 template <
typename T>
313 return emplace<T> (t);
317 template <
typename T>
328 template <
typename T>
346 template <
typename T>
352 std::swap (as<T> (), that.as<T> ());
358 template <
typename T>
362# if 201103L <= YY_CPLUSPLUS
363 emplace<T> (std::move (that.as<T> ()));
371# if 201103L <= YY_CPLUSPLUS
373 template <
typename T>
377 emplace<T> (std::move (that.as<T> ()));
383 template <
typename T>
387 emplace<T> (that.as<T> ());
391 template <
typename T>
396 yytypeid_ = YY_NULLPTR;
400#if YY_CPLUSPLUS < 201103L
408 template <
typename T>
413 return static_cast<T*
> (yyp);
417 template <
typename T>
422 return static_cast<const T*
> (yyp);
436 char dummy2[
sizeof (bool)];
439 char dummy3[
sizeof (double)];
442 char dummy4[
sizeof (int64_t)];
445 char dummy5[
sizeof (std::string)];
449 enum { size =
sizeof (union_type) };
461 const std::type_info *yytypeid_;
475 : std::runtime_error (m)
480 : std::runtime_error (s.what ())
494 TOKEN_D2_PARSER_EMPTY = -2,
496 TOKEN_D2_PARSER_error = 256,
497 TOKEN_D2_PARSER_UNDEF = 257,
500 TOKEN_LSQUARE_BRACKET = 260,
501 TOKEN_RSQUARE_BRACKET = 261,
502 TOKEN_LCURLY_BRACKET = 262,
503 TOKEN_RCURLY_BRACKET = 263,
504 TOKEN_NULL_TYPE = 264,
505 TOKEN_DHCPDDNS = 265,
506 TOKEN_IP_ADDRESS = 266,
508 TOKEN_DNS_SERVER_TIMEOUT = 268,
509 TOKEN_NCR_PROTOCOL = 269,
512 TOKEN_NCR_FORMAT = 272,
514 TOKEN_USER_CONTEXT = 274,
516 TOKEN_FORWARD_DDNS = 276,
517 TOKEN_REVERSE_DDNS = 277,
518 TOKEN_DDNS_DOMAINS = 278,
519 TOKEN_KEY_NAME = 279,
520 TOKEN_DNS_SERVERS = 280,
521 TOKEN_HOSTNAME = 281,
522 TOKEN_TSIG_KEYS = 282,
523 TOKEN_ALGORITHM = 283,
524 TOKEN_DIGEST_BITS = 284,
526 TOKEN_SECRET_FILE = 286,
527 TOKEN_CONTROL_SOCKET = 287,
528 TOKEN_CONTROL_SOCKETS = 288,
529 TOKEN_SOCKET_TYPE = 289,
533 TOKEN_SOCKET_NAME = 293,
534 TOKEN_SOCKET_ADDRESS = 294,
535 TOKEN_SOCKET_PORT = 295,
536 TOKEN_AUTHENTICATION = 296,
540 TOKEN_DIRECTORY = 300,
543 TOKEN_USER_FILE = 303,
544 TOKEN_PASSWORD = 304,
545 TOKEN_PASSWORD_FILE = 305,
546 TOKEN_TRUST_ANCHOR = 306,
547 TOKEN_CERT_FILE = 307,
548 TOKEN_KEY_FILE = 308,
549 TOKEN_CERT_REQUIRED = 309,
550 TOKEN_HOOKS_LIBRARIES = 310,
552 TOKEN_PARAMETERS = 312,
555 TOKEN_OUTPUT_OPTIONS = 315,
557 TOKEN_DEBUGLEVEL = 317,
558 TOKEN_SEVERITY = 318,
563 TOKEN_TOPLEVEL_JSON = 323,
564 TOKEN_TOPLEVEL_DHCPDDNS = 324,
565 TOKEN_SUB_DHCPDDNS = 325,
566 TOKEN_SUB_TSIG_KEY = 326,
567 TOKEN_SUB_TSIG_KEYS = 327,
568 TOKEN_SUB_DDNS_DOMAIN = 328,
569 TOKEN_SUB_DDNS_DOMAINS = 329,
570 TOKEN_SUB_DNS_SERVER = 330,
571 TOKEN_SUB_DNS_SERVERS = 331,
572 TOKEN_SUB_HOOKS_LIBRARY = 332,
600 S_LSQUARE_BRACKET = 5,
601 S_RSQUARE_BRACKET = 6,
602 S_LCURLY_BRACKET = 7,
603 S_RCURLY_BRACKET = 8,
608 S_DNS_SERVER_TIMEOUT = 13,
627 S_CONTROL_SOCKET = 32,
628 S_CONTROL_SOCKETS = 33,
634 S_SOCKET_ADDRESS = 39,
636 S_AUTHENTICATION = 41,
645 S_PASSWORD_FILE = 50,
649 S_CERT_REQUIRED = 54,
650 S_HOOKS_LIBRARIES = 55,
655 S_OUTPUT_OPTIONS = 60,
663 S_TOPLEVEL_JSON = 68,
664 S_TOPLEVEL_DHCPDDNS = 69,
667 S_SUB_TSIG_KEYS = 72,
668 S_SUB_DDNS_DOMAIN = 73,
669 S_SUB_DDNS_DOMAINS = 74,
670 S_SUB_DNS_SERVER = 75,
671 S_SUB_DNS_SERVERS = 76,
672 S_SUB_HOOKS_LIBRARY = 77,
695 S_not_empty_map = 100,
696 S_list_generic = 101,
698 S_list_content = 103,
699 S_not_empty_list = 104,
700 S_unknown_map_entry = 105,
703 S_global_object = 108,
705 S_global_object_comma = 110,
706 S_sub_dhcpddns = 111,
708 S_dhcpddns_params = 113,
709 S_dhcpddns_param = 114,
713 S_dns_server_timeout = 118,
714 S_ncr_protocol = 119,
716 S_ncr_protocol_value = 121,
719 S_user_context = 124,
723 S_forward_ddns = 128,
725 S_reverse_ddns = 130,
727 S_ddns_mgr_params = 132,
728 S_not_empty_ddns_mgr_params = 133,
729 S_ddns_mgr_param = 134,
730 S_ddns_domains = 135,
732 S_sub_ddns_domains = 137,
734 S_ddns_domain_list = 139,
735 S_not_empty_ddns_domain_list = 140,
738 S_sub_ddns_domain = 143,
740 S_ddns_domain_params = 145,
741 S_ddns_domain_param = 146,
742 S_ddns_domain_name = 147,
744 S_ddns_key_name = 149,
748 S_sub_dns_servers = 153,
750 S_dns_server_list = 155,
753 S_sub_dns_server = 158,
755 S_dns_server_params = 160,
756 S_dns_server_param = 161,
757 S_dns_server_hostname = 162,
759 S_dns_server_ip_address = 164,
761 S_dns_server_port = 166,
764 S_sub_tsig_keys = 169,
766 S_tsig_keys_list = 171,
767 S_not_empty_tsig_keys_list = 172,
770 S_sub_tsig_key = 175,
772 S_tsig_key_params = 177,
773 S_tsig_key_param = 178,
774 S_tsig_key_name = 179,
776 S_tsig_key_algorithm = 181,
778 S_tsig_key_digest_bits = 183,
779 S_tsig_key_secret = 184,
781 S_tsig_key_secret_file = 186,
783 S_control_socket = 188,
785 S_control_sockets = 190,
787 S_control_socket_list = 192,
788 S_not_empty_control_socket_list = 193,
789 S_control_socket_entry = 194,
791 S_control_socket_params = 196,
792 S_control_socket_param = 197,
793 S_control_socket_type = 198,
795 S_control_socket_type_value = 200,
796 S_control_socket_name = 201,
798 S_control_socket_address = 203,
800 S_control_socket_port = 205,
801 S_trust_anchor = 206,
807 S_cert_required = 212,
808 S_authentication = 213,
814 S_auth_type_value = 219,
821 S_clients_list = 226,
822 S_not_empty_clients_list = 227,
825 S_clients_params = 230,
826 S_clients_param = 231,
833 S_password_file = 238,
835 S_hooks_libraries = 240,
837 S_hooks_libraries_list = 242,
838 S_not_empty_hooks_libraries_list = 243,
839 S_hooks_library = 244,
841 S_sub_hooks_library = 246,
843 S_hooks_params = 248,
851 S_loggers_entries = 256,
852 S_logger_entry = 257,
854 S_logger_params = 259,
855 S_logger_param = 260,
861 S_output_options_list = 266,
863 S_output_options_list_content = 268,
864 S_output_entry = 269,
866 S_output_params_list = 271,
867 S_output_params = 272,
890 template <
typename Base>
902#if 201103L <= YY_CPLUSPLUS
905 : Base (std::move (that))
907 , location (std::move (that.location))
909 switch (this->kind ())
911 case symbol_kind::S_value:
912 case symbol_kind::S_map_value:
913 case symbol_kind::S_ncr_protocol_value:
914 case symbol_kind::S_control_socket_type_value:
915 case symbol_kind::S_auth_type_value:
916 value.move<
ElementPtr > (std::move (that.value));
919 case symbol_kind::S_BOOLEAN:
920 value.move<
bool > (std::move (that.value));
923 case symbol_kind::S_FLOAT:
924 value.move<
double > (std::move (that.value));
927 case symbol_kind::S_INTEGER:
928 value.move< int64_t > (std::move (that.value));
931 case symbol_kind::S_STRING:
932 value.move< std::string > (std::move (that.value));
943 basic_symbol (
const basic_symbol& that);
946#if 201103L <= YY_CPLUSPLUS
947 basic_symbol (
typename Base::kind_type t, location_type&& l)
949 , location (std::move (l))
958#if 201103L <= YY_CPLUSPLUS
961 , value (std::move (v))
962 , location (std::move (l))
972#if 201103L <= YY_CPLUSPLUS
975 , value (std::move (v))
976 , location (std::move (l))
986#if 201103L <= YY_CPLUSPLUS
989 , value (std::move (v))
990 , location (std::move (l))
1000#if 201103L <= YY_CPLUSPLUS
1003 , value (std::move (v))
1004 , location (std::move (l))
1014#if 201103L <= YY_CPLUSPLUS
1017 , value (std::move (v))
1018 , location (std::move (l))
1041 basic_symbol<Base>& yysym = *
this;
1052 case symbol_kind::S_value:
1053 case symbol_kind::S_map_value:
1054 case symbol_kind::S_ncr_protocol_value:
1055 case symbol_kind::S_control_socket_type_value:
1056 case symbol_kind::S_auth_type_value:
1057 value.template destroy< ElementPtr > ();
1060 case symbol_kind::S_BOOLEAN:
1061 value.template destroy< bool > ();
1064 case symbol_kind::S_FLOAT:
1065 value.template destroy< double > ();
1068 case symbol_kind::S_INTEGER:
1069 value.template destroy< int64_t > ();
1072 case symbol_kind::S_STRING:
1073 value.template destroy< std::string > ();
1105#if YY_CPLUSPLUS < 201103L
1120#if 201103L <= YY_CPLUSPLUS
1164#if 201103L <= YY_CPLUSPLUS
1172#if !defined _MSC_VER || defined __clang__
1174 || (token::TOKEN_D2_PARSER_error <= tok && tok <= token::TOKEN_SUB_HOOKS_LIBRARY));
1177#if 201103L <= YY_CPLUSPLUS
1185#if !defined _MSC_VER || defined __clang__
1189#if 201103L <= YY_CPLUSPLUS
1197#if !defined _MSC_VER || defined __clang__
1201#if 201103L <= YY_CPLUSPLUS
1209#if !defined _MSC_VER || defined __clang__
1213#if 201103L <= YY_CPLUSPLUS
1221#if !defined _MSC_VER || defined __clang__
1231#if 201103L <= YY_CPLUSPLUS
1244 virtual int parse ();
1250 void set_debug_stream (std::ostream &);
1253 typedef
int debug_level_type;
1257 void set_debug_level (debug_level_type l);
1263 virtual void error (
const location_type& loc,
const std::string& msg);
1266 void error (
const syntax_error& err);
1270 static std::string symbol_name (symbol_kind_type yysymbol);
1273#if 201103L <= YY_CPLUSPLUS
1276 make_END (location_type l)
1278 return symbol_type (token::TOKEN_END, std::move (l));
1288#if 201103L <= YY_CPLUSPLUS
1291 make_D2_PARSER_error (location_type l)
1293 return symbol_type (token::TOKEN_D2_PARSER_error, std::move (l));
1300 return symbol_type (token::TOKEN_D2_PARSER_error, l);
1303#if 201103L <= YY_CPLUSPLUS
1306 make_D2_PARSER_UNDEF (location_type l)
1308 return symbol_type (token::TOKEN_D2_PARSER_UNDEF, std::move (l));
1315 return symbol_type (token::TOKEN_D2_PARSER_UNDEF, l);
1318#if 201103L <= YY_CPLUSPLUS
1321 make_COMMA (location_type l)
1323 return symbol_type (token::TOKEN_COMMA, std::move (l));
1333#if 201103L <= YY_CPLUSPLUS
1336 make_COLON (location_type l)
1338 return symbol_type (token::TOKEN_COLON, std::move (l));
1348#if 201103L <= YY_CPLUSPLUS
1351 make_LSQUARE_BRACKET (location_type l)
1353 return symbol_type (token::TOKEN_LSQUARE_BRACKET, std::move (l));
1360 return symbol_type (token::TOKEN_LSQUARE_BRACKET, l);
1363#if 201103L <= YY_CPLUSPLUS
1366 make_RSQUARE_BRACKET (location_type l)
1368 return symbol_type (token::TOKEN_RSQUARE_BRACKET, std::move (l));
1375 return symbol_type (token::TOKEN_RSQUARE_BRACKET, l);
1378#if 201103L <= YY_CPLUSPLUS
1381 make_LCURLY_BRACKET (location_type l)
1383 return symbol_type (token::TOKEN_LCURLY_BRACKET, std::move (l));
1390 return symbol_type (token::TOKEN_LCURLY_BRACKET, l);
1393#if 201103L <= YY_CPLUSPLUS
1396 make_RCURLY_BRACKET (location_type l)
1398 return symbol_type (token::TOKEN_RCURLY_BRACKET, std::move (l));
1405 return symbol_type (token::TOKEN_RCURLY_BRACKET, l);
1408#if 201103L <= YY_CPLUSPLUS
1411 make_NULL_TYPE (location_type l)
1413 return symbol_type (token::TOKEN_NULL_TYPE, std::move (l));
1423#if 201103L <= YY_CPLUSPLUS
1426 make_DHCPDDNS (location_type l)
1428 return symbol_type (token::TOKEN_DHCPDDNS, std::move (l));
1438#if 201103L <= YY_CPLUSPLUS
1441 make_IP_ADDRESS (location_type l)
1443 return symbol_type (token::TOKEN_IP_ADDRESS, std::move (l));
1453#if 201103L <= YY_CPLUSPLUS
1456 make_PORT (location_type l)
1458 return symbol_type (token::TOKEN_PORT, std::move (l));
1468#if 201103L <= YY_CPLUSPLUS
1471 make_DNS_SERVER_TIMEOUT (location_type l)
1473 return symbol_type (token::TOKEN_DNS_SERVER_TIMEOUT, std::move (l));
1480 return symbol_type (token::TOKEN_DNS_SERVER_TIMEOUT, l);
1483#if 201103L <= YY_CPLUSPLUS
1486 make_NCR_PROTOCOL (location_type l)
1488 return symbol_type (token::TOKEN_NCR_PROTOCOL, std::move (l));
1495 return symbol_type (token::TOKEN_NCR_PROTOCOL, l);
1498#if 201103L <= YY_CPLUSPLUS
1501 make_UDP (location_type l)
1503 return symbol_type (token::TOKEN_UDP, std::move (l));
1513#if 201103L <= YY_CPLUSPLUS
1516 make_TCP (location_type l)
1518 return symbol_type (token::TOKEN_TCP, std::move (l));
1528#if 201103L <= YY_CPLUSPLUS
1531 make_NCR_FORMAT (location_type l)
1533 return symbol_type (token::TOKEN_NCR_FORMAT, std::move (l));
1543#if 201103L <= YY_CPLUSPLUS
1546 make_JSON (location_type l)
1548 return symbol_type (token::TOKEN_JSON, std::move (l));
1558#if 201103L <= YY_CPLUSPLUS
1561 make_USER_CONTEXT (location_type l)
1563 return symbol_type (token::TOKEN_USER_CONTEXT, std::move (l));
1570 return symbol_type (token::TOKEN_USER_CONTEXT, l);
1573#if 201103L <= YY_CPLUSPLUS
1576 make_COMMENT (location_type l)
1578 return symbol_type (token::TOKEN_COMMENT, std::move (l));
1588#if 201103L <= YY_CPLUSPLUS
1591 make_FORWARD_DDNS (location_type l)
1593 return symbol_type (token::TOKEN_FORWARD_DDNS, std::move (l));
1600 return symbol_type (token::TOKEN_FORWARD_DDNS, l);
1603#if 201103L <= YY_CPLUSPLUS
1606 make_REVERSE_DDNS (location_type l)
1608 return symbol_type (token::TOKEN_REVERSE_DDNS, std::move (l));
1615 return symbol_type (token::TOKEN_REVERSE_DDNS, l);
1618#if 201103L <= YY_CPLUSPLUS
1621 make_DDNS_DOMAINS (location_type l)
1623 return symbol_type (token::TOKEN_DDNS_DOMAINS, std::move (l));
1630 return symbol_type (token::TOKEN_DDNS_DOMAINS, l);
1633#if 201103L <= YY_CPLUSPLUS
1636 make_KEY_NAME (location_type l)
1638 return symbol_type (token::TOKEN_KEY_NAME, std::move (l));
1648#if 201103L <= YY_CPLUSPLUS
1651 make_DNS_SERVERS (location_type l)
1653 return symbol_type (token::TOKEN_DNS_SERVERS, std::move (l));
1663#if 201103L <= YY_CPLUSPLUS
1666 make_HOSTNAME (location_type l)
1668 return symbol_type (token::TOKEN_HOSTNAME, std::move (l));
1678#if 201103L <= YY_CPLUSPLUS
1681 make_TSIG_KEYS (location_type l)
1683 return symbol_type (token::TOKEN_TSIG_KEYS, std::move (l));
1693#if 201103L <= YY_CPLUSPLUS
1696 make_ALGORITHM (location_type l)
1698 return symbol_type (token::TOKEN_ALGORITHM, std::move (l));
1708#if 201103L <= YY_CPLUSPLUS
1711 make_DIGEST_BITS (location_type l)
1713 return symbol_type (token::TOKEN_DIGEST_BITS, std::move (l));
1723#if 201103L <= YY_CPLUSPLUS
1726 make_SECRET (location_type l)
1728 return symbol_type (token::TOKEN_SECRET, std::move (l));
1738#if 201103L <= YY_CPLUSPLUS
1741 make_SECRET_FILE (location_type l)
1743 return symbol_type (token::TOKEN_SECRET_FILE, std::move (l));
1753#if 201103L <= YY_CPLUSPLUS
1756 make_CONTROL_SOCKET (location_type l)
1758 return symbol_type (token::TOKEN_CONTROL_SOCKET, std::move (l));
1765 return symbol_type (token::TOKEN_CONTROL_SOCKET, l);
1768#if 201103L <= YY_CPLUSPLUS
1771 make_CONTROL_SOCKETS (location_type l)
1773 return symbol_type (token::TOKEN_CONTROL_SOCKETS, std::move (l));
1780 return symbol_type (token::TOKEN_CONTROL_SOCKETS, l);
1783#if 201103L <= YY_CPLUSPLUS
1786 make_SOCKET_TYPE (location_type l)
1788 return symbol_type (token::TOKEN_SOCKET_TYPE, std::move (l));
1798#if 201103L <= YY_CPLUSPLUS
1801 make_UNIX (location_type l)
1803 return symbol_type (token::TOKEN_UNIX, std::move (l));
1813#if 201103L <= YY_CPLUSPLUS
1816 make_HTTP (location_type l)
1818 return symbol_type (token::TOKEN_HTTP, std::move (l));
1828#if 201103L <= YY_CPLUSPLUS
1831 make_HTTPS (location_type l)
1833 return symbol_type (token::TOKEN_HTTPS, std::move (l));
1843#if 201103L <= YY_CPLUSPLUS
1846 make_SOCKET_NAME (location_type l)
1848 return symbol_type (token::TOKEN_SOCKET_NAME, std::move (l));
1858#if 201103L <= YY_CPLUSPLUS
1861 make_SOCKET_ADDRESS (location_type l)
1863 return symbol_type (token::TOKEN_SOCKET_ADDRESS, std::move (l));
1870 return symbol_type (token::TOKEN_SOCKET_ADDRESS, l);
1873#if 201103L <= YY_CPLUSPLUS
1876 make_SOCKET_PORT (location_type l)
1878 return symbol_type (token::TOKEN_SOCKET_PORT, std::move (l));
1888#if 201103L <= YY_CPLUSPLUS
1891 make_AUTHENTICATION (location_type l)
1893 return symbol_type (token::TOKEN_AUTHENTICATION, std::move (l));
1900 return symbol_type (token::TOKEN_AUTHENTICATION, l);
1903#if 201103L <= YY_CPLUSPLUS
1906 make_TYPE (location_type l)
1908 return symbol_type (token::TOKEN_TYPE, std::move (l));
1918#if 201103L <= YY_CPLUSPLUS
1921 make_BASIC (location_type l)
1923 return symbol_type (token::TOKEN_BASIC, std::move (l));
1933#if 201103L <= YY_CPLUSPLUS
1936 make_REALM (location_type l)
1938 return symbol_type (token::TOKEN_REALM, std::move (l));
1948#if 201103L <= YY_CPLUSPLUS
1951 make_DIRECTORY (location_type l)
1953 return symbol_type (token::TOKEN_DIRECTORY, std::move (l));
1963#if 201103L <= YY_CPLUSPLUS
1966 make_CLIENTS (location_type l)
1968 return symbol_type (token::TOKEN_CLIENTS, std::move (l));
1978#if 201103L <= YY_CPLUSPLUS
1981 make_USER (location_type l)
1983 return symbol_type (token::TOKEN_USER, std::move (l));
1993#if 201103L <= YY_CPLUSPLUS
1996 make_USER_FILE (location_type l)
1998 return symbol_type (token::TOKEN_USER_FILE, std::move (l));
2008#if 201103L <= YY_CPLUSPLUS
2011 make_PASSWORD (location_type l)
2013 return symbol_type (token::TOKEN_PASSWORD, std::move (l));
2023#if 201103L <= YY_CPLUSPLUS
2026 make_PASSWORD_FILE (location_type l)
2028 return symbol_type (token::TOKEN_PASSWORD_FILE, std::move (l));
2035 return symbol_type (token::TOKEN_PASSWORD_FILE, l);
2038#if 201103L <= YY_CPLUSPLUS
2041 make_TRUST_ANCHOR (location_type l)
2043 return symbol_type (token::TOKEN_TRUST_ANCHOR, std::move (l));
2050 return symbol_type (token::TOKEN_TRUST_ANCHOR, l);
2053#if 201103L <= YY_CPLUSPLUS
2056 make_CERT_FILE (location_type l)
2058 return symbol_type (token::TOKEN_CERT_FILE, std::move (l));
2068#if 201103L <= YY_CPLUSPLUS
2071 make_KEY_FILE (location_type l)
2073 return symbol_type (token::TOKEN_KEY_FILE, std::move (l));
2083#if 201103L <= YY_CPLUSPLUS
2086 make_CERT_REQUIRED (location_type l)
2088 return symbol_type (token::TOKEN_CERT_REQUIRED, std::move (l));
2095 return symbol_type (token::TOKEN_CERT_REQUIRED, l);
2098#if 201103L <= YY_CPLUSPLUS
2101 make_HOOKS_LIBRARIES (location_type l)
2103 return symbol_type (token::TOKEN_HOOKS_LIBRARIES, std::move (l));
2110 return symbol_type (token::TOKEN_HOOKS_LIBRARIES, l);
2113#if 201103L <= YY_CPLUSPLUS
2116 make_LIBRARY (location_type l)
2118 return symbol_type (token::TOKEN_LIBRARY, std::move (l));
2128#if 201103L <= YY_CPLUSPLUS
2131 make_PARAMETERS (location_type l)
2133 return symbol_type (token::TOKEN_PARAMETERS, std::move (l));
2143#if 201103L <= YY_CPLUSPLUS
2146 make_LOGGERS (location_type l)
2148 return symbol_type (token::TOKEN_LOGGERS, std::move (l));
2158#if 201103L <= YY_CPLUSPLUS
2161 make_NAME (location_type l)
2163 return symbol_type (token::TOKEN_NAME, std::move (l));
2173#if 201103L <= YY_CPLUSPLUS
2176 make_OUTPUT_OPTIONS (location_type l)
2178 return symbol_type (token::TOKEN_OUTPUT_OPTIONS, std::move (l));
2185 return symbol_type (token::TOKEN_OUTPUT_OPTIONS, l);
2188#if 201103L <= YY_CPLUSPLUS
2191 make_OUTPUT (location_type l)
2193 return symbol_type (token::TOKEN_OUTPUT, std::move (l));
2203#if 201103L <= YY_CPLUSPLUS
2206 make_DEBUGLEVEL (location_type l)
2208 return symbol_type (token::TOKEN_DEBUGLEVEL, std::move (l));
2218#if 201103L <= YY_CPLUSPLUS
2221 make_SEVERITY (location_type l)
2223 return symbol_type (token::TOKEN_SEVERITY, std::move (l));
2233#if 201103L <= YY_CPLUSPLUS
2236 make_FLUSH (location_type l)
2238 return symbol_type (token::TOKEN_FLUSH, std::move (l));
2248#if 201103L <= YY_CPLUSPLUS
2251 make_MAXSIZE (location_type l)
2253 return symbol_type (token::TOKEN_MAXSIZE, std::move (l));
2263#if 201103L <= YY_CPLUSPLUS
2266 make_MAXVER (location_type l)
2268 return symbol_type (token::TOKEN_MAXVER, std::move (l));
2278#if 201103L <= YY_CPLUSPLUS
2281 make_PATTERN (location_type l)
2283 return symbol_type (token::TOKEN_PATTERN, std::move (l));
2293#if 201103L <= YY_CPLUSPLUS
2296 make_TOPLEVEL_JSON (location_type l)
2298 return symbol_type (token::TOKEN_TOPLEVEL_JSON, std::move (l));
2305 return symbol_type (token::TOKEN_TOPLEVEL_JSON, l);
2308#if 201103L <= YY_CPLUSPLUS
2311 make_TOPLEVEL_DHCPDDNS (location_type l)
2313 return symbol_type (token::TOKEN_TOPLEVEL_DHCPDDNS, std::move (l));
2320 return symbol_type (token::TOKEN_TOPLEVEL_DHCPDDNS, l);
2323#if 201103L <= YY_CPLUSPLUS
2326 make_SUB_DHCPDDNS (location_type l)
2328 return symbol_type (token::TOKEN_SUB_DHCPDDNS, std::move (l));
2335 return symbol_type (token::TOKEN_SUB_DHCPDDNS, l);
2338#if 201103L <= YY_CPLUSPLUS
2341 make_SUB_TSIG_KEY (location_type l)
2343 return symbol_type (token::TOKEN_SUB_TSIG_KEY, std::move (l));
2350 return symbol_type (token::TOKEN_SUB_TSIG_KEY, l);
2353#if 201103L <= YY_CPLUSPLUS
2356 make_SUB_TSIG_KEYS (location_type l)
2358 return symbol_type (token::TOKEN_SUB_TSIG_KEYS, std::move (l));
2365 return symbol_type (token::TOKEN_SUB_TSIG_KEYS, l);
2368#if 201103L <= YY_CPLUSPLUS
2371 make_SUB_DDNS_DOMAIN (location_type l)
2373 return symbol_type (token::TOKEN_SUB_DDNS_DOMAIN, std::move (l));
2380 return symbol_type (token::TOKEN_SUB_DDNS_DOMAIN, l);
2383#if 201103L <= YY_CPLUSPLUS
2386 make_SUB_DDNS_DOMAINS (location_type l)
2388 return symbol_type (token::TOKEN_SUB_DDNS_DOMAINS, std::move (l));
2395 return symbol_type (token::TOKEN_SUB_DDNS_DOMAINS, l);
2398#if 201103L <= YY_CPLUSPLUS
2401 make_SUB_DNS_SERVER (location_type l)
2403 return symbol_type (token::TOKEN_SUB_DNS_SERVER, std::move (l));
2410 return symbol_type (token::TOKEN_SUB_DNS_SERVER, l);
2413#if 201103L <= YY_CPLUSPLUS
2416 make_SUB_DNS_SERVERS (location_type l)
2418 return symbol_type (token::TOKEN_SUB_DNS_SERVERS, std::move (l));
2425 return symbol_type (token::TOKEN_SUB_DNS_SERVERS, l);
2428#if 201103L <= YY_CPLUSPLUS
2431 make_SUB_HOOKS_LIBRARY (location_type l)
2433 return symbol_type (token::TOKEN_SUB_HOOKS_LIBRARY, std::move (l));
2440 return symbol_type (token::TOKEN_SUB_HOOKS_LIBRARY, l);
2443#if 201103L <= YY_CPLUSPLUS
2446 make_STRING (std::string v, location_type l)
2448 return symbol_type (token::TOKEN_STRING, std::move (v), std::move (l));
2458#if 201103L <= YY_CPLUSPLUS
2461 make_INTEGER (int64_t v, location_type l)
2463 return symbol_type (token::TOKEN_INTEGER, std::move (v), std::move (l));
2473#if 201103L <= YY_CPLUSPLUS
2476 make_FLOAT (
double v, location_type l)
2478 return symbol_type (token::TOKEN_FLOAT, std::move (v), std::move (l));
2488#if 201103L <= YY_CPLUSPLUS
2491 make_BOOLEAN (
bool v, location_type l)
2493 return symbol_type (token::TOKEN_BOOLEAN, std::move (v), std::move (l));
2524#if YY_CPLUSPLUS < 201103L
2533 typedef short state_type;
2536 int yy_syntax_error_arguments_ (
const context& yyctx,
2537 symbol_kind_type yyarg[],
int yyargn)
const;
2541 virtual std::string yysyntax_error_ (
const context& yyctx)
const;
2545 static state_type yy_lr_goto_state_ (state_type yystate,
int yysym);
2549 static bool yy_pact_value_is_default_ (
int yyvalue)
YY_NOEXCEPT;
2553 static bool yy_table_value_is_error_ (
int yyvalue)
YY_NOEXCEPT;
2555 static const short yypact_ninf_;
2556 static const signed char yytable_ninf_;
2561 static symbol_kind_type yytranslate_ (
int t)
YY_NOEXCEPT;
2564 static std::string yytnamerr_ (
const char *yystr);
2567 static const char*
const yytname_[];
2573 static const short yypact_[];
2578 static const short yydefact_[];
2581 static const short yypgoto_[];
2584 static const short yydefgoto_[];
2589 static const short yytable_[];
2591 static const short yycheck_[];
2595 static const short yystos_[];
2598 static const short yyr1_[];
2601 static const signed char yyr2_[];
2606 static const short yyrline_[];
2608 virtual void yy_reduce_print_ (
int r)
const;
2610 virtual void yy_stack_print_ ()
const;
2615 std::ostream* yycdebug_;
2620 template <
typename Base>
2621 void yy_print_ (std::ostream& yyo,
const basic_symbol<Base>& yysym)
const;
2628 template <
typename Base>
2629 void yy_destroy_ (
const char* yymsg, basic_symbol<Base>& yysym)
const;
2639 typedef state_type kind_type;
2651 void move (by_state& that);
2659 enum { empty_state = 0 };
2667 struct stack_symbol_type : basic_symbol<by_state>
2670 typedef basic_symbol<by_state> super_type;
2672 stack_symbol_type ();
2674 stack_symbol_type (
YY_RVREF (stack_symbol_type) that);
2676 stack_symbol_type (state_type s,
YY_MOVE_REF (symbol_type) sym);
2677#if YY_CPLUSPLUS < 201103L
2680 stack_symbol_type& operator= (stack_symbol_type& that);
2684 stack_symbol_type& operator= (
const stack_symbol_type& that);
2689 template <
typename T,
typename S = std::vector<T> >
2694 typedef typename S::iterator iterator;
2695 typedef typename S::const_iterator const_iterator;
2696 typedef typename S::size_type size_type;
2697 typedef typename std::ptrdiff_t index_type;
2703#if 201103L <= YY_CPLUSPLUS
2705 stack (
const stack&) =
delete;
2707 stack& operator= (
const stack&) =
delete;
2714 operator[] (index_type i)
const
2716 return seq_[size_type (size () - 1 - i)];
2723 operator[] (index_type i)
2725 return seq_[size_type (size () - 1 - i)];
2734 seq_.push_back (T ());
2735 operator[] (0).move (t);
2757 return index_type (seq_.size ());
2764 return seq_.begin ();
2784 operator[] (index_type i)
const
2786 return stack_[range_ - i];
2790 const stack& stack_;
2795#if YY_CPLUSPLUS < 201103L
2797 stack (
const stack&);
2799 stack& operator= (
const stack&);
2807 typedef stack<stack_symbol_type> stack_type;
2810 stack_type yystack_;
2817 void yypush_ (
const char* m,
YY_MOVE_REF (stack_symbol_type) sym);
2825 void yypush_ (
const char* m, state_type s,
YY_MOVE_REF (symbol_type) sym);
2854 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2855 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2856 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2857 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2858 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2859 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2860 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2861 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2862 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2863 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2864 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2865 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2866 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2867 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2868 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2869 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2870 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2871 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2872 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2873 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2874 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2875 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2876 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2877 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2878 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2879 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
2880 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2881 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2882 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2883 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2884 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2885 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2886 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2887 75, 76, 77, 78, 79, 80, 81
2890 const int code_max = 336;
2894 else if (t <= code_max)
2901 template <
typename Base>
2907 switch (this->kind ())
2942 template <
typename Base>
2946 return this->kind ();
2950 template <
typename Base>
2957 template <
typename Base>
2961 super_type::move (s);
2962 switch (this->kind ())
3001#if 201103L <= YY_CPLUSPLUS
3004 : kind_ (that.kind_)
3012 : kind_ (that.kind_)
3017 : kind_ (yytranslate_ (t))
3049 return this->kind ();
3053#line 14 "d2_parser.yy"
3055#line 3056 "d2_parser.h"
#define YY_MOVE_REF(Type)
#define YY_ATTRIBUTE_PURE
Evaluation context, an interface to the expression evaluation.
const symbol_type & lookahead() const YY_NOEXCEPT
symbol_kind_type token() const YY_NOEXCEPT
const location_type & location() const YY_NOEXCEPT
Present a slice of the top of a stack.
slice(const stack &stack, index_type range) YY_NOEXCEPT
A buffer to store and retrieve objects.
value_type self_type
Type of *this.
T & emplace(const T &t)
Instantiate a T in here from t.
T & emplace()
Instantiate an empty T in here.
T & build()
Instantiate an empty T in here.
void copy(const self_type &that)
Copy the content of that to this.
long double yyalign_me_
Strongest alignment constraints.
T & as() YY_NOEXCEPT
Accessor to a built T.
value_type(YY_RVREF(T) t)
Construct and fill.
const T & as() const YY_NOEXCEPT
Const accessor to a built T (for printer).
~value_type() YY_NOEXCEPT
Destruction, allowed only if empty.
T & build(const T &t)
Instantiate a T in here from t.
void destroy()
Destroy the stored T.
char yyraw_[size]
A buffer large enough to store any of the semantic values.
void swap(self_type &that) YY_NOEXCEPT
Swap the content with that, of same type.
void move(self_type &that)
Move the content of that to this.
value_type() YY_NOEXCEPT
Empty construction.
static symbol_type make_COMMENT(const location_type &l)
static symbol_type make_AUTHENTICATION(const location_type &l)
static symbol_type make_STRING(const std::string &v, const location_type &l)
symbol_kind::symbol_kind_type symbol_kind_type
(Internal) symbol kind.
static symbol_type make_SUB_DDNS_DOMAIN(const location_type &l)
static symbol_type make_SUB_HOOKS_LIBRARY(const location_type &l)
static symbol_type make_LOGGERS(const location_type &l)
static symbol_type make_KEY_NAME(const location_type &l)
static symbol_type make_PARAMETERS(const location_type &l)
static symbol_type make_SUB_TSIG_KEYS(const location_type &l)
static symbol_type make_FORWARD_DDNS(const location_type &l)
static symbol_type make_SUB_DNS_SERVERS(const location_type &l)
static symbol_type make_TOPLEVEL_DHCPDDNS(const location_type &l)
static symbol_type make_SOCKET_TYPE(const location_type &l)
static symbol_type make_SUB_DDNS_DOMAINS(const location_type &l)
static symbol_type make_TCP(const location_type &l)
static symbol_type make_NAME(const location_type &l)
location location_type
Symbol locations.
static symbol_type make_MAXSIZE(const location_type &l)
static symbol_type make_PASSWORD_FILE(const location_type &l)
static symbol_type make_D2_PARSER_UNDEF(const location_type &l)
static symbol_type make_HTTPS(const location_type &l)
static symbol_type make_OUTPUT_OPTIONS(const location_type &l)
static symbol_type make_LSQUARE_BRACKET(const location_type &l)
static symbol_type make_PASSWORD(const location_type &l)
static symbol_type make_DEBUGLEVEL(const location_type &l)
static symbol_type make_LCURLY_BRACKET(const location_type &l)
static symbol_type make_DIGEST_BITS(const location_type &l)
static symbol_type make_SOCKET_ADDRESS(const location_type &l)
static symbol_type make_CERT_FILE(const location_type &l)
static symbol_type make_TOPLEVEL_JSON(const location_type &l)
static symbol_type make_SOCKET_NAME(const location_type &l)
static symbol_type make_DNS_SERVER_TIMEOUT(const location_type &l)
static symbol_type make_NULL_TYPE(const location_type &l)
static symbol_type make_LIBRARY(const location_type &l)
static symbol_type make_UDP(const location_type &l)
static symbol_type make_HOOKS_LIBRARIES(const location_type &l)
static symbol_type make_COLON(const location_type &l)
static symbol_type make_COMMA(const location_type &l)
static symbol_type make_SECRET(const location_type &l)
static symbol_type make_SUB_TSIG_KEY(const location_type &l)
static symbol_type make_RCURLY_BRACKET(const location_type &l)
static symbol_type make_UNIX(const location_type &l)
static symbol_type make_OUTPUT(const location_type &l)
value_type semantic_type
Backward compatibility (Bison 3.8).
static symbol_type make_SUB_DHCPDDNS(const location_type &l)
static const symbol_kind_type YYNTOKENS
The number of tokens.
static symbol_type make_INTEGER(const int64_t &v, const location_type &l)
static symbol_type make_DHCPDDNS(const location_type &l)
static symbol_type make_D2_PARSER_error(const location_type &l)
static symbol_type make_CONTROL_SOCKETS(const location_type &l)
static symbol_type make_SUB_DNS_SERVER(const location_type &l)
static symbol_type make_MAXVER(const location_type &l)
static symbol_type make_SECRET_FILE(const location_type &l)
static symbol_type make_DDNS_DOMAINS(const location_type &l)
static symbol_type make_SEVERITY(const location_type &l)
static symbol_type make_REALM(const location_type &l)
static symbol_type make_RSQUARE_BRACKET(const location_type &l)
static symbol_type make_HTTP(const location_type &l)
static symbol_type make_HOSTNAME(const location_type &l)
static symbol_type make_USER_CONTEXT(const location_type &l)
static symbol_type make_USER(const location_type &l)
static symbol_type make_SOCKET_PORT(const location_type &l)
static symbol_type make_BASIC(const location_type &l)
static symbol_type make_FLUSH(const location_type &l)
static symbol_type make_REVERSE_DDNS(const location_type &l)
static symbol_type make_PATTERN(const location_type &l)
static symbol_type make_KEY_FILE(const location_type &l)
static symbol_type make_ALGORITHM(const location_type &l)
token::token_kind_type token_kind_type
Token kind, as returned by yylex.
static symbol_type make_IP_ADDRESS(const location_type &l)
static symbol_type make_PORT(const location_type &l)
static symbol_type make_CLIENTS(const location_type &l)
static symbol_type make_CERT_REQUIRED(const location_type &l)
static std::string symbol_name(symbol_kind_type yysymbol)
The user-facing name of the symbol whose (internal) number is YYSYMBOL.
static symbol_type make_TYPE(const location_type &l)
static symbol_type make_TRUST_ANCHOR(const location_type &l)
static symbol_type make_FLOAT(const double &v, const location_type &l)
static symbol_type make_BOOLEAN(const bool &v, const location_type &l)
static symbol_type make_DIRECTORY(const location_type &l)
static symbol_type make_JSON(const location_type &l)
token_kind_type token_type
Backward compatibility alias (Bison 3.6).
static symbol_type make_END(const location_type &l)
static symbol_type make_CONTROL_SOCKET(const location_type &l)
static symbol_type make_NCR_PROTOCOL(const location_type &l)
static symbol_type make_DNS_SERVERS(const location_type &l)
static symbol_type make_USER_FILE(const location_type &l)
static symbol_type make_TSIG_KEYS(const location_type &l)
static symbol_type make_NCR_FORMAT(const location_type &l)
Forward declaration of the ParserContext class.
A collection of classes for housing and parsing the application configuration necessary for the DHCP-...
#define D2_PARSER__ASSERT
boost::shared_ptr< Element > ElementPtr
Defines the logger used by the top-level component of kea-lfc.
value_type value
The semantic value.
std::string name() const YY_NOEXCEPT
The user-facing name of this symbol.
basic_symbol() YY_NOEXCEPT
Default constructor.
basic_symbol(typename Base::kind_type t, const double &v, const location_type &l)
bool empty() const YY_NOEXCEPT
Whether empty.
Base super_type
Alias to Base.
basic_symbol(typename Base::kind_type t, const std::string &v, const location_type &l)
basic_symbol(typename Base::kind_type t, const location_type &l)
Constructors for typed symbols.
basic_symbol(typename Base::kind_type t, const int64_t &v, const location_type &l)
location_type location
The location.
symbol_kind_type type_get() const YY_NOEXCEPT
Backward compatibility (Bison 3.6).
~basic_symbol()
Destroy the symbol.
basic_symbol(typename Base::kind_type t, const bool &v, const location_type &l)
void move(basic_symbol &s)
Destructive move, s is emptied into this.
void clear() YY_NOEXCEPT
Destroy contents, and record that is empty.
basic_symbol(typename Base::kind_type t, const ElementPtr &v, const location_type &l)
Type access provider for token (enum) based symbols.
void clear() YY_NOEXCEPT
Record that this symbol is empty.
by_kind() YY_NOEXCEPT
Default constructor.
token_kind_type kind_type
The symbol kind as needed by the constructor.
symbol_kind_type type_get() const YY_NOEXCEPT
Backward compatibility (Bison 3.6).
symbol_kind_type kind() const YY_NOEXCEPT
The (internal) type number (corresponding to type).
void move(by_kind &that)
Steal the symbol kind from that.
@ S_control_socket_type_value
@ YYNTOKENS
Number of tokens.
"External" symbols: returned by the scanner.
basic_symbol< by_kind > super_type
Superclass.
symbol_type() YY_NOEXCEPT
Empty symbol.
Syntax errors thrown from user actions.
syntax_error(const location_type &l, const std::string &m)
~syntax_error() YY_NOEXCEPT YY_NOTHROW
syntax_error(const syntax_error &s)
token_kind_type yytokentype
Backward compatibility alias (Bison 3.6).