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);
434 char dummy2[
sizeof (bool)];
437 char dummy3[
sizeof (double)];
440 char dummy4[
sizeof (int64_t)];
443 char dummy5[
sizeof (std::string)];
447 enum { size =
sizeof (union_type) };
459 const std::type_info *yytypeid_;
473 : std::runtime_error (m)
478 : std::runtime_error (s.what ())
492 TOKEN_D2_PARSER_EMPTY = -2,
494 TOKEN_D2_PARSER_error = 256,
495 TOKEN_D2_PARSER_UNDEF = 257,
498 TOKEN_LSQUARE_BRACKET = 260,
499 TOKEN_RSQUARE_BRACKET = 261,
500 TOKEN_LCURLY_BRACKET = 262,
501 TOKEN_RCURLY_BRACKET = 263,
502 TOKEN_NULL_TYPE = 264,
503 TOKEN_DHCPDDNS = 265,
504 TOKEN_IP_ADDRESS = 266,
506 TOKEN_DNS_SERVER_TIMEOUT = 268,
507 TOKEN_NCR_PROTOCOL = 269,
510 TOKEN_NCR_FORMAT = 272,
512 TOKEN_USER_CONTEXT = 274,
514 TOKEN_FORWARD_DDNS = 276,
515 TOKEN_REVERSE_DDNS = 277,
516 TOKEN_DDNS_DOMAINS = 278,
517 TOKEN_KEY_NAME = 279,
518 TOKEN_DNS_SERVERS = 280,
519 TOKEN_HOSTNAME = 281,
520 TOKEN_TSIG_KEYS = 282,
521 TOKEN_ALGORITHM = 283,
522 TOKEN_DIGEST_BITS = 284,
524 TOKEN_CONTROL_SOCKET = 286,
525 TOKEN_SOCKET_TYPE = 287,
526 TOKEN_SOCKET_NAME = 288,
527 TOKEN_HOOKS_LIBRARIES = 289,
529 TOKEN_PARAMETERS = 291,
532 TOKEN_OUTPUT_OPTIONS = 294,
534 TOKEN_DEBUGLEVEL = 296,
535 TOKEN_SEVERITY = 297,
540 TOKEN_TOPLEVEL_JSON = 302,
541 TOKEN_TOPLEVEL_DHCPDDNS = 303,
542 TOKEN_SUB_DHCPDDNS = 304,
543 TOKEN_SUB_TSIG_KEY = 305,
544 TOKEN_SUB_TSIG_KEYS = 306,
545 TOKEN_SUB_DDNS_DOMAIN = 307,
546 TOKEN_SUB_DDNS_DOMAINS = 308,
547 TOKEN_SUB_DNS_SERVER = 309,
548 TOKEN_SUB_DNS_SERVERS = 310,
549 TOKEN_SUB_HOOKS_LIBRARY = 311,
577 S_LSQUARE_BRACKET = 5,
578 S_RSQUARE_BRACKET = 6,
579 S_LCURLY_BRACKET = 7,
580 S_RCURLY_BRACKET = 8,
585 S_DNS_SERVER_TIMEOUT = 13,
603 S_CONTROL_SOCKET = 31,
606 S_HOOKS_LIBRARIES = 34,
611 S_OUTPUT_OPTIONS = 39,
619 S_TOPLEVEL_JSON = 47,
620 S_TOPLEVEL_DHCPDDNS = 48,
623 S_SUB_TSIG_KEYS = 51,
624 S_SUB_DDNS_DOMAIN = 52,
625 S_SUB_DDNS_DOMAINS = 53,
626 S_SUB_DNS_SERVER = 54,
627 S_SUB_DNS_SERVERS = 55,
628 S_SUB_HOOKS_LIBRARY = 56,
651 S_not_empty_map = 79,
655 S_not_empty_list = 83,
656 S_unknown_map_entry = 84,
659 S_global_object = 87,
661 S_global_object_comma = 89,
664 S_dhcpddns_params = 92,
665 S_dhcpddns_param = 93,
669 S_dns_server_timeout = 97,
672 S_ncr_protocol_value = 100,
675 S_user_context = 103,
679 S_forward_ddns = 107,
681 S_reverse_ddns = 109,
683 S_ddns_mgr_params = 111,
684 S_not_empty_ddns_mgr_params = 112,
685 S_ddns_mgr_param = 113,
686 S_ddns_domains = 114,
688 S_sub_ddns_domains = 116,
690 S_ddns_domain_list = 118,
691 S_not_empty_ddns_domain_list = 119,
694 S_sub_ddns_domain = 122,
696 S_ddns_domain_params = 124,
697 S_ddns_domain_param = 125,
698 S_ddns_domain_name = 126,
700 S_ddns_key_name = 128,
704 S_sub_dns_servers = 132,
706 S_dns_server_list = 134,
709 S_sub_dns_server = 137,
711 S_dns_server_params = 139,
712 S_dns_server_param = 140,
713 S_dns_server_hostname = 141,
715 S_dns_server_ip_address = 143,
717 S_dns_server_port = 145,
720 S_sub_tsig_keys = 148,
722 S_tsig_keys_list = 150,
723 S_not_empty_tsig_keys_list = 151,
726 S_sub_tsig_key = 154,
728 S_tsig_key_params = 156,
729 S_tsig_key_param = 157,
730 S_tsig_key_name = 158,
732 S_tsig_key_algorithm = 160,
734 S_tsig_key_digest_bits = 162,
735 S_tsig_key_secret = 163,
737 S_control_socket = 165,
739 S_control_socket_params = 167,
740 S_control_socket_param = 168,
741 S_control_socket_type = 169,
743 S_control_socket_name = 171,
745 S_hooks_libraries = 173,
747 S_hooks_libraries_list = 175,
748 S_not_empty_hooks_libraries_list = 176,
749 S_hooks_library = 177,
751 S_sub_hooks_library = 179,
753 S_hooks_params = 181,
761 S_loggers_entries = 189,
762 S_logger_entry = 190,
764 S_logger_params = 192,
765 S_logger_param = 193,
771 S_output_options_list = 199,
773 S_output_options_list_content = 201,
774 S_output_entry = 202,
776 S_output_params_list = 204,
777 S_output_params = 205,
800 template <
typename Base>
812#if 201103L <= YY_CPLUSPLUS
815 : Base (std::move (that))
819 switch (this->kind ())
824 value.move<
ElementPtr > (std::move (that.value));
828 value.move<
bool > (std::move (that.value));
832 value.move<
double > (std::move (that.value));
836 value.move< int64_t > (std::move (that.value));
840 value.move< std::string > (std::move (that.value));
851 basic_symbol (
const basic_symbol& that);
854#if 201103L <= YY_CPLUSPLUS
866#if 201103L <= YY_CPLUSPLUS
869 , value (std::move (v))
880#if 201103L <= YY_CPLUSPLUS
883 , value (std::move (v))
894#if 201103L <= YY_CPLUSPLUS
897 , value (std::move (v))
908#if 201103L <= YY_CPLUSPLUS
911 , value (std::move (v))
922#if 201103L <= YY_CPLUSPLUS
925 , value (std::move (v))
963 value.template destroy< ElementPtr > ();
967 value.template destroy< bool > ();
971 value.template destroy< double > ();
975 value.template destroy< int64_t > ();
979 value.template destroy< std::string > ();
1011#if YY_CPLUSPLUS < 201103L
1026#if 201103L <= YY_CPLUSPLUS
1070#if 201103L <= YY_CPLUSPLUS
1078#if !defined _MSC_VER || defined __clang__
1083#if 201103L <= YY_CPLUSPLUS
1091#if !defined _MSC_VER || defined __clang__
1095#if 201103L <= YY_CPLUSPLUS
1103#if !defined _MSC_VER || defined __clang__
1107#if 201103L <= YY_CPLUSPLUS
1115#if !defined _MSC_VER || defined __clang__
1119#if 201103L <= YY_CPLUSPLUS
1127#if !defined _MSC_VER || defined __clang__
1137#if 201103L <= YY_CPLUSPLUS
1150 virtual int parse ();
1179#if 201103L <= YY_CPLUSPLUS
1194#if 201103L <= YY_CPLUSPLUS
1209#if 201103L <= YY_CPLUSPLUS
1224#if 201103L <= YY_CPLUSPLUS
1239#if 201103L <= YY_CPLUSPLUS
1254#if 201103L <= YY_CPLUSPLUS
1269#if 201103L <= YY_CPLUSPLUS
1284#if 201103L <= YY_CPLUSPLUS
1299#if 201103L <= YY_CPLUSPLUS
1314#if 201103L <= YY_CPLUSPLUS
1329#if 201103L <= YY_CPLUSPLUS
1344#if 201103L <= YY_CPLUSPLUS
1359#if 201103L <= YY_CPLUSPLUS
1374#if 201103L <= YY_CPLUSPLUS
1389#if 201103L <= YY_CPLUSPLUS
1404#if 201103L <= YY_CPLUSPLUS
1419#if 201103L <= YY_CPLUSPLUS
1434#if 201103L <= YY_CPLUSPLUS
1449#if 201103L <= YY_CPLUSPLUS
1464#if 201103L <= YY_CPLUSPLUS
1479#if 201103L <= YY_CPLUSPLUS
1494#if 201103L <= YY_CPLUSPLUS
1509#if 201103L <= YY_CPLUSPLUS
1524#if 201103L <= YY_CPLUSPLUS
1539#if 201103L <= YY_CPLUSPLUS
1554#if 201103L <= YY_CPLUSPLUS
1569#if 201103L <= YY_CPLUSPLUS
1584#if 201103L <= YY_CPLUSPLUS
1599#if 201103L <= YY_CPLUSPLUS
1614#if 201103L <= YY_CPLUSPLUS
1629#if 201103L <= YY_CPLUSPLUS
1644#if 201103L <= YY_CPLUSPLUS
1659#if 201103L <= YY_CPLUSPLUS
1674#if 201103L <= YY_CPLUSPLUS
1689#if 201103L <= YY_CPLUSPLUS
1704#if 201103L <= YY_CPLUSPLUS
1719#if 201103L <= YY_CPLUSPLUS
1734#if 201103L <= YY_CPLUSPLUS
1749#if 201103L <= YY_CPLUSPLUS
1764#if 201103L <= YY_CPLUSPLUS
1779#if 201103L <= YY_CPLUSPLUS
1794#if 201103L <= YY_CPLUSPLUS
1809#if 201103L <= YY_CPLUSPLUS
1824#if 201103L <= YY_CPLUSPLUS
1839#if 201103L <= YY_CPLUSPLUS
1854#if 201103L <= YY_CPLUSPLUS
1869#if 201103L <= YY_CPLUSPLUS
1884#if 201103L <= YY_CPLUSPLUS
1899#if 201103L <= YY_CPLUSPLUS
1914#if 201103L <= YY_CPLUSPLUS
1929#if 201103L <= YY_CPLUSPLUS
1944#if 201103L <= YY_CPLUSPLUS
1959#if 201103L <= YY_CPLUSPLUS
1974#if 201103L <= YY_CPLUSPLUS
1989#if 201103L <= YY_CPLUSPLUS
2004#if 201103L <= YY_CPLUSPLUS
2019#if 201103L <= YY_CPLUSPLUS
2034#if 201103L <= YY_CPLUSPLUS
2049#if 201103L <= YY_CPLUSPLUS
2064#if 201103L <= YY_CPLUSPLUS
2079#if 201103L <= YY_CPLUSPLUS
2115#if YY_CPLUSPLUS < 201103L
2124 typedef short state_type;
2127 int yy_syntax_error_arguments_ (
const context& yyctx,
2132 virtual std::string yysyntax_error_ (
const context& yyctx)
const;
2136 static state_type yy_lr_goto_state_ (state_type yystate,
int yysym);
2140 static bool yy_pact_value_is_default_ (
int yyvalue)
YY_NOEXCEPT;
2144 static bool yy_table_value_is_error_ (
int yyvalue)
YY_NOEXCEPT;
2146 static const short yypact_ninf_;
2147 static const signed char yytable_ninf_;
2155 static std::string yytnamerr_ (
const char *yystr);
2158 static const char*
const yytname_[];
2164 static const short yypact_[];
2169 static const short yydefact_[];
2172 static const short yypgoto_[];
2175 static const short yydefgoto_[];
2180 static const short yytable_[];
2182 static const short yycheck_[];
2186 static const unsigned char yystos_[];
2189 static const unsigned char yyr1_[];
2192 static const signed char yyr2_[];
2197 static const short yyrline_[];
2199 virtual void yy_reduce_print_ (
int r)
const;
2201 virtual void yy_stack_print_ ()
const;
2206 std::ostream* yycdebug_;
2211 template <
typename Base>
2212 void yy_print_ (std::ostream& yyo,
const basic_symbol<Base>& yysym)
const;
2219 template <
typename Base>
2220 void yy_destroy_ (
const char* yymsg, basic_symbol<Base>& yysym)
const;
2230 typedef state_type kind_type;
2242 void move (by_state& that);
2250 enum { empty_state = 0 };
2258 struct stack_symbol_type : basic_symbol<by_state>
2261 typedef basic_symbol<by_state> super_type;
2263 stack_symbol_type ();
2265 stack_symbol_type (
YY_RVREF (stack_symbol_type) that);
2267 stack_symbol_type (state_type s,
YY_MOVE_REF (symbol_type) sym);
2268#if YY_CPLUSPLUS < 201103L
2271 stack_symbol_type& operator= (stack_symbol_type& that);
2275 stack_symbol_type& operator= (
const stack_symbol_type& that);
2280 template <
typename T,
typename S = std::vector<T> >
2285 typedef typename S::iterator iterator;
2286 typedef typename S::const_iterator const_iterator;
2287 typedef typename S::size_type size_type;
2288 typedef typename std::ptrdiff_t index_type;
2294#if 201103L <= YY_CPLUSPLUS
2296 stack (
const stack&) =
delete;
2298 stack& operator= (
const stack&) =
delete;
2305 operator[] (index_type i)
const
2307 return seq_[size_type (size () - 1 - i)];
2314 operator[] (index_type i)
2316 return seq_[size_type (size () - 1 - i)];
2325 seq_.push_back (T ());
2326 operator[] (0).move (t);
2348 return index_type (seq_.size ());
2355 return seq_.begin ();
2375 operator[] (index_type i)
const
2377 return stack_[range_ - i];
2381 const stack& stack_;
2386#if YY_CPLUSPLUS < 201103L
2388 stack (
const stack&);
2390 stack& operator= (
const stack&);
2398 typedef stack<stack_symbol_type> stack_type;
2401 stack_type yystack_;
2408 void yypush_ (
const char* m,
YY_MOVE_REF (stack_symbol_type) sym);
2416 void yypush_ (
const char* m, state_type s,
YY_MOVE_REF (symbol_type) sym);
2445 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2446 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2447 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2448 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2449 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2450 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2451 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2452 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2453 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2454 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2455 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2456 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2457 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2458 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2459 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2460 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2461 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2462 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2463 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2464 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2465 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2466 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2467 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2468 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2469 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2470 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
2471 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2472 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2473 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2474 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2475 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2476 55, 56, 57, 58, 59, 60
2479 const int code_max = 315;
2483 else if (t <= code_max)
2490 template <
typename Base>
2496 switch (this->kind ())
2529 template <
typename Base>
2533 return this->kind ();
2537 template <
typename Base>
2544 template <
typename Base>
2548 super_type::move (s);
2549 switch (this->kind ())
2586#if 201103L <= YY_CPLUSPLUS
2589 : kind_ (that.kind_)
2597 : kind_ (that.kind_)
2602 : kind_ (yytranslate_ (t))
2634 return this->kind ();
2638#line 14 "d2_parser.yy"
2640#line 2641 "d2_parser.h"
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_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)
void set_debug_level(debug_level_type l)
Set the current debugging level.
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)
D2Parser(isc::d2::D2ParserContext &ctx_yyarg)
Build a parser object.
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)
int debug_level_type
Type for debugging levels.
debug_level_type debug_level() const YY_ATTRIBUTE_PURE
The current debugging level.
static symbol_type make_D2_PARSER_UNDEF(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_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_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)
void set_debug_stream(std::ostream &)
Set the current debugging stream.
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_SUB_DNS_SERVER(const location_type &l)
static symbol_type make_MAXVER(const location_type &l)
static symbol_type make_DDNS_DOMAINS(const location_type &l)
virtual int parse()
Parse.
static symbol_type make_SEVERITY(const location_type &l)
static symbol_type make_RSQUARE_BRACKET(const location_type &l)
std::ostream & debug_stream() const YY_ATTRIBUTE_PURE
The current debugging stream.
static symbol_type make_HOSTNAME(const location_type &l)
static symbol_type make_USER_CONTEXT(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_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 std::string symbol_name(symbol_kind_type yysymbol)
The user-facing name of the symbol whose (internal) number is YYSYMBOL.
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_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)
virtual void error(const location_type &loc, const std::string &msg)
Report a syntax error.
static symbol_type make_DNS_SERVERS(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
#define YY_MOVE_REF(Type)
#define YY_ATTRIBUTE_PURE
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.
symbol_kind_type kind_
The symbol kind.
@ 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).
@ TOKEN_SUB_HOOKS_LIBRARY
@ TOKEN_TOPLEVEL_DHCPDDNS
@ TOKEN_DNS_SERVER_TIMEOUT