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
102 # define YY_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))
135 #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
137 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
138 _Pragma ("GCC diagnostic push") \
139 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
140 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
141 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
142 _Pragma ("GCC diagnostic pop")
144 # define YY_INITIAL_VALUE(Value) Value
146 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
147 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
148 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
150 #ifndef YY_INITIAL_VALUE
151 # define YY_INITIAL_VALUE(Value)
154 #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
155 # define YY_IGNORE_USELESS_CAST_BEGIN \
156 _Pragma ("GCC diagnostic push") \
157 _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
158 # define YY_IGNORE_USELESS_CAST_END \
159 _Pragma ("GCC diagnostic pop")
161 #ifndef YY_IGNORE_USELESS_CAST_BEGIN
162 # define YY_IGNORE_USELESS_CAST_BEGIN
163 # define YY_IGNORE_USELESS_CAST_END
168 # define YY_CAST(Type, Val) static_cast<Type> (Val)
169 # define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
171 # define YY_CAST(Type, Val) ((Type) (Val))
172 # define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
176 # if defined __cplusplus
177 # if 201103L <= __cplusplus
178 # define YY_NULLPTR nullptr
180 # define YY_NULLPTR 0
183 # define YY_NULLPTR ((void*)0)
188 #ifndef NETCONF_DEBUG
191 # define NETCONF_DEBUG 1
193 # define NETCONF_DEBUG 0
196 # define NETCONF_DEBUG 1
200 #line 14 "netconf_parser.yy"
201 namespace isc {
namespace netconf {
202 #line 203 "netconf_parser.h"
211 #ifndef NETCONF_STYPE
226 , yytypeid_ (YY_NULLPTR)
230 template <
typename T>
232 : yytypeid_ (&typeid (T))
235 new (yyas_<T> ()) T (
YY_MOVE (t));
238 #if 201103L <= YY_CPLUSPLUS
242 self_type& operator= (
const self_type&) =
delete;
251 # if 201103L <= YY_CPLUSPLUS
252 template <
typename T,
typename... U>
259 yytypeid_ = &
typeid (T);
260 return *
new (yyas_<T> ()) T (std::forward <U>(u)...);
263 template <
typename T>
270 yytypeid_ = &
typeid (T);
271 return *
new (yyas_<T> ()) T ();
275 template <
typename T>
281 yytypeid_ = &
typeid (T);
282 return *
new (yyas_<T> ()) T (t);
288 template <
typename T>
292 return emplace<T> ();
297 template <
typename T>
301 return emplace<T> (t);
305 template <
typename T>
316 template <
typename T>
334 template <
typename T>
340 std::swap (as<T> (), that.as<T> ());
346 template <
typename T>
350 # if 201103L <= YY_CPLUSPLUS
351 emplace<T> (std::move (that.
as<T> ()));
359 # if 201103L <= YY_CPLUSPLUS
360 template <
typename T>
363 move (self_type&& that)
365 emplace<T> (std::move (that.as<T> ()));
371 template <
typename T>
375 emplace<T> (that.
as<T> ());
379 template <
typename T>
384 yytypeid_ = YY_NULLPTR;
388 #if YY_CPLUSPLUS < 201103L
392 self_type& operator= (
const self_type&);
396 template <
typename T>
400 void *yyp = yybuffer_.yyraw;
401 return static_cast<T*
> (yyp);
405 template <
typename T>
409 const void *yyp = yybuffer_.yyraw;
410 return static_cast<const T*
> (yyp);
422 char dummy2[
sizeof (bool)];
425 char dummy3[
sizeof (double)];
428 char dummy4[
sizeof (int64_t)];
431 char dummy5[
sizeof (std::string)];
435 enum { size =
sizeof (union_type) };
447 const std::type_info *yytypeid_;
451 typedef NETCONF_STYPE semantic_type;
453 typedef location location_type;
460 :
std::runtime_error (m)
465 :
std::runtime_error (s.what ())
466 , location (s.location)
471 location_type location;
479 TOKEN_NETCONF_EMPTY = -2,
481 TOKEN_NETCONF_error = 256,
482 TOKEN_NETCONF_UNDEF = 257,
485 TOKEN_LSQUARE_BRACKET = 260,
486 TOKEN_RSQUARE_BRACKET = 261,
487 TOKEN_LCURLY_BRACKET = 262,
488 TOKEN_RCURLY_BRACKET = 263,
489 TOKEN_NULL_TYPE = 264,
491 TOKEN_USER_CONTEXT = 266,
493 TOKEN_BOOT_UPDATE = 268,
494 TOKEN_SUBSCRIBE_CHANGES = 269,
495 TOKEN_VALIDATE_CHANGES = 270,
496 TOKEN_MANAGED_SERVERS = 271,
497 TOKEN_DHCP4_SERVER = 272,
498 TOKEN_DHCP6_SERVER = 273,
499 TOKEN_D2_SERVER = 274,
500 TOKEN_CA_SERVER = 275,
502 TOKEN_CONTROL_SOCKET = 277,
503 TOKEN_SOCKET_TYPE = 278,
507 TOKEN_SOCKET_NAME = 282,
508 TOKEN_SOCKET_URL = 283,
509 TOKEN_HOOKS_LIBRARIES = 284,
511 TOKEN_PARAMETERS = 286,
514 TOKEN_OUTPUT_OPTIONS = 289,
516 TOKEN_DEBUGLEVEL = 291,
517 TOKEN_SEVERITY = 292,
522 TOKEN_START_JSON = 297,
523 TOKEN_START_NETCONF = 298,
524 TOKEN_START_SUB_NETCONF = 299,
552 S_LSQUARE_BRACKET = 5,
553 S_RSQUARE_BRACKET = 6,
554 S_LCURLY_BRACKET = 7,
555 S_RCURLY_BRACKET = 8,
561 S_SUBSCRIBE_CHANGES = 14,
562 S_VALIDATE_CHANGES = 15,
563 S_MANAGED_SERVERS = 16,
569 S_CONTROL_SOCKET = 22,
576 S_HOOKS_LIBRARIES = 29,
581 S_OUTPUT_OPTIONS = 34,
590 S_START_NETCONF = 43,
591 S_START_SUB_NETCONF = 44,
609 S_not_empty_map = 62,
613 S_not_empty_list = 66,
614 S_unknown_map_entry = 67,
615 S_netconf_syntax_map = 68,
617 S_global_object = 70,
619 S_global_params = 72,
620 S_not_empty_global_params = 73,
623 S_subscribe_changes = 76,
624 S_validate_changes = 77,
629 S_hooks_libraries = 82,
631 S_hooks_libraries_list = 84,
632 S_not_empty_hooks_libraries_list = 85,
633 S_hooks_library = 86,
641 S_managed_servers = 94,
643 S_servers_entries = 96,
644 S_not_empty_servers_entries = 97,
648 S_dhcp6_server = 101,
654 S_managed_server_params = 107,
655 S_managed_server_param = 108,
658 S_control_socket = 111,
660 S_control_socket_params = 113,
661 S_control_socket_param = 114,
664 S_socket_type_value = 117,
671 S_loggers_entries = 124,
672 S_logger_entry = 125,
674 S_logger_params = 127,
675 S_logger_param = 128,
681 S_output_options_list = 134,
683 S_output_options_list_content = 136,
684 S_output_entry = 137,
686 S_output_params_list = 139,
687 S_output_params = 140,
702 static const symbol_kind_type YYNTOKENS = symbol_kind::YYNTOKENS;
710 template <
typename Base>
722 #if 201103L <= YY_CPLUSPLUS
725 : Base (
std::move (that))
727 , location (
std::move (that.location))
729 switch (this->kind ())
731 case symbol_kind::S_value:
732 case symbol_kind::S_map_value:
733 case symbol_kind::S_socket_type_value:
734 value.move<
ElementPtr > (std::move (that.value));
737 case symbol_kind::S_BOOLEAN:
738 value.move<
bool > (std::move (that.value));
741 case symbol_kind::S_FLOAT:
742 value.move<
double > (std::move (that.value));
745 case symbol_kind::S_INTEGER:
746 value.move< int64_t > (std::move (that.value));
749 case symbol_kind::S_STRING:
750 value.move< std::string > (std::move (that.value));
761 basic_symbol (
const basic_symbol& that);
764 #if 201103L <= YY_CPLUSPLUS
765 basic_symbol (
typename Base::kind_type t, location_type&& l)
767 , location (
std::move (l))
776 #if 201103L <= YY_CPLUSPLUS
779 , value (
std::move (v))
780 , location (
std::move (l))
790 #if 201103L <= YY_CPLUSPLUS
791 basic_symbol (
typename Base::kind_type t,
bool&& v, location_type&& l)
793 , value (
std::move (v))
794 , location (
std::move (l))
797 basic_symbol (
typename Base::kind_type t,
const bool& v,
const location_type& l)
804 #if 201103L <= YY_CPLUSPLUS
805 basic_symbol (
typename Base::kind_type t,
double&& v, location_type&& l)
807 , value (
std::move (v))
808 , location (
std::move (l))
811 basic_symbol (
typename Base::kind_type t,
const double& v,
const location_type& l)
818 #if 201103L <= YY_CPLUSPLUS
819 basic_symbol (
typename Base::kind_type t, int64_t&& v, location_type&& l)
821 , value (
std::move (v))
822 , location (
std::move (l))
825 basic_symbol (
typename Base::kind_type t,
const int64_t& v,
const location_type& l)
832 #if 201103L <= YY_CPLUSPLUS
833 basic_symbol (
typename Base::kind_type t, std::string&& v, location_type&& l)
835 , value (
std::move (v))
836 , location (
std::move (l))
839 basic_symbol (
typename Base::kind_type t,
const std::string& v,
const location_type& l)
856 symbol_kind_type yykind = this->kind ();
868 case symbol_kind::S_value:
869 case symbol_kind::S_map_value:
870 case symbol_kind::S_socket_type_value:
871 value.template destroy< ElementPtr > ();
874 case symbol_kind::S_BOOLEAN:
875 value.template destroy< bool > ();
878 case symbol_kind::S_FLOAT:
879 value.template destroy< double > ();
882 case symbol_kind::S_INTEGER:
883 value.template destroy< int64_t > ();
886 case symbol_kind::S_STRING:
887 value.template destroy< std::string > ();
916 location_type location;
919 #if YY_CPLUSPLUS < 201103L
931 #if 201103L <= YY_CPLUSPLUS
956 symbol_kind_type type_get () const YY_NOEXCEPT;
960 symbol_kind_type kind_;
976 #if 201103L <= YY_CPLUSPLUS
978 : super_type(token_type (tok),
std::move (l))
981 : super_type(token_type (tok), l)
985 || (token::TOKEN_NETCONF_error <= tok && tok <= token::TOKEN_START_SUB_NETCONF));
987 #if 201103L <= YY_CPLUSPLUS
989 : super_type(token_type (tok),
std::move (v),
std::move (l))
992 : super_type(token_type (tok), v, l)
997 #if 201103L <= YY_CPLUSPLUS
999 : super_type(token_type (tok),
std::move (v),
std::move (l))
1002 : super_type(token_type (tok), v, l)
1007 #if 201103L <= YY_CPLUSPLUS
1009 : super_type(token_type (tok),
std::move (v),
std::move (l))
1012 : super_type(token_type (tok), v, l)
1017 #if 201103L <= YY_CPLUSPLUS
1018 symbol_type (
int tok, std::string v, location_type l)
1019 : super_type(token_type (tok),
std::move (v),
std::move (l))
1022 : super_type(token_type (tok), v, l)
1033 #if 201103L <= YY_CPLUSPLUS
1046 virtual int parse ();
1052 void set_debug_stream (
std::ostream &);
1059 void set_debug_level (debug_level_type l);
1065 virtual void error (
const location_type& loc,
const std::string& msg);
1072 static std::string symbol_name (symbol_kind_type yysymbol);
1075 #if 201103L <= YY_CPLUSPLUS
1078 make_END (location_type l)
1080 return symbol_type (token::TOKEN_END, std::move (l));
1090 #if 201103L <= YY_CPLUSPLUS
1093 make_NETCONF_error (location_type l)
1095 return symbol_type (token::TOKEN_NETCONF_error, std::move (l));
1102 return symbol_type (token::TOKEN_NETCONF_error, l);
1105 #if 201103L <= YY_CPLUSPLUS
1108 make_NETCONF_UNDEF (location_type l)
1110 return symbol_type (token::TOKEN_NETCONF_UNDEF, std::move (l));
1117 return symbol_type (token::TOKEN_NETCONF_UNDEF, l);
1120 #if 201103L <= YY_CPLUSPLUS
1123 make_COMMA (location_type l)
1125 return symbol_type (token::TOKEN_COMMA, std::move (l));
1135 #if 201103L <= YY_CPLUSPLUS
1138 make_COLON (location_type l)
1140 return symbol_type (token::TOKEN_COLON, std::move (l));
1150 #if 201103L <= YY_CPLUSPLUS
1153 make_LSQUARE_BRACKET (location_type l)
1155 return symbol_type (token::TOKEN_LSQUARE_BRACKET, std::move (l));
1162 return symbol_type (token::TOKEN_LSQUARE_BRACKET, l);
1165 #if 201103L <= YY_CPLUSPLUS
1168 make_RSQUARE_BRACKET (location_type l)
1170 return symbol_type (token::TOKEN_RSQUARE_BRACKET, std::move (l));
1177 return symbol_type (token::TOKEN_RSQUARE_BRACKET, l);
1180 #if 201103L <= YY_CPLUSPLUS
1183 make_LCURLY_BRACKET (location_type l)
1185 return symbol_type (token::TOKEN_LCURLY_BRACKET, std::move (l));
1192 return symbol_type (token::TOKEN_LCURLY_BRACKET, l);
1195 #if 201103L <= YY_CPLUSPLUS
1198 make_RCURLY_BRACKET (location_type l)
1200 return symbol_type (token::TOKEN_RCURLY_BRACKET, std::move (l));
1207 return symbol_type (token::TOKEN_RCURLY_BRACKET, l);
1210 #if 201103L <= YY_CPLUSPLUS
1213 make_NULL_TYPE (location_type l)
1215 return symbol_type (token::TOKEN_NULL_TYPE, std::move (l));
1225 #if 201103L <= YY_CPLUSPLUS
1228 make_NETCONF (location_type l)
1230 return symbol_type (token::TOKEN_NETCONF, std::move (l));
1240 #if 201103L <= YY_CPLUSPLUS
1243 make_USER_CONTEXT (location_type l)
1245 return symbol_type (token::TOKEN_USER_CONTEXT, std::move (l));
1252 return symbol_type (token::TOKEN_USER_CONTEXT, l);
1255 #if 201103L <= YY_CPLUSPLUS
1258 make_COMMENT (location_type l)
1260 return symbol_type (token::TOKEN_COMMENT, std::move (l));
1270 #if 201103L <= YY_CPLUSPLUS
1273 make_BOOT_UPDATE (location_type l)
1275 return symbol_type (token::TOKEN_BOOT_UPDATE, std::move (l));
1285 #if 201103L <= YY_CPLUSPLUS
1288 make_SUBSCRIBE_CHANGES (location_type l)
1290 return symbol_type (token::TOKEN_SUBSCRIBE_CHANGES, std::move (l));
1297 return symbol_type (token::TOKEN_SUBSCRIBE_CHANGES, l);
1300 #if 201103L <= YY_CPLUSPLUS
1303 make_VALIDATE_CHANGES (location_type l)
1305 return symbol_type (token::TOKEN_VALIDATE_CHANGES, std::move (l));
1312 return symbol_type (token::TOKEN_VALIDATE_CHANGES, l);
1315 #if 201103L <= YY_CPLUSPLUS
1318 make_MANAGED_SERVERS (location_type l)
1320 return symbol_type (token::TOKEN_MANAGED_SERVERS, std::move (l));
1327 return symbol_type (token::TOKEN_MANAGED_SERVERS, l);
1330 #if 201103L <= YY_CPLUSPLUS
1333 make_DHCP4_SERVER (location_type l)
1335 return symbol_type (token::TOKEN_DHCP4_SERVER, std::move (l));
1342 return symbol_type (token::TOKEN_DHCP4_SERVER, l);
1345 #if 201103L <= YY_CPLUSPLUS
1348 make_DHCP6_SERVER (location_type l)
1350 return symbol_type (token::TOKEN_DHCP6_SERVER, std::move (l));
1357 return symbol_type (token::TOKEN_DHCP6_SERVER, l);
1360 #if 201103L <= YY_CPLUSPLUS
1363 make_D2_SERVER (location_type l)
1365 return symbol_type (token::TOKEN_D2_SERVER, std::move (l));
1375 #if 201103L <= YY_CPLUSPLUS
1378 make_CA_SERVER (location_type l)
1380 return symbol_type (token::TOKEN_CA_SERVER, std::move (l));
1390 #if 201103L <= YY_CPLUSPLUS
1393 make_MODEL (location_type l)
1395 return symbol_type (token::TOKEN_MODEL, std::move (l));
1405 #if 201103L <= YY_CPLUSPLUS
1408 make_CONTROL_SOCKET (location_type l)
1410 return symbol_type (token::TOKEN_CONTROL_SOCKET, std::move (l));
1417 return symbol_type (token::TOKEN_CONTROL_SOCKET, l);
1420 #if 201103L <= YY_CPLUSPLUS
1423 make_SOCKET_TYPE (location_type l)
1425 return symbol_type (token::TOKEN_SOCKET_TYPE, std::move (l));
1435 #if 201103L <= YY_CPLUSPLUS
1438 make_UNIX (location_type l)
1440 return symbol_type (token::TOKEN_UNIX, std::move (l));
1450 #if 201103L <= YY_CPLUSPLUS
1453 make_HTTP (location_type l)
1455 return symbol_type (token::TOKEN_HTTP, std::move (l));
1465 #if 201103L <= YY_CPLUSPLUS
1468 make_STDOUT (location_type l)
1470 return symbol_type (token::TOKEN_STDOUT, std::move (l));
1480 #if 201103L <= YY_CPLUSPLUS
1483 make_SOCKET_NAME (location_type l)
1485 return symbol_type (token::TOKEN_SOCKET_NAME, std::move (l));
1495 #if 201103L <= YY_CPLUSPLUS
1498 make_SOCKET_URL (location_type l)
1500 return symbol_type (token::TOKEN_SOCKET_URL, std::move (l));
1510 #if 201103L <= YY_CPLUSPLUS
1513 make_HOOKS_LIBRARIES (location_type l)
1515 return symbol_type (token::TOKEN_HOOKS_LIBRARIES, std::move (l));
1522 return symbol_type (token::TOKEN_HOOKS_LIBRARIES, l);
1525 #if 201103L <= YY_CPLUSPLUS
1528 make_LIBRARY (location_type l)
1530 return symbol_type (token::TOKEN_LIBRARY, std::move (l));
1540 #if 201103L <= YY_CPLUSPLUS
1543 make_PARAMETERS (location_type l)
1545 return symbol_type (token::TOKEN_PARAMETERS, std::move (l));
1555 #if 201103L <= YY_CPLUSPLUS
1558 make_LOGGERS (location_type l)
1560 return symbol_type (token::TOKEN_LOGGERS, std::move (l));
1570 #if 201103L <= YY_CPLUSPLUS
1573 make_NAME (location_type l)
1575 return symbol_type (token::TOKEN_NAME, std::move (l));
1585 #if 201103L <= YY_CPLUSPLUS
1588 make_OUTPUT_OPTIONS (location_type l)
1590 return symbol_type (token::TOKEN_OUTPUT_OPTIONS, std::move (l));
1597 return symbol_type (token::TOKEN_OUTPUT_OPTIONS, l);
1600 #if 201103L <= YY_CPLUSPLUS
1603 make_OUTPUT (location_type l)
1605 return symbol_type (token::TOKEN_OUTPUT, std::move (l));
1615 #if 201103L <= YY_CPLUSPLUS
1618 make_DEBUGLEVEL (location_type l)
1620 return symbol_type (token::TOKEN_DEBUGLEVEL, std::move (l));
1630 #if 201103L <= YY_CPLUSPLUS
1633 make_SEVERITY (location_type l)
1635 return symbol_type (token::TOKEN_SEVERITY, std::move (l));
1645 #if 201103L <= YY_CPLUSPLUS
1648 make_FLUSH (location_type l)
1650 return symbol_type (token::TOKEN_FLUSH, std::move (l));
1660 #if 201103L <= YY_CPLUSPLUS
1663 make_MAXSIZE (location_type l)
1665 return symbol_type (token::TOKEN_MAXSIZE, std::move (l));
1675 #if 201103L <= YY_CPLUSPLUS
1678 make_MAXVER (location_type l)
1680 return symbol_type (token::TOKEN_MAXVER, std::move (l));
1690 #if 201103L <= YY_CPLUSPLUS
1693 make_PATTERN (location_type l)
1695 return symbol_type (token::TOKEN_PATTERN, std::move (l));
1705 #if 201103L <= YY_CPLUSPLUS
1708 make_START_JSON (location_type l)
1710 return symbol_type (token::TOKEN_START_JSON, std::move (l));
1720 #if 201103L <= YY_CPLUSPLUS
1723 make_START_NETCONF (location_type l)
1725 return symbol_type (token::TOKEN_START_NETCONF, std::move (l));
1732 return symbol_type (token::TOKEN_START_NETCONF, l);
1735 #if 201103L <= YY_CPLUSPLUS
1738 make_START_SUB_NETCONF (location_type l)
1740 return symbol_type (token::TOKEN_START_SUB_NETCONF, std::move (l));
1747 return symbol_type (token::TOKEN_START_SUB_NETCONF, l);
1750 #if 201103L <= YY_CPLUSPLUS
1753 make_STRING (std::string v, location_type l)
1755 return symbol_type (token::TOKEN_STRING, std::move (v), std::move (l));
1765 #if 201103L <= YY_CPLUSPLUS
1768 make_INTEGER (int64_t v, location_type l)
1770 return symbol_type (token::TOKEN_INTEGER, std::move (v), std::move (l));
1780 #if 201103L <= YY_CPLUSPLUS
1783 make_FLOAT (
double v, location_type l)
1785 return symbol_type (token::TOKEN_FLOAT, std::move (v), std::move (l));
1795 #if 201103L <= YY_CPLUSPLUS
1798 make_BOOLEAN (
bool v, location_type l)
1800 return symbol_type (token::TOKEN_BOOLEAN, std::move (v), std::move (l));
1823 int expected_tokens (symbol_kind_type yyarg[],
int yyargn)
const;
1831 #if YY_CPLUSPLUS < 201103L
1840 typedef short state_type;
1843 int yy_syntax_error_arguments_ (
const context& yyctx,
1844 symbol_kind_type yyarg[],
int yyargn)
const;
1848 virtual std::string yysyntax_error_ (
const context& yyctx)
const;
1852 static state_type yy_lr_goto_state_ (state_type yystate,
int yysym);
1856 static bool yy_pact_value_is_default_ (
int yyvalue);
1860 static bool yy_table_value_is_error_ (
int yyvalue);
1862 static const signed char yypact_ninf_;
1863 static const signed char yytable_ninf_;
1868 static symbol_kind_type yytranslate_ (
int t);
1871 static std::string yytnamerr_ (
const char *yystr);
1874 static const char*
const yytname_[];
1880 static const short yypact_[];
1885 static const unsigned char yydefact_[];
1888 static const short yypgoto_[];
1891 static const short yydefgoto_[];
1896 static const short yytable_[];
1898 static const short yycheck_[];
1902 static const unsigned char yystos_[];
1905 static const unsigned char yyr1_[];
1908 static const signed char yyr2_[];
1913 static const short yyrline_[];
1915 virtual void yy_reduce_print_ (
int r)
const;
1917 virtual void yy_stack_print_ ()
const;
1922 std::ostream* yycdebug_;
1927 template <
typename Base>
1928 void yy_print_ (std::ostream& yyo,
const basic_symbol<Base>& yysym)
const;
1935 template <
typename Base>
1936 void yy_destroy_ (
const char* yymsg, basic_symbol<Base>& yysym)
const;
1946 typedef state_type kind_type;
1952 by_state (const by_state& that) YY_NOEXCEPT;
1955 void clear () YY_NOEXCEPT;
1958 void move (by_state& that);
1962 symbol_kind_type kind () const YY_NOEXCEPT;
1966 enum { empty_state = 0 };
1974 struct stack_symbol_type : basic_symbol<by_state>
1977 typedef basic_symbol<by_state> super_type;
1979 stack_symbol_type ();
1981 stack_symbol_type (
YY_RVREF (stack_symbol_type) that);
1983 stack_symbol_type (state_type s,
YY_MOVE_REF (symbol_type) sym);
1984 #if YY_CPLUSPLUS < 201103L
1985 stack_symbol_type& operator= (stack_symbol_type& that);
1991 stack_symbol_type& operator= (
const stack_symbol_type& that);
1996 template <
typename T,
typename S = std::vector<T> >
2001 typedef typename S::iterator iterator;
2002 typedef typename S::const_iterator const_iterator;
2003 typedef typename S::size_type size_type;
2004 typedef typename std::ptrdiff_t index_type;
2006 stack (size_type n = 200)
2010 #if 201103L <= YY_CPLUSPLUS
2011 stack (
const stack&) =
delete;
2014 stack& operator= (
const stack&) =
delete;
2021 operator[] (index_type i)
const
2023 return seq_[size_type (size () - 1 - i)];
2030 operator[] (index_type i)
2032 return seq_[size_type (size () - 1 - i)];
2041 seq_.push_back (T ());
2042 operator[] (0).move (t);
2064 return index_type (seq_.size ());
2071 return seq_.begin ();
2085 slice (
const stack& stack, index_type range)
2091 operator[] (index_type i)
const
2093 return stack_[range_ - i];
2097 const stack& stack_;
2102 #if YY_CPLUSPLUS < 201103L
2103 stack (
const stack&);
2106 stack& operator= (
const stack&);
2114 typedef stack<stack_symbol_type> stack_type;
2117 stack_type yystack_;
2124 void yypush_ (
const char* m,
YY_MOVE_REF (stack_symbol_type) sym);
2132 void yypush_ (
const char* m, state_type s,
YY_MOVE_REF (symbol_type) sym);
2135 void yypop_ (
int n = 1);
2153 NetconfParser::yytranslate_ (
int t)
2161 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2162 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2163 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2164 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2165 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2166 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2167 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2168 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2169 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2170 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2171 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2172 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2173 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2174 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2175 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2176 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2177 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2178 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2179 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2180 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2181 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2182 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2183 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2184 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2185 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2186 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
2187 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2188 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2189 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2190 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2194 const int code_max = 303;
2197 return symbol_kind::S_YYEOF;
2198 else if (t <= code_max)
2199 return YY_CAST (symbol_kind_type, translate_table[t]);
2201 return symbol_kind::S_YYUNDEF;
2205 template <
typename Base>
2209 , location (that.location)
2211 switch (this->kind ())
2243 template <
typename Base>
2247 return this->kind ();
2250 template <
typename Base>
2257 template <
typename Base>
2261 super_type::move (s);
2262 switch (this->kind ())
2299 #if 201103L <= YY_CPLUSPLUS
2302 : kind_ (that.kind_)
2310 : kind_ (that.kind_)
2315 : kind_ (yytranslate_ (t))
2344 return this->kind ();
2347 #line 14 "netconf_parser.yy"
2349 #line 2350 "netconf_parser.h"
2354 #endif // !YY_NETCONF_NETCONF_PARSER_H_INCLUDED
static symbol_type make_LOGGERS(const location_type &l)
std::string name() const YY_NOEXCEPT
The user-facing name of this symbol.
const T & as() const YY_NOEXCEPT
Const accessor to a built T (for printer).
static symbol_type make_NETCONF_UNDEF(const location_type &l)
void move(by_kind &that)
Steal the symbol kind from that.
static symbol_type make_COLON(const location_type &l)
static symbol_type make_MANAGED_SERVERS(const location_type &l)
syntax_error(const syntax_error &s)
static symbol_type make_CONTROL_SOCKET(const location_type &l)
static symbol_type make_DHCP4_SERVER(const location_type &l)
static symbol_type make_FLUSH(const location_type &l)
symbol_kind_type kind_
The symbol kind.
static symbol_type make_VALIDATE_CHANGES(const location_type &l)
basic_symbol(typename Base::kind_type t, const double &v, const location_type &l)
static symbol_type make_SEVERITY(const location_type &l)
bool empty() const YY_NOEXCEPT
Whether empty.
static symbol_type make_STDOUT(const location_type &l)
semantic_type value
The semantic value.
T & emplace(const T &t)
Instantiate a T in here from t.
static symbol_type make_LIBRARY(const location_type &l)
static symbol_type make_FLOAT(const double &v, const location_type &l)
symbol_kind_type kind() const YY_NOEXCEPT
The (internal) type number (corresponding to type).
static symbol_type make_COMMA(const location_type &l)
#define YY_ATTRIBUTE_PURE
slice(const stack &stack, index_type range)
static symbol_type make_MAXVER(const location_type &l)
boost::shared_ptr< Element > ElementPtr
static symbol_type make_BOOT_UPDATE(const location_type &l)
basic_symbol(typename Base::kind_type t, const ElementPtr &v, const location_type &l)
Present a slice of the top of a stack.
static symbol_type make_HOOKS_LIBRARIES(const location_type &l)
location_type location
The location.
Forward declaration of the ParserContext class.
static symbol_type make_CA_SERVER(const location_type &l)
static symbol_type make_STRING(const std::string &v, const location_type &l)
static symbol_type make_LCURLY_BRACKET(const location_type &l)
symbol_kind_type type_get() const YY_NOEXCEPT
Backward compatibility (Bison 3.6).
symbol_kind::symbol_kind_type symbol_kind_type
(Internal) symbol kind.
static symbol_type make_END(const location_type &l)
static symbol_type make_D2_SERVER(const location_type &l)
static symbol_type make_COMMENT(const location_type &l)
~semantic_type() YY_NOEXCEPT
Destruction, allowed only if empty.
token_kind_type token_type
Backward compatibility alias (Bison 3.6).
semantic_type() YY_NOEXCEPT
Empty construction.
void swap(self_type &that) YY_NOEXCEPT
Swap the content with that, of same type.
#define YY_CAST(Type, Val)
Base super_type
Alias to Base.
static symbol_type make_BOOLEAN(const bool &v, const location_type &l)
static symbol_type make_SOCKET_URL(const location_type &l)
void copy(const self_type &that)
Copy the content of that to this.
basic_symbol()
Default constructor.
static symbol_type make_SOCKET_TYPE(const location_type &l)
static symbol_type make_USER_CONTEXT(const location_type &l)
static symbol_type make_NETCONF_error(const location_type &l)
~basic_symbol()
Destroy the symbol.
void move(basic_symbol &s)
Destructive move, s is emptied into this.
T & emplace()
Instantiate an empty T in here.
semantic_type(YY_RVREF(T) t)
Construct and fill.
static symbol_type make_INTEGER(const int64_t &v, const location_type &l)
"External" symbols: returned by the scanner.
void destroy()
Destroy the stored T.
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_NETCONF(const location_type &l)
basic_symbol(typename Base::kind_type t, const bool &v, const location_type &l)
void clear() YY_NOEXCEPT
Destroy contents, and record that is empty.
symbol_kind_type type_get() const YY_NOEXCEPT
Backward compatibility (Bison 3.6).
T & as() YY_NOEXCEPT
Accessor to a built T.
token_kind_type kind_type
The symbol kind as needed by the constructor.
static symbol_type make_SOCKET_NAME(const location_type &l)
static symbol_type make_HTTP(const location_type &l)
static symbol_type make_START_NETCONF(const location_type &l)
A buffer to store and retrieve objects.
#define YY_MOVE_REF(Type)
symbol_type()
Empty symbol.
Defines the logger used by the top-level component of kea-dhcp-ddns.
long double yyalign_me
Strongest alignment constraints.
const location_type & location() const YY_NOEXCEPT
static symbol_type make_UNIX(const location_type &l)
static symbol_type make_SUBSCRIBE_CHANGES(const location_type &l)
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.
Parser context is a wrapper around flex/bison instances dedicated to Netconf-agent config file parser...
const symbol_type & lookahead() const YY_NOEXCEPT
int debug_level_type
Type for debugging levels.
static symbol_type make_RCURLY_BRACKET(const location_type &l)
by_kind()
Default constructor.
symbol_kind_type token() const YY_NOEXCEPT
Type access provider for token (enum) based symbols.
static symbol_type make_NAME(const location_type &l)
static symbol_type make_OUTPUT(const location_type &l)
static symbol_type make_OUTPUT_OPTIONS(const location_type &l)
Syntax errors thrown from user actions.
static symbol_type make_RSQUARE_BRACKET(const location_type &l)
T & build(const T &t)
Instantiate a T in here from t.
static symbol_type make_DHCP6_SERVER(const location_type &l)
static symbol_type make_NULL_TYPE(const location_type &l)
static symbol_type make_MAXSIZE(const location_type &l)
static symbol_type make_DEBUGLEVEL(const location_type &l)
static symbol_type make_START_SUB_NETCONF(const location_type &l)
token::yytokentype token_kind_type
Token kind, as returned by yylex.
T & build()
Instantiate an empty T in here.
static symbol_type make_LSQUARE_BRACKET(const location_type &l)
token_kind_type yytokentype
Backward compatibility alias (Bison 3.6).
basic_symbol< by_kind > super_type
Superclass.
void move(self_type &that)
Move the content of that to this.
semantic_type self_type
Type of *this.
void clear() YY_NOEXCEPT
Record that this symbol is empty.
static symbol_type make_START_JSON(const location_type &l)
static symbol_type make_MODEL(const location_type &l)
static symbol_type make_PATTERN(const location_type &l)
basic_symbol(typename Base::kind_type t, const int64_t &v, const location_type &l)
static symbol_type make_PARAMETERS(const location_type &l)
syntax_error(const location_type &l, const std::string &m)