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,
663 S_dhcpddns_params = 91,
664 S_dhcpddns_param = 92,
668 S_dns_server_timeout = 96,
671 S_ncr_protocol_value = 99,
674 S_user_context = 102,
678 S_forward_ddns = 106,
680 S_reverse_ddns = 108,
682 S_ddns_mgr_params = 110,
683 S_not_empty_ddns_mgr_params = 111,
684 S_ddns_mgr_param = 112,
685 S_ddns_domains = 113,
687 S_sub_ddns_domains = 115,
689 S_ddns_domain_list = 117,
690 S_not_empty_ddns_domain_list = 118,
693 S_sub_ddns_domain = 121,
695 S_ddns_domain_params = 123,
696 S_ddns_domain_param = 124,
697 S_ddns_domain_name = 125,
699 S_ddns_key_name = 127,
703 S_sub_dns_servers = 131,
705 S_dns_server_list = 133,
708 S_sub_dns_server = 136,
710 S_dns_server_params = 138,
711 S_dns_server_param = 139,
712 S_dns_server_hostname = 140,
714 S_dns_server_ip_address = 142,
716 S_dns_server_port = 144,
719 S_sub_tsig_keys = 147,
721 S_tsig_keys_list = 149,
722 S_not_empty_tsig_keys_list = 150,
725 S_sub_tsig_key = 153,
727 S_tsig_key_params = 155,
728 S_tsig_key_param = 156,
729 S_tsig_key_name = 157,
731 S_tsig_key_algorithm = 159,
733 S_tsig_key_digest_bits = 161,
734 S_tsig_key_secret = 162,
736 S_control_socket = 164,
738 S_control_socket_params = 166,
739 S_control_socket_param = 167,
740 S_control_socket_type = 168,
742 S_control_socket_name = 170,
744 S_hooks_libraries = 172,
746 S_hooks_libraries_list = 174,
747 S_not_empty_hooks_libraries_list = 175,
748 S_hooks_library = 176,
750 S_sub_hooks_library = 178,
752 S_hooks_params = 180,
760 S_loggers_entries = 188,
761 S_logger_entry = 189,
763 S_logger_params = 191,
764 S_logger_param = 192,
770 S_output_options_list = 198,
772 S_output_options_list_content = 200,
773 S_output_entry = 201,
775 S_output_params_list = 203,
776 S_output_params = 204,
799 template <
typename Base>
811#if 201103L <= YY_CPLUSPLUS
814 : Base (std::move (that))
818 switch (this->kind ())
823 value.move<
ElementPtr > (std::move (that.value));
827 value.move<
bool > (std::move (that.value));
831 value.move<
double > (std::move (that.value));
835 value.move< int64_t > (std::move (that.value));
839 value.move< std::string > (std::move (that.value));
850 basic_symbol (
const basic_symbol& that);
853#if 201103L <= YY_CPLUSPLUS
865#if 201103L <= YY_CPLUSPLUS
868 , value (std::move (v))
879#if 201103L <= YY_CPLUSPLUS
882 , value (std::move (v))
893#if 201103L <= YY_CPLUSPLUS
896 , value (std::move (v))
907#if 201103L <= YY_CPLUSPLUS
910 , value (std::move (v))
921#if 201103L <= YY_CPLUSPLUS
924 , value (std::move (v))
962 value.template destroy< ElementPtr > ();
966 value.template destroy< bool > ();
970 value.template destroy< double > ();
974 value.template destroy< int64_t > ();
978 value.template destroy< std::string > ();
1010#if YY_CPLUSPLUS < 201103L
1025#if 201103L <= YY_CPLUSPLUS
1069#if 201103L <= YY_CPLUSPLUS
1077#if !defined _MSC_VER || defined __clang__
1082#if 201103L <= YY_CPLUSPLUS
1090#if !defined _MSC_VER || defined __clang__
1094#if 201103L <= YY_CPLUSPLUS
1102#if !defined _MSC_VER || defined __clang__
1106#if 201103L <= YY_CPLUSPLUS
1114#if !defined _MSC_VER || defined __clang__
1118#if 201103L <= YY_CPLUSPLUS
1126#if !defined _MSC_VER || defined __clang__
1136#if 201103L <= YY_CPLUSPLUS
1149 virtual int parse ();
1178#if 201103L <= YY_CPLUSPLUS
1193#if 201103L <= YY_CPLUSPLUS
1208#if 201103L <= YY_CPLUSPLUS
1223#if 201103L <= YY_CPLUSPLUS
1238#if 201103L <= YY_CPLUSPLUS
1253#if 201103L <= YY_CPLUSPLUS
1268#if 201103L <= YY_CPLUSPLUS
1283#if 201103L <= YY_CPLUSPLUS
1298#if 201103L <= YY_CPLUSPLUS
1313#if 201103L <= YY_CPLUSPLUS
1328#if 201103L <= YY_CPLUSPLUS
1343#if 201103L <= YY_CPLUSPLUS
1358#if 201103L <= YY_CPLUSPLUS
1373#if 201103L <= YY_CPLUSPLUS
1388#if 201103L <= YY_CPLUSPLUS
1403#if 201103L <= YY_CPLUSPLUS
1418#if 201103L <= YY_CPLUSPLUS
1433#if 201103L <= YY_CPLUSPLUS
1448#if 201103L <= YY_CPLUSPLUS
1463#if 201103L <= YY_CPLUSPLUS
1478#if 201103L <= YY_CPLUSPLUS
1493#if 201103L <= YY_CPLUSPLUS
1508#if 201103L <= YY_CPLUSPLUS
1523#if 201103L <= YY_CPLUSPLUS
1538#if 201103L <= YY_CPLUSPLUS
1553#if 201103L <= YY_CPLUSPLUS
1568#if 201103L <= YY_CPLUSPLUS
1583#if 201103L <= YY_CPLUSPLUS
1598#if 201103L <= YY_CPLUSPLUS
1613#if 201103L <= YY_CPLUSPLUS
1628#if 201103L <= YY_CPLUSPLUS
1643#if 201103L <= YY_CPLUSPLUS
1658#if 201103L <= YY_CPLUSPLUS
1673#if 201103L <= YY_CPLUSPLUS
1688#if 201103L <= YY_CPLUSPLUS
1703#if 201103L <= YY_CPLUSPLUS
1718#if 201103L <= YY_CPLUSPLUS
1733#if 201103L <= YY_CPLUSPLUS
1748#if 201103L <= YY_CPLUSPLUS
1763#if 201103L <= YY_CPLUSPLUS
1778#if 201103L <= YY_CPLUSPLUS
1793#if 201103L <= YY_CPLUSPLUS
1808#if 201103L <= YY_CPLUSPLUS
1823#if 201103L <= YY_CPLUSPLUS
1838#if 201103L <= YY_CPLUSPLUS
1853#if 201103L <= YY_CPLUSPLUS
1868#if 201103L <= YY_CPLUSPLUS
1883#if 201103L <= YY_CPLUSPLUS
1898#if 201103L <= YY_CPLUSPLUS
1913#if 201103L <= YY_CPLUSPLUS
1928#if 201103L <= YY_CPLUSPLUS
1943#if 201103L <= YY_CPLUSPLUS
1958#if 201103L <= YY_CPLUSPLUS
1973#if 201103L <= YY_CPLUSPLUS
1988#if 201103L <= YY_CPLUSPLUS
2003#if 201103L <= YY_CPLUSPLUS
2018#if 201103L <= YY_CPLUSPLUS
2033#if 201103L <= YY_CPLUSPLUS
2048#if 201103L <= YY_CPLUSPLUS
2063#if 201103L <= YY_CPLUSPLUS
2078#if 201103L <= YY_CPLUSPLUS
2114#if YY_CPLUSPLUS < 201103L
2123 typedef short state_type;
2126 int yy_syntax_error_arguments_ (
const context& yyctx,
2131 virtual std::string yysyntax_error_ (
const context& yyctx)
const;
2135 static state_type yy_lr_goto_state_ (state_type yystate,
int yysym);
2139 static bool yy_pact_value_is_default_ (
int yyvalue)
YY_NOEXCEPT;
2143 static bool yy_table_value_is_error_ (
int yyvalue)
YY_NOEXCEPT;
2145 static const short yypact_ninf_;
2146 static const signed char yytable_ninf_;
2154 static std::string yytnamerr_ (
const char *yystr);
2157 static const char*
const yytname_[];
2163 static const short yypact_[];
2168 static const unsigned char yydefact_[];
2171 static const short yypgoto_[];
2174 static const short yydefgoto_[];
2179 static const short yytable_[];
2181 static const short yycheck_[];
2185 static const unsigned char yystos_[];
2188 static const unsigned char yyr1_[];
2191 static const signed char yyr2_[];
2196 static const short yyrline_[];
2198 virtual void yy_reduce_print_ (
int r)
const;
2200 virtual void yy_stack_print_ ()
const;
2205 std::ostream* yycdebug_;
2210 template <
typename Base>
2211 void yy_print_ (std::ostream& yyo,
const basic_symbol<Base>& yysym)
const;
2218 template <
typename Base>
2219 void yy_destroy_ (
const char* yymsg, basic_symbol<Base>& yysym)
const;
2229 typedef state_type kind_type;
2241 void move (by_state& that);
2249 enum { empty_state = 0 };
2257 struct stack_symbol_type : basic_symbol<by_state>
2260 typedef basic_symbol<by_state> super_type;
2262 stack_symbol_type ();
2264 stack_symbol_type (
YY_RVREF (stack_symbol_type) that);
2266 stack_symbol_type (state_type s,
YY_MOVE_REF (symbol_type) sym);
2267#if YY_CPLUSPLUS < 201103L
2270 stack_symbol_type& operator= (stack_symbol_type& that);
2274 stack_symbol_type& operator= (
const stack_symbol_type& that);
2279 template <
typename T,
typename S = std::vector<T> >
2284 typedef typename S::iterator iterator;
2285 typedef typename S::const_iterator const_iterator;
2286 typedef typename S::size_type size_type;
2287 typedef typename std::ptrdiff_t index_type;
2293#if 201103L <= YY_CPLUSPLUS
2295 stack (
const stack&) =
delete;
2297 stack& operator= (
const stack&) =
delete;
2304 operator[] (index_type i)
const
2306 return seq_[size_type (size () - 1 - i)];
2313 operator[] (index_type i)
2315 return seq_[size_type (size () - 1 - i)];
2324 seq_.push_back (T ());
2325 operator[] (0).move (t);
2347 return index_type (seq_.size ());
2354 return seq_.begin ();
2374 operator[] (index_type i)
const
2376 return stack_[range_ - i];
2380 const stack& stack_;
2385#if YY_CPLUSPLUS < 201103L
2387 stack (
const stack&);
2389 stack& operator= (
const stack&);
2397 typedef stack<stack_symbol_type> stack_type;
2400 stack_type yystack_;
2407 void yypush_ (
const char* m,
YY_MOVE_REF (stack_symbol_type) sym);
2415 void yypush_ (
const char* m, state_type s,
YY_MOVE_REF (symbol_type) sym);
2444 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2445 2, 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, 1, 2, 3, 4,
2470 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2471 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2472 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2473 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2474 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2475 55, 56, 57, 58, 59, 60
2478 const int code_max = 315;
2482 else if (t <= code_max)
2489 template <
typename Base>
2495 switch (this->kind ())
2528 template <
typename Base>
2532 return this->kind ();
2536 template <
typename Base>
2543 template <
typename Base>
2547 super_type::move (s);
2548 switch (this->kind ())
2585#if 201103L <= YY_CPLUSPLUS
2588 : kind_ (that.kind_)
2596 : kind_ (that.kind_)
2601 : kind_ (yytranslate_ (t))
2633 return this->kind ();
2637#line 14 "d2_parser.yy"
2639#line 2640 "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