45#ifndef YY_NETCONF_NETCONF_PARSER_H_INCLUDED
46# define YY_NETCONF_NETCONF_PARSER_H_INCLUDED
48#line 17 "netconf_parser.yy"
52#include <boost/lexical_cast.hpp>
59#line 60 "netconf_parser.h"
68#if defined __cplusplus
69# define YY_CPLUSPLUS __cplusplus
71# define YY_CPLUSPLUS 199711L
75#if 201103L <= YY_CPLUSPLUS
76# define YY_MOVE std::move
77# define YY_MOVE_OR_COPY move
78# define YY_MOVE_REF(Type) Type&&
79# define YY_RVREF(Type) Type&&
80# define YY_COPY(Type) Type
83# define YY_MOVE_OR_COPY copy
84# define YY_MOVE_REF(Type) Type&
85# define YY_RVREF(Type) const Type&
86# define YY_COPY(Type) const Type&
90#if 201103L <= YY_CPLUSPLUS
91# define YY_NOEXCEPT noexcept
95# define YY_NOTHROW throw ()
99#if 201703 <= YY_CPLUSPLUS
100# define YY_CONSTEXPR constexpr
104# include "location.hh"
106#ifndef NETCONF__ASSERT
108# define NETCONF__ASSERT assert
112#ifndef YY_ATTRIBUTE_PURE
113# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
114# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
116# define YY_ATTRIBUTE_PURE
120#ifndef YY_ATTRIBUTE_UNUSED
121# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
122# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
124# define YY_ATTRIBUTE_UNUSED
129#if ! defined lint || defined __GNUC__
130# define YY_USE(E) ((void) (E))
136#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
137# if __GNUC__ * 100 + __GNUC_MINOR__ < 407
138# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
139 _Pragma ("GCC diagnostic push") \
140 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
142# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
143 _Pragma ("GCC diagnostic push") \
144 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
145 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
147# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
148 _Pragma ("GCC diagnostic pop")
150# define YY_INITIAL_VALUE(Value) Value
152#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
153# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
154# define YY_IGNORE_MAYBE_UNINITIALIZED_END
156#ifndef YY_INITIAL_VALUE
157# define YY_INITIAL_VALUE(Value)
160#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
161# define YY_IGNORE_USELESS_CAST_BEGIN \
162 _Pragma ("GCC diagnostic push") \
163 _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
164# define YY_IGNORE_USELESS_CAST_END \
165 _Pragma ("GCC diagnostic pop")
167#ifndef YY_IGNORE_USELESS_CAST_BEGIN
168# define YY_IGNORE_USELESS_CAST_BEGIN
169# define YY_IGNORE_USELESS_CAST_END
174# define YY_CAST(Type, Val) static_cast<Type> (Val)
175# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
177# define YY_CAST(Type, Val) ((Type) (Val))
178# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
182# if defined __cplusplus
183# if 201103L <= __cplusplus
184# define YY_NULLPTR nullptr
189# define YY_NULLPTR ((void*)0)
197# define NETCONF_DEBUG 1
199# define NETCONF_DEBUG 0
202# define NETCONF_DEBUG 1
206#line 14 "netconf_parser.yy"
207namespace isc {
namespace netconf {
208#line 209 "netconf_parser.h"
219# pragma GCC message "bison: do not #define NETCONF_STYPE in C++, use %define api.value.type"
237 , yytypeid_ (YY_NULLPTR)
241 template <
typename T>
243 : yytypeid_ (&typeid (T))
246 new (yyas_<T> ()) T (
YY_MOVE (t));
249#if 201103L <= YY_CPLUSPLUS
262# if 201103L <= YY_CPLUSPLUS
264 template <
typename T,
typename... U>
270 yytypeid_ = &
typeid (T);
271 return *
new (yyas_<T> ()) T (std::forward <U>(u)...);
275 template <
typename T>
281 yytypeid_ = &
typeid (T);
282 return *
new (yyas_<T> ()) T ();
286 template <
typename T>
292 yytypeid_ = &
typeid (T);
293 return *
new (yyas_<T> ()) T (t);
299 template <
typename T>
303 return emplace<T> ();
308 template <
typename T>
312 return emplace<T> (t);
316 template <
typename T>
327 template <
typename T>
345 template <
typename T>
351 std::swap (as<T> (), that.as<T> ());
357 template <
typename T>
361# if 201103L <= YY_CPLUSPLUS
362 emplace<T> (std::move (that.
as<T> ()));
370# if 201103L <= YY_CPLUSPLUS
372 template <
typename T>
376 emplace<T> (std::move (that.as<T> ()));
382 template <
typename T>
386 emplace<T> (that.
as<T> ());
390 template <
typename T>
395 yytypeid_ = YY_NULLPTR;
399#if YY_CPLUSPLUS < 201103L
407 template <
typename T>
412 return static_cast<T*
> (yyp);
416 template <
typename T>
421 return static_cast<const T*
> (yyp);
433 char dummy2[
sizeof (bool)];
436 char dummy3[
sizeof (double)];
439 char dummy4[
sizeof (int64_t)];
442 char dummy5[
sizeof (std::string)];
446 enum { size =
sizeof (union_type) };
458 const std::type_info *yytypeid_;
472 : std::runtime_error (m)
477 : std::runtime_error (s.what ())
491 TOKEN_NETCONF_EMPTY = -2,
493 TOKEN_NETCONF_error = 256,
494 TOKEN_NETCONF_UNDEF = 257,
497 TOKEN_LSQUARE_BRACKET = 260,
498 TOKEN_RSQUARE_BRACKET = 261,
499 TOKEN_LCURLY_BRACKET = 262,
500 TOKEN_RCURLY_BRACKET = 263,
501 TOKEN_NULL_TYPE = 264,
503 TOKEN_USER_CONTEXT = 266,
505 TOKEN_BOOT_UPDATE = 268,
506 TOKEN_SUBSCRIBE_CHANGES = 269,
507 TOKEN_VALIDATE_CHANGES = 270,
508 TOKEN_MANAGED_SERVERS = 271,
509 TOKEN_DHCP4_SERVER = 272,
510 TOKEN_DHCP6_SERVER = 273,
511 TOKEN_D2_SERVER = 274,
512 TOKEN_CA_SERVER = 275,
514 TOKEN_CONTROL_SOCKET = 277,
515 TOKEN_SOCKET_TYPE = 278,
519 TOKEN_SOCKET_NAME = 282,
520 TOKEN_SOCKET_URL = 283,
521 TOKEN_HOOKS_LIBRARIES = 284,
523 TOKEN_PARAMETERS = 286,
526 TOKEN_OUTPUT_OPTIONS = 289,
528 TOKEN_DEBUGLEVEL = 291,
529 TOKEN_SEVERITY = 292,
534 TOKEN_START_JSON = 297,
535 TOKEN_START_NETCONF = 298,
536 TOKEN_START_SUB_NETCONF = 299,
564 S_LSQUARE_BRACKET = 5,
565 S_RSQUARE_BRACKET = 6,
566 S_LCURLY_BRACKET = 7,
567 S_RCURLY_BRACKET = 8,
573 S_SUBSCRIBE_CHANGES = 14,
574 S_VALIDATE_CHANGES = 15,
575 S_MANAGED_SERVERS = 16,
581 S_CONTROL_SOCKET = 22,
588 S_HOOKS_LIBRARIES = 29,
593 S_OUTPUT_OPTIONS = 34,
602 S_START_NETCONF = 43,
603 S_START_SUB_NETCONF = 44,
621 S_not_empty_map = 62,
625 S_not_empty_list = 66,
626 S_unknown_map_entry = 67,
627 S_netconf_syntax_map = 68,
629 S_global_object = 70,
631 S_global_object_comma = 72,
632 S_global_params = 73,
633 S_not_empty_global_params = 74,
636 S_subscribe_changes = 77,
637 S_validate_changes = 78,
642 S_hooks_libraries = 83,
644 S_hooks_libraries_list = 85,
645 S_not_empty_hooks_libraries_list = 86,
646 S_hooks_library = 87,
654 S_managed_servers = 95,
656 S_servers_entries = 97,
657 S_not_empty_servers_entries = 98,
659 S_dhcp4_server = 100,
661 S_dhcp6_server = 102,
667 S_managed_server_params = 108,
668 S_managed_server_param = 109,
671 S_control_socket = 112,
673 S_control_socket_params = 114,
674 S_control_socket_param = 115,
677 S_socket_type_value = 118,
684 S_loggers_entries = 125,
685 S_logger_entry = 126,
687 S_logger_params = 128,
688 S_logger_param = 129,
694 S_output_options_list = 135,
696 S_output_options_list_content = 137,
697 S_output_entry = 138,
699 S_output_params_list = 140,
700 S_output_params = 141,
723 template <
typename Base>
735#if 201103L <= YY_CPLUSPLUS
738 : Base (std::move (that))
740 , location (std::move (that.location))
742 switch (this->kind ())
744 case symbol_kind::S_value:
745 case symbol_kind::S_map_value:
746 case symbol_kind::S_socket_type_value:
747 value.move<
ElementPtr > (std::move (that.value));
750 case symbol_kind::S_BOOLEAN:
751 value.move<
bool > (std::move (that.value));
754 case symbol_kind::S_FLOAT:
755 value.move<
double > (std::move (that.value));
758 case symbol_kind::S_INTEGER:
759 value.move< int64_t > (std::move (that.value));
762 case symbol_kind::S_STRING:
763 value.move< std::string > (std::move (that.value));
774 basic_symbol (
const basic_symbol& that);
777#if 201103L <= YY_CPLUSPLUS
778 basic_symbol (
typename Base::kind_type t, location_type&& l)
780 , location (std::move (l))
789#if 201103L <= YY_CPLUSPLUS
792 , value (std::move (v))
793 , location (std::move (l))
803#if 201103L <= YY_CPLUSPLUS
806 , value (std::move (v))
807 , location (std::move (l))
817#if 201103L <= YY_CPLUSPLUS
820 , value (std::move (v))
821 , location (std::move (l))
831#if 201103L <= YY_CPLUSPLUS
834 , value (std::move (v))
835 , location (std::move (l))
845#if 201103L <= YY_CPLUSPLUS
848 , value (std::move (v))
849 , location (std::move (l))
883 case symbol_kind::S_value:
884 case symbol_kind::S_map_value:
885 case symbol_kind::S_socket_type_value:
886 value.template destroy< ElementPtr > ();
889 case symbol_kind::S_BOOLEAN:
890 value.template destroy< bool > ();
893 case symbol_kind::S_FLOAT:
894 value.template destroy< double > ();
897 case symbol_kind::S_INTEGER:
898 value.template destroy< int64_t > ();
901 case symbol_kind::S_STRING:
902 value.template destroy< std::string > ();
934#if YY_CPLUSPLUS < 201103L
949#if 201103L <= YY_CPLUSPLUS
993#if 201103L <= YY_CPLUSPLUS
1001#if !defined _MSC_VER || defined __clang__
1003 || (token::TOKEN_NETCONF_error <= tok && tok <= token::TOKEN_START_SUB_NETCONF));
1006#if 201103L <= YY_CPLUSPLUS
1014#if !defined _MSC_VER || defined __clang__
1018#if 201103L <= YY_CPLUSPLUS
1026#if !defined _MSC_VER || defined __clang__
1030#if 201103L <= YY_CPLUSPLUS
1038#if !defined _MSC_VER || defined __clang__
1042#if 201103L <= YY_CPLUSPLUS
1050#if !defined _MSC_VER || defined __clang__
1060#if 201103L <= YY_CPLUSPLUS
1073 virtual int parse ();
1079 void set_debug_stream (std::ostream &);
1082 typedef
int debug_level_type;
1086 void set_debug_level (debug_level_type l);
1092 virtual void error (
const location_type& loc,
const std::string& msg);
1095 void error (
const syntax_error& err);
1099 static std::string symbol_name (symbol_kind_type yysymbol);
1102#if 201103L <= YY_CPLUSPLUS
1105 make_END (location_type l)
1107 return symbol_type (token::TOKEN_END, std::move (l));
1117#if 201103L <= YY_CPLUSPLUS
1120 make_NETCONF_error (location_type l)
1122 return symbol_type (token::TOKEN_NETCONF_error, std::move (l));
1129 return symbol_type (token::TOKEN_NETCONF_error, l);
1132#if 201103L <= YY_CPLUSPLUS
1135 make_NETCONF_UNDEF (location_type l)
1137 return symbol_type (token::TOKEN_NETCONF_UNDEF, std::move (l));
1144 return symbol_type (token::TOKEN_NETCONF_UNDEF, l);
1147#if 201103L <= YY_CPLUSPLUS
1150 make_COMMA (location_type l)
1152 return symbol_type (token::TOKEN_COMMA, std::move (l));
1162#if 201103L <= YY_CPLUSPLUS
1165 make_COLON (location_type l)
1167 return symbol_type (token::TOKEN_COLON, std::move (l));
1177#if 201103L <= YY_CPLUSPLUS
1180 make_LSQUARE_BRACKET (location_type l)
1182 return symbol_type (token::TOKEN_LSQUARE_BRACKET, std::move (l));
1189 return symbol_type (token::TOKEN_LSQUARE_BRACKET, l);
1192#if 201103L <= YY_CPLUSPLUS
1195 make_RSQUARE_BRACKET (location_type l)
1197 return symbol_type (token::TOKEN_RSQUARE_BRACKET, std::move (l));
1204 return symbol_type (token::TOKEN_RSQUARE_BRACKET, l);
1207#if 201103L <= YY_CPLUSPLUS
1210 make_LCURLY_BRACKET (location_type l)
1212 return symbol_type (token::TOKEN_LCURLY_BRACKET, std::move (l));
1219 return symbol_type (token::TOKEN_LCURLY_BRACKET, l);
1222#if 201103L <= YY_CPLUSPLUS
1225 make_RCURLY_BRACKET (location_type l)
1227 return symbol_type (token::TOKEN_RCURLY_BRACKET, std::move (l));
1234 return symbol_type (token::TOKEN_RCURLY_BRACKET, l);
1237#if 201103L <= YY_CPLUSPLUS
1240 make_NULL_TYPE (location_type l)
1242 return symbol_type (token::TOKEN_NULL_TYPE, std::move (l));
1252#if 201103L <= YY_CPLUSPLUS
1255 make_NETCONF (location_type l)
1257 return symbol_type (token::TOKEN_NETCONF, std::move (l));
1267#if 201103L <= YY_CPLUSPLUS
1270 make_USER_CONTEXT (location_type l)
1272 return symbol_type (token::TOKEN_USER_CONTEXT, std::move (l));
1279 return symbol_type (token::TOKEN_USER_CONTEXT, l);
1282#if 201103L <= YY_CPLUSPLUS
1285 make_COMMENT (location_type l)
1287 return symbol_type (token::TOKEN_COMMENT, std::move (l));
1297#if 201103L <= YY_CPLUSPLUS
1300 make_BOOT_UPDATE (location_type l)
1302 return symbol_type (token::TOKEN_BOOT_UPDATE, std::move (l));
1312#if 201103L <= YY_CPLUSPLUS
1315 make_SUBSCRIBE_CHANGES (location_type l)
1317 return symbol_type (token::TOKEN_SUBSCRIBE_CHANGES, std::move (l));
1324 return symbol_type (token::TOKEN_SUBSCRIBE_CHANGES, l);
1327#if 201103L <= YY_CPLUSPLUS
1330 make_VALIDATE_CHANGES (location_type l)
1332 return symbol_type (token::TOKEN_VALIDATE_CHANGES, std::move (l));
1339 return symbol_type (token::TOKEN_VALIDATE_CHANGES, l);
1342#if 201103L <= YY_CPLUSPLUS
1345 make_MANAGED_SERVERS (location_type l)
1347 return symbol_type (token::TOKEN_MANAGED_SERVERS, std::move (l));
1354 return symbol_type (token::TOKEN_MANAGED_SERVERS, l);
1357#if 201103L <= YY_CPLUSPLUS
1360 make_DHCP4_SERVER (location_type l)
1362 return symbol_type (token::TOKEN_DHCP4_SERVER, std::move (l));
1369 return symbol_type (token::TOKEN_DHCP4_SERVER, l);
1372#if 201103L <= YY_CPLUSPLUS
1375 make_DHCP6_SERVER (location_type l)
1377 return symbol_type (token::TOKEN_DHCP6_SERVER, std::move (l));
1384 return symbol_type (token::TOKEN_DHCP6_SERVER, l);
1387#if 201103L <= YY_CPLUSPLUS
1390 make_D2_SERVER (location_type l)
1392 return symbol_type (token::TOKEN_D2_SERVER, std::move (l));
1402#if 201103L <= YY_CPLUSPLUS
1405 make_CA_SERVER (location_type l)
1407 return symbol_type (token::TOKEN_CA_SERVER, std::move (l));
1417#if 201103L <= YY_CPLUSPLUS
1420 make_MODEL (location_type l)
1422 return symbol_type (token::TOKEN_MODEL, std::move (l));
1432#if 201103L <= YY_CPLUSPLUS
1435 make_CONTROL_SOCKET (location_type l)
1437 return symbol_type (token::TOKEN_CONTROL_SOCKET, std::move (l));
1444 return symbol_type (token::TOKEN_CONTROL_SOCKET, l);
1447#if 201103L <= YY_CPLUSPLUS
1450 make_SOCKET_TYPE (location_type l)
1452 return symbol_type (token::TOKEN_SOCKET_TYPE, std::move (l));
1462#if 201103L <= YY_CPLUSPLUS
1465 make_UNIX (location_type l)
1467 return symbol_type (token::TOKEN_UNIX, std::move (l));
1477#if 201103L <= YY_CPLUSPLUS
1480 make_HTTP (location_type l)
1482 return symbol_type (token::TOKEN_HTTP, std::move (l));
1492#if 201103L <= YY_CPLUSPLUS
1495 make_STDOUT (location_type l)
1497 return symbol_type (token::TOKEN_STDOUT, std::move (l));
1507#if 201103L <= YY_CPLUSPLUS
1510 make_SOCKET_NAME (location_type l)
1512 return symbol_type (token::TOKEN_SOCKET_NAME, std::move (l));
1522#if 201103L <= YY_CPLUSPLUS
1525 make_SOCKET_URL (location_type l)
1527 return symbol_type (token::TOKEN_SOCKET_URL, std::move (l));
1537#if 201103L <= YY_CPLUSPLUS
1540 make_HOOKS_LIBRARIES (location_type l)
1542 return symbol_type (token::TOKEN_HOOKS_LIBRARIES, std::move (l));
1549 return symbol_type (token::TOKEN_HOOKS_LIBRARIES, l);
1552#if 201103L <= YY_CPLUSPLUS
1555 make_LIBRARY (location_type l)
1557 return symbol_type (token::TOKEN_LIBRARY, std::move (l));
1567#if 201103L <= YY_CPLUSPLUS
1570 make_PARAMETERS (location_type l)
1572 return symbol_type (token::TOKEN_PARAMETERS, std::move (l));
1582#if 201103L <= YY_CPLUSPLUS
1585 make_LOGGERS (location_type l)
1587 return symbol_type (token::TOKEN_LOGGERS, std::move (l));
1597#if 201103L <= YY_CPLUSPLUS
1600 make_NAME (location_type l)
1602 return symbol_type (token::TOKEN_NAME, std::move (l));
1612#if 201103L <= YY_CPLUSPLUS
1615 make_OUTPUT_OPTIONS (location_type l)
1617 return symbol_type (token::TOKEN_OUTPUT_OPTIONS, std::move (l));
1624 return symbol_type (token::TOKEN_OUTPUT_OPTIONS, l);
1627#if 201103L <= YY_CPLUSPLUS
1630 make_OUTPUT (location_type l)
1632 return symbol_type (token::TOKEN_OUTPUT, std::move (l));
1642#if 201103L <= YY_CPLUSPLUS
1645 make_DEBUGLEVEL (location_type l)
1647 return symbol_type (token::TOKEN_DEBUGLEVEL, std::move (l));
1657#if 201103L <= YY_CPLUSPLUS
1660 make_SEVERITY (location_type l)
1662 return symbol_type (token::TOKEN_SEVERITY, std::move (l));
1672#if 201103L <= YY_CPLUSPLUS
1675 make_FLUSH (location_type l)
1677 return symbol_type (token::TOKEN_FLUSH, std::move (l));
1687#if 201103L <= YY_CPLUSPLUS
1690 make_MAXSIZE (location_type l)
1692 return symbol_type (token::TOKEN_MAXSIZE, std::move (l));
1702#if 201103L <= YY_CPLUSPLUS
1705 make_MAXVER (location_type l)
1707 return symbol_type (token::TOKEN_MAXVER, std::move (l));
1717#if 201103L <= YY_CPLUSPLUS
1720 make_PATTERN (location_type l)
1722 return symbol_type (token::TOKEN_PATTERN, std::move (l));
1732#if 201103L <= YY_CPLUSPLUS
1735 make_START_JSON (location_type l)
1737 return symbol_type (token::TOKEN_START_JSON, std::move (l));
1747#if 201103L <= YY_CPLUSPLUS
1750 make_START_NETCONF (location_type l)
1752 return symbol_type (token::TOKEN_START_NETCONF, std::move (l));
1759 return symbol_type (token::TOKEN_START_NETCONF, l);
1762#if 201103L <= YY_CPLUSPLUS
1765 make_START_SUB_NETCONF (location_type l)
1767 return symbol_type (token::TOKEN_START_SUB_NETCONF, std::move (l));
1774 return symbol_type (token::TOKEN_START_SUB_NETCONF, l);
1777#if 201103L <= YY_CPLUSPLUS
1780 make_STRING (std::string v, location_type l)
1782 return symbol_type (token::TOKEN_STRING, std::move (v), std::move (l));
1792#if 201103L <= YY_CPLUSPLUS
1795 make_INTEGER (int64_t v, location_type l)
1797 return symbol_type (token::TOKEN_INTEGER, std::move (v), std::move (l));
1807#if 201103L <= YY_CPLUSPLUS
1810 make_FLOAT (
double v, location_type l)
1812 return symbol_type (token::TOKEN_FLOAT, std::move (v), std::move (l));
1822#if 201103L <= YY_CPLUSPLUS
1825 make_BOOLEAN (
bool v, location_type l)
1827 return symbol_type (token::TOKEN_BOOLEAN, std::move (v), std::move (l));
1858#if YY_CPLUSPLUS < 201103L
1867 typedef short state_type;
1870 int yy_syntax_error_arguments_ (
const context& yyctx,
1871 symbol_kind_type yyarg[],
int yyargn)
const;
1875 virtual std::string yysyntax_error_ (
const context& yyctx)
const;
1879 static state_type yy_lr_goto_state_ (state_type yystate,
int yysym);
1883 static bool yy_pact_value_is_default_ (
int yyvalue)
YY_NOEXCEPT;
1887 static bool yy_table_value_is_error_ (
int yyvalue)
YY_NOEXCEPT;
1889 static const signed char yypact_ninf_;
1890 static const signed char yytable_ninf_;
1895 static symbol_kind_type yytranslate_ (
int t)
YY_NOEXCEPT;
1898 static std::string yytnamerr_ (
const char *yystr);
1901 static const char*
const yytname_[];
1907 static const short yypact_[];
1912 static const unsigned char yydefact_[];
1915 static const signed char yypgoto_[];
1918 static const short yydefgoto_[];
1923 static const short yytable_[];
1925 static const short yycheck_[];
1929 static const unsigned char yystos_[];
1932 static const unsigned char yyr1_[];
1935 static const signed char yyr2_[];
1940 static const short yyrline_[];
1942 virtual void yy_reduce_print_ (
int r)
const;
1944 virtual void yy_stack_print_ ()
const;
1949 std::ostream* yycdebug_;
1954 template <
typename Base>
1955 void yy_print_ (std::ostream& yyo,
const basic_symbol<Base>& yysym)
const;
1962 template <
typename Base>
1963 void yy_destroy_ (
const char* yymsg, basic_symbol<Base>& yysym)
const;
1973 typedef state_type kind_type;
1985 void move (by_state& that);
1993 enum { empty_state = 0 };
2001 struct stack_symbol_type : basic_symbol<by_state>
2004 typedef basic_symbol<by_state> super_type;
2006 stack_symbol_type ();
2008 stack_symbol_type (
YY_RVREF (stack_symbol_type) that);
2010 stack_symbol_type (state_type s,
YY_MOVE_REF (symbol_type) sym);
2011#if YY_CPLUSPLUS < 201103L
2014 stack_symbol_type& operator= (stack_symbol_type& that);
2018 stack_symbol_type& operator= (
const stack_symbol_type& that);
2023 template <
typename T,
typename S = std::vector<T> >
2028 typedef typename S::iterator iterator;
2029 typedef typename S::const_iterator const_iterator;
2030 typedef typename S::size_type size_type;
2031 typedef typename std::ptrdiff_t index_type;
2037#if 201103L <= YY_CPLUSPLUS
2039 stack (
const stack&) =
delete;
2041 stack& operator= (
const stack&) =
delete;
2048 operator[] (index_type i)
const
2050 return seq_[size_type (size () - 1 - i)];
2057 operator[] (index_type i)
2059 return seq_[size_type (size () - 1 - i)];
2068 seq_.push_back (T ());
2069 operator[] (0).move (t);
2091 return index_type (seq_.size ());
2098 return seq_.begin ();
2118 operator[] (index_type i)
const
2120 return stack_[range_ - i];
2124 const stack& stack_;
2129#if YY_CPLUSPLUS < 201103L
2131 stack (
const stack&);
2133 stack& operator= (
const stack&);
2141 typedef stack<stack_symbol_type> stack_type;
2144 stack_type yystack_;
2151 void yypush_ (
const char* m,
YY_MOVE_REF (stack_symbol_type) sym);
2159 void yypush_ (
const char* m, state_type s,
YY_MOVE_REF (symbol_type) sym);
2188 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2189 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2190 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2191 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2192 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2193 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2194 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2195 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2196 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2197 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2198 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2199 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2200 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2201 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2202 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2203 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2204 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2205 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2206 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2207 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2208 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2209 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2210 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2211 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2212 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2213 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
2214 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2215 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2216 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2217 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2221 const int code_max = 303;
2225 else if (t <= code_max)
2232 template <
typename Base>
2238 switch (this->kind ())
2271 template <
typename Base>
2275 return this->kind ();
2279 template <
typename Base>
2286 template <
typename Base>
2290 super_type::move (s);
2291 switch (this->kind ())
2328#if 201103L <= YY_CPLUSPLUS
2331 : kind_ (that.kind_)
2339 : kind_ (that.kind_)
2344 : kind_ (yytranslate_ (t))
2376 return this->kind ();
2380#line 14 "netconf_parser.yy"
2382#line 2383 "netconf_parser.h"
#define YY_MOVE_REF(Type)
#define YY_ATTRIBUTE_PURE
const location_type & location() const YY_NOEXCEPT
symbol_kind_type token() const YY_NOEXCEPT
const symbol_type & lookahead() 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.
long double yyalign_me_
Strongest alignment constraints.
void move(self_type &that)
Move the content of that to this.
T & build(const T &t)
Instantiate a T in here from t.
value_type(YY_RVREF(T) t)
Construct and fill.
void swap(self_type &that) YY_NOEXCEPT
Swap the content with that, of same type.
char yyraw_[size]
A buffer large enough to store any of the semantic values.
value_type self_type
Type of *this.
T & as() YY_NOEXCEPT
Accessor to a built T.
void copy(const self_type &that)
Copy the content of that to this.
T & build()
Instantiate an empty T in here.
void destroy()
Destroy the stored T.
T & emplace(const T &t)
Instantiate a T in here from t.
const T & as() const YY_NOEXCEPT
Const accessor to a built T (for printer).
T & emplace()
Instantiate an empty T in here.
~value_type() YY_NOEXCEPT
Destruction, allowed only if empty.
value_type() YY_NOEXCEPT
Empty construction.
static symbol_type make_NETCONF(const location_type &l)
static symbol_type make_SOCKET_URL(const location_type &l)
static symbol_type make_MAXVER(const location_type &l)
static symbol_type make_OUTPUT_OPTIONS(const location_type &l)
static symbol_type make_MAXSIZE(const location_type &l)
static symbol_type make_INTEGER(const int64_t &v, const location_type &l)
static symbol_type make_HOOKS_LIBRARIES(const location_type &l)
static symbol_type make_CONTROL_SOCKET(const location_type &l)
static symbol_type make_OUTPUT(const location_type &l)
static symbol_type make_DHCP6_SERVER(const location_type &l)
static symbol_type make_BOOT_UPDATE(const location_type &l)
static symbol_type make_NETCONF_UNDEF(const location_type &l)
static symbol_type make_NULL_TYPE(const location_type &l)
static symbol_type make_DEBUGLEVEL(const location_type &l)
static symbol_type make_HTTP(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_VALIDATE_CHANGES(const location_type &l)
static symbol_type make_END(const location_type &l)
static symbol_type make_LIBRARY(const location_type &l)
static symbol_type make_LOGGERS(const location_type &l)
static symbol_type make_NETCONF_error(const location_type &l)
static symbol_type make_LCURLY_BRACKET(const location_type &l)
token::token_kind_type token_kind_type
Token kind, as returned by yylex.
token_kind_type token_type
Backward compatibility alias (Bison 3.6).
static symbol_type make_STDOUT(const location_type &l)
value_type semantic_type
Backward compatibility (Bison 3.8).
static symbol_type make_SOCKET_TYPE(const location_type &l)
symbol_kind::symbol_kind_type symbol_kind_type
(Internal) symbol kind.
static symbol_type make_LSQUARE_BRACKET(const location_type &l)
static symbol_type make_DHCP4_SERVER(const location_type &l)
static symbol_type make_D2_SERVER(const location_type &l)
static symbol_type make_PARAMETERS(const location_type &l)
static symbol_type make_NAME(const location_type &l)
static symbol_type make_FLUSH(const location_type &l)
static symbol_type make_START_JSON(const location_type &l)
static symbol_type make_UNIX(const location_type &l)
static symbol_type make_PATTERN(const location_type &l)
static symbol_type make_STRING(const std::string &v, const location_type &l)
static const symbol_kind_type YYNTOKENS
The number of tokens.
static symbol_type make_COMMENT(const location_type &l)
static symbol_type make_SEVERITY(const location_type &l)
static symbol_type make_MANAGED_SERVERS(const location_type &l)
location location_type
Symbol locations.
static symbol_type make_SUBSCRIBE_CHANGES(const location_type &l)
static symbol_type make_CA_SERVER(const location_type &l)
static symbol_type make_COLON(const location_type &l)
static symbol_type make_RCURLY_BRACKET(const location_type &l)
static symbol_type make_USER_CONTEXT(const location_type &l)
static symbol_type make_COMMA(const location_type &l)
static symbol_type make_RSQUARE_BRACKET(const location_type &l)
static symbol_type make_START_NETCONF(const location_type &l)
static symbol_type make_MODEL(const location_type &l)
static symbol_type make_START_SUB_NETCONF(const location_type &l)
static symbol_type make_BOOLEAN(const bool &v, const location_type &l)
static symbol_type make_FLOAT(const double &v, const location_type &l)
static symbol_type make_SOCKET_NAME(const location_type &l)
Parser context is a wrapper around flex/bison instances dedicated to Netconf-agent config file parser...
boost::shared_ptr< Element > ElementPtr
Defines the logger used by the top-level component of kea-lfc.
Forward declaration of the ParserContext class.
bool empty() const YY_NOEXCEPT
Whether empty.
basic_symbol(typename Base::kind_type t, const bool &v, const location_type &l)
basic_symbol() YY_NOEXCEPT
Default constructor.
basic_symbol(typename Base::kind_type t, const double &v, const location_type &l)
void move(basic_symbol &s)
Destructive move, s is emptied into this.
Base super_type
Alias to Base.
basic_symbol(typename Base::kind_type t, const ElementPtr &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 std::string &v, const location_type &l)
symbol_kind_type type_get() const YY_NOEXCEPT
Backward compatibility (Bison 3.6).
basic_symbol(typename Base::kind_type t, const int64_t &v, const location_type &l)
value_type value
The semantic value.
std::string name() const YY_NOEXCEPT
The user-facing name of this symbol.
location_type location
The location.
~basic_symbol()
Destroy the symbol.
void clear() YY_NOEXCEPT
Destroy contents, and record that is empty.
Type access provider for token (enum) based symbols.
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).
by_kind() YY_NOEXCEPT
Default constructor.
symbol_kind_type kind() const YY_NOEXCEPT
The (internal) type number (corresponding to type).
symbol_kind_type kind_
The symbol kind.
void move(by_kind &that)
Steal the symbol kind from that.
void clear() YY_NOEXCEPT
Record that this symbol is empty.
@ YYNTOKENS
Number of tokens.
"External" symbols: returned by the scanner.
symbol_type() YY_NOEXCEPT
Empty symbol.
basic_symbol< by_kind > super_type
Superclass.
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).