45#ifndef YY_EVAL_PARSER_H_INCLUDED
46# define YY_EVAL_PARSER_H_INCLUDED
54#include <boost/lexical_cast.hpp>
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"
108# define EVAL_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)
207namespace isc {
namespace eval {
219# pragma GCC message "bison: do not #define EVALSTYPE 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);
443 char dummy6[
sizeof (int8_t)];
450 char dummy7[
sizeof (std::string)];
454 char dummy8[
sizeof (uint16_t)];
458 char dummy9[
sizeof (uint32_t)];
462 enum { size =
sizeof (union_type) };
474 const std::type_info *yytypeid_;
488 : std::runtime_error (m)
493 : std::runtime_error (s.what ())
507 TOKEN_EVALEMPTY = -2,
509 TOKEN_EVALerror = 256,
510 TOKEN_EVALUNDEF = 257,
521 TOKEN_PEERADDR = 268,
522 TOKEN_LINKADDR = 269,
523 TOKEN_LBRACKET = 270,
524 TOKEN_RBRACKET = 271,
542 TOKEN_SUBSTRING = 289,
549 TOKEN_TOHEXSTRING = 296,
550 TOKEN_ADDRTOTEXT = 297,
551 TOKEN_INT8TOTEXT = 298,
552 TOKEN_INT16TOTEXT = 299,
553 TOKEN_INT32TOTEXT = 300,
554 TOKEN_UINT8TOTEXT = 301,
555 TOKEN_UINT16TOTEXT = 302,
556 TOKEN_UINT32TOTEXT = 303,
560 TOKEN_VENDOR_CLASS = 307,
564 TOKEN_ENTERPRISE = 311,
565 TOKEN_TOPLEVEL_BOOL = 312,
566 TOKEN_TOPLEVEL_STRING = 313,
569 TOKEN_HEXSTRING = 316,
570 TOKEN_OPTION_NAME = 317,
571 TOKEN_IP_ADDRESS = 318
647 S_TOPLEVEL_BOOL = 57,
648 S_TOPLEVEL_STRING = 58,
661 S_sub_option_code = 71,
662 S_option_repr_type = 72,
665 S_enterprise_id = 75,
687 template <
typename Base>
699#if 201103L <= YY_CPLUSPLUS
702 : Base (std::move (that))
706 switch (this->kind ())
729 value.move< int8_t > (std::move (that.value));
737 value.move< std::string > (std::move (that.value));
742 value.move< uint16_t > (std::move (that.value));
747 value.move< uint32_t > (std::move (that.value));
758 basic_symbol (
const basic_symbol& that);
761#if 201103L <= YY_CPLUSPLUS
773#if 201103L <= YY_CPLUSPLUS
776 , value (std::move (v))
787#if 201103L <= YY_CPLUSPLUS
790 , value (std::move (v))
801#if 201103L <= YY_CPLUSPLUS
804 , value (std::move (v))
815#if 201103L <= YY_CPLUSPLUS
818 , value (std::move (v))
829#if 201103L <= YY_CPLUSPLUS
832 , value (std::move (v))
843#if 201103L <= YY_CPLUSPLUS
846 , value (std::move (v))
857#if 201103L <= YY_CPLUSPLUS
860 , value (std::move (v))
871#if 201103L <= YY_CPLUSPLUS
874 , value (std::move (v))
885#if 201103L <= YY_CPLUSPLUS
888 , value (std::move (v))
924 value.template destroy< TokenOption::RepresentationType > ();
928 value.template destroy< TokenPkt4::FieldType > ();
932 value.template destroy< TokenPkt6::FieldType > ();
936 value.template destroy< TokenPkt::MetadataType > ();
940 value.template destroy< TokenRelay6Field::FieldType > ();
944 value.template destroy< int8_t > ();
952 value.template destroy< std::string > ();
957 value.template destroy< uint16_t > ();
962 value.template destroy< uint32_t > ();
994#if YY_CPLUSPLUS < 201103L
1009#if 201103L <= YY_CPLUSPLUS
1053#if 201103L <= YY_CPLUSPLUS
1061#if !defined _MSC_VER || defined __clang__
1066#if 201103L <= YY_CPLUSPLUS
1074#if !defined _MSC_VER || defined __clang__
1084#if 201103L <= YY_CPLUSPLUS
1097 virtual int parse ();
1126#if 201103L <= YY_CPLUSPLUS
1141#if 201103L <= YY_CPLUSPLUS
1156#if 201103L <= YY_CPLUSPLUS
1171#if 201103L <= YY_CPLUSPLUS
1186#if 201103L <= YY_CPLUSPLUS
1201#if 201103L <= YY_CPLUSPLUS
1216#if 201103L <= YY_CPLUSPLUS
1231#if 201103L <= YY_CPLUSPLUS
1246#if 201103L <= YY_CPLUSPLUS
1261#if 201103L <= YY_CPLUSPLUS
1276#if 201103L <= YY_CPLUSPLUS
1291#if 201103L <= YY_CPLUSPLUS
1306#if 201103L <= YY_CPLUSPLUS
1321#if 201103L <= YY_CPLUSPLUS
1336#if 201103L <= YY_CPLUSPLUS
1351#if 201103L <= YY_CPLUSPLUS
1366#if 201103L <= YY_CPLUSPLUS
1381#if 201103L <= YY_CPLUSPLUS
1396#if 201103L <= YY_CPLUSPLUS
1411#if 201103L <= YY_CPLUSPLUS
1426#if 201103L <= YY_CPLUSPLUS
1441#if 201103L <= YY_CPLUSPLUS
1456#if 201103L <= YY_CPLUSPLUS
1471#if 201103L <= YY_CPLUSPLUS
1486#if 201103L <= YY_CPLUSPLUS
1501#if 201103L <= YY_CPLUSPLUS
1516#if 201103L <= YY_CPLUSPLUS
1531#if 201103L <= YY_CPLUSPLUS
1546#if 201103L <= YY_CPLUSPLUS
1561#if 201103L <= YY_CPLUSPLUS
1576#if 201103L <= YY_CPLUSPLUS
1591#if 201103L <= YY_CPLUSPLUS
1606#if 201103L <= YY_CPLUSPLUS
1621#if 201103L <= YY_CPLUSPLUS
1636#if 201103L <= YY_CPLUSPLUS
1651#if 201103L <= YY_CPLUSPLUS
1666#if 201103L <= YY_CPLUSPLUS
1681#if 201103L <= YY_CPLUSPLUS
1696#if 201103L <= YY_CPLUSPLUS
1711#if 201103L <= YY_CPLUSPLUS
1726#if 201103L <= YY_CPLUSPLUS
1741#if 201103L <= YY_CPLUSPLUS
1756#if 201103L <= YY_CPLUSPLUS
1771#if 201103L <= YY_CPLUSPLUS
1786#if 201103L <= YY_CPLUSPLUS
1801#if 201103L <= YY_CPLUSPLUS
1816#if 201103L <= YY_CPLUSPLUS
1831#if 201103L <= YY_CPLUSPLUS
1846#if 201103L <= YY_CPLUSPLUS
1861#if 201103L <= YY_CPLUSPLUS
1876#if 201103L <= YY_CPLUSPLUS
1891#if 201103L <= YY_CPLUSPLUS
1906#if 201103L <= YY_CPLUSPLUS
1921#if 201103L <= YY_CPLUSPLUS
1936#if 201103L <= YY_CPLUSPLUS
1951#if 201103L <= YY_CPLUSPLUS
1966#if 201103L <= YY_CPLUSPLUS
1981#if 201103L <= YY_CPLUSPLUS
1996#if 201103L <= YY_CPLUSPLUS
2011#if 201103L <= YY_CPLUSPLUS
2026#if 201103L <= YY_CPLUSPLUS
2041#if 201103L <= YY_CPLUSPLUS
2056#if 201103L <= YY_CPLUSPLUS
2071#if 201103L <= YY_CPLUSPLUS
2107#if YY_CPLUSPLUS < 201103L
2116 typedef unsigned char state_type;
2119 int yy_syntax_error_arguments_ (
const context& yyctx,
2124 virtual std::string yysyntax_error_ (
const context& yyctx)
const;
2128 static state_type yy_lr_goto_state_ (state_type yystate,
int yysym);
2132 static bool yy_pact_value_is_default_ (
int yyvalue)
YY_NOEXCEPT;
2136 static bool yy_table_value_is_error_ (
int yyvalue)
YY_NOEXCEPT;
2138 static const short yypact_ninf_;
2139 static const signed char yytable_ninf_;
2147 static std::string yytnamerr_ (
const char *yystr);
2150 static const char*
const yytname_[];
2156 static const short yypact_[];
2161 static const signed char yydefact_[];
2164 static const short yypgoto_[];
2167 static const unsigned char yydefgoto_[];
2172 static const unsigned char yytable_[];
2174 static const short yycheck_[];
2178 static const signed char yystos_[];
2181 static const signed char yyr1_[];
2184 static const signed char yyr2_[];
2189 static const short yyrline_[];
2191 virtual void yy_reduce_print_ (
int r)
const;
2193 virtual void yy_stack_print_ ()
const;
2198 std::ostream* yycdebug_;
2203 template <
typename Base>
2204 void yy_print_ (std::ostream& yyo,
const basic_symbol<Base>& yysym)
const;
2211 template <
typename Base>
2212 void yy_destroy_ (
const char* yymsg, basic_symbol<Base>& yysym)
const;
2222 typedef state_type kind_type;
2234 void move (by_state& that);
2242 enum { empty_state = 0 };
2250 struct stack_symbol_type : basic_symbol<by_state>
2253 typedef basic_symbol<by_state> super_type;
2255 stack_symbol_type ();
2257 stack_symbol_type (
YY_RVREF (stack_symbol_type) that);
2259 stack_symbol_type (state_type s,
YY_MOVE_REF (symbol_type) sym);
2260#if YY_CPLUSPLUS < 201103L
2263 stack_symbol_type& operator= (stack_symbol_type& that);
2267 stack_symbol_type& operator= (
const stack_symbol_type& that);
2272 template <
typename T,
typename S = std::vector<T> >
2277 typedef typename S::iterator iterator;
2278 typedef typename S::const_iterator const_iterator;
2279 typedef typename S::size_type size_type;
2280 typedef typename std::ptrdiff_t index_type;
2286#if 201103L <= YY_CPLUSPLUS
2288 stack (
const stack&) =
delete;
2290 stack& operator= (
const stack&) =
delete;
2297 operator[] (index_type i)
const
2299 return seq_[size_type (size () - 1 - i)];
2306 operator[] (index_type i)
2308 return seq_[size_type (size () - 1 - i)];
2317 seq_.push_back (T ());
2318 operator[] (0).move (t);
2340 return index_type (seq_.size ());
2347 return seq_.begin ();
2367 operator[] (index_type i)
const
2369 return stack_[range_ - i];
2373 const stack& stack_;
2378#if YY_CPLUSPLUS < 201103L
2380 stack (
const stack&);
2382 stack& operator= (
const stack&);
2390 typedef stack<stack_symbol_type> stack_type;
2393 stack_type yystack_;
2400 void yypush_ (
const char* m,
YY_MOVE_REF (stack_symbol_type) sym);
2408 void yypush_ (
const char* m, state_type s,
YY_MOVE_REF (symbol_type) sym);
2437 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2438 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2439 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2440 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2441 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2442 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2443 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2444 2, 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, 1, 2, 3, 4,
2463 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2464 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2465 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2466 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2467 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2468 55, 56, 57, 58, 59, 60, 61, 62, 63
2471 const int code_max = 318;
2475 else if (t <= code_max)
2482 template <
typename Base>
2488 switch (this->kind ())
2541 template <
typename Base>
2545 return this->kind ();
2549 template <
typename Base>
2556 template <
typename Base>
2560 super_type::move (s);
2561 switch (this->kind ())
2618#if 201103L <= YY_CPLUSPLUS
2621 : kind_ (that.kind_)
2629 : kind_ (that.kind_)
2634 : kind_ (yytranslate_ (t))
2666 return this->kind ();
2672#line 2673 "parser.h"
RepresentationType
Token representation type.
FieldType
enum value that determines the field.
FieldType
enum value that determines the field.
MetadataType
enum value that determines the field.
FieldType
enum value that determines the field.
Evaluation context, an interface to the expression evaluation.
const location_type & location() const YY_NOEXCEPT
const symbol_type & lookahead() const YY_NOEXCEPT
symbol_kind_type token() 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.
T & emplace(const T &t)
Instantiate a T in here from t.
T & as() YY_NOEXCEPT
Accessor to a built T.
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.
long double yyalign_me_
Strongest alignment constraints.
const T & as() const YY_NOEXCEPT
Const accessor to a built T (for printer).
T & build()
Instantiate an empty T in here.
void copy(const self_type &that)
Copy the content of that to this.
~value_type() YY_NOEXCEPT
Destruction, allowed only if empty.
void destroy()
Destroy the stored T.
void swap(self_type &that) YY_NOEXCEPT
Swap the content with that, of same type.
T & emplace()
Instantiate an empty T in here.
char yyraw_[size]
A buffer large enough to store any of the semantic values.
value_type() YY_NOEXCEPT
Empty construction.
value_type self_type
Type of *this.
static symbol_type make_RELAY6(const location_type &l)
static symbol_type make_INT8TOTEXT(const location_type &l)
static symbol_type make_CONCAT(const location_type &l)
static symbol_type make_TEXT(const location_type &l)
static symbol_type make_OPTION(const location_type &l)
static symbol_type make_AND(const location_type &l)
static symbol_type make_HTYPE(const location_type &l)
symbol_kind::symbol_kind_type symbol_kind_type
(Internal) symbol kind.
static symbol_type make_MSGTYPE(const location_type &l)
static symbol_type make_LINKADDR(const location_type &l)
static symbol_type make_TOHEXSTRING(const location_type &l)
debug_level_type debug_level() const YY_ATTRIBUTE_PURE
The current debugging level.
static symbol_type make_EVALerror(const location_type &l)
static symbol_type make_PKT6(const location_type &l)
static symbol_type make_END(const location_type &l)
static symbol_type make_DST(const location_type &l)
static symbol_type make_OR(const location_type &l)
static symbol_type make_PLUS(const location_type &l)
static symbol_type make_RBRACKET(const location_type &l)
static symbol_type make_NOT(const location_type &l)
static symbol_type make_INT32TOTEXT(const location_type &l)
static symbol_type make_SIADDR(const location_type &l)
static symbol_type make_PKT4(const location_type &l)
virtual int parse()
Parse.
static symbol_type make_IP_ADDRESS(const std::string &v, const location_type &l)
static symbol_type make_UINT16TOTEXT(const location_type &l)
static symbol_type make_STRING(const std::string &v, const location_type &l)
static symbol_type make_TOPLEVEL_BOOL(const location_type &l)
int debug_level_type
Type for debugging levels.
static symbol_type make_LPAREN(const location_type &l)
static symbol_type make_TOPLEVEL_STRING(const location_type &l)
static symbol_type make_GIADDR(const location_type &l)
static symbol_type make_DATA(const location_type &l)
static symbol_type make_CHADDR(const location_type &l)
static symbol_type make_INT16TOTEXT(const location_type &l)
static symbol_type make_LBRACKET(const location_type &l)
static symbol_type make_LEN(const location_type &l)
static symbol_type make_IFACE(const location_type &l)
static symbol_type make_ANY(const location_type &l)
static symbol_type make_DOT(const location_type &l)
static symbol_type make_HLEN(const location_type &l)
static symbol_type make_ALL(const location_type &l)
static symbol_type make_COMA(const location_type &l)
static symbol_type make_IFELSE(const location_type &l)
location location_type
Symbol locations.
static symbol_type make_YIADDR(const location_type &l)
static symbol_type make_SRC(const location_type &l)
static symbol_type make_INTEGER(const std::string &v, const location_type &l)
static symbol_type make_EQUAL(const location_type &l)
token::token_kind_type token_kind_type
Token kind, as returned by yylex.
static symbol_type make_EXISTS(const location_type &l)
static symbol_type make_TRANSID(const location_type &l)
token_kind_type token_type
Backward compatibility alias (Bison 3.6).
void set_debug_stream(std::ostream &)
Set the current debugging stream.
void set_debug_level(debug_level_type l)
Set the current debugging level.
std::ostream & debug_stream() const YY_ATTRIBUTE_PURE
The current debugging stream.
static symbol_type make_ADDRTOTEXT(const location_type &l)
static symbol_type make_RELAY4(const location_type &l)
static symbol_type make_PKT(const location_type &l)
static symbol_type make_CIADDR(const location_type &l)
static symbol_type make_HEXSTRING(const std::string &v, const location_type &l)
static symbol_type make_EVALUNDEF(const location_type &l)
static symbol_type make_OPTION_NAME(const std::string &v, const location_type &l)
static symbol_type make_MEMBER(const location_type &l)
static symbol_type make_UINT32TOTEXT(const location_type &l)
EvalParser(EvalContext &ctx_yyarg)
Build a parser object.
static symbol_type make_SPLIT(const location_type &l)
static symbol_type make_ENTERPRISE(const location_type &l)
static symbol_type make_VENDOR(const location_type &l)
value_type semantic_type
Backward compatibility (Bison 3.8).
static symbol_type make_RPAREN(const location_type &l)
static symbol_type make_PEERADDR(const location_type &l)
static const symbol_kind_type YYNTOKENS
The number of tokens.
static symbol_type make_SUBSTRING(const location_type &l)
static symbol_type make_VENDOR_CLASS(const location_type &l)
static symbol_type make_HEX(const location_type &l)
virtual void error(const location_type &loc, const std::string &msg)
Report a syntax error.
static symbol_type make_UINT8TOTEXT(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.
Forward declaration of the EvalContext class.
Defines the logger used by the top-level component of kea-lfc.
#define YY_MOVE_REF(Type)
#define YY_ATTRIBUTE_PURE
void move(basic_symbol &s)
Destructive move, s is emptied into this.
location_type location
The location.
Base super_type
Alias to Base.
basic_symbol(typename Base::kind_type t, const TokenPkt4::FieldType &v, const location_type &l)
basic_symbol(typename Base::kind_type t, const uint32_t &v, const location_type &l)
value_type value
The semantic value.
basic_symbol(typename Base::kind_type t, const TokenPkt6::FieldType &v, const location_type &l)
~basic_symbol()
Destroy the symbol.
bool empty() const YY_NOEXCEPT
Whether empty.
symbol_kind_type type_get() const YY_NOEXCEPT
Backward compatibility (Bison 3.6).
basic_symbol(typename Base::kind_type t, const uint16_t &v, const location_type &l)
basic_symbol(typename Base::kind_type t, const TokenPkt::MetadataType &v, const location_type &l)
std::string name() const YY_NOEXCEPT
The user-facing name of this symbol.
basic_symbol(typename Base::kind_type t, const TokenOption::RepresentationType &v, const location_type &l)
basic_symbol(typename Base::kind_type t, const std::string &v, const location_type &l)
void clear() YY_NOEXCEPT
Destroy contents, and record that is empty.
basic_symbol() YY_NOEXCEPT
Default constructor.
basic_symbol(typename Base::kind_type t, const TokenRelay6Field::FieldType &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 int8_t &v, const location_type &l)
Type access provider for token (enum) based symbols.
symbol_kind_type type_get() const YY_NOEXCEPT
Backward compatibility (Bison 3.6).
token_kind_type kind_type
The symbol kind as needed by the constructor.
by_kind() YY_NOEXCEPT
Default constructor.
symbol_kind_type kind_
The symbol kind.
void clear() YY_NOEXCEPT
Record that this symbol is empty.
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.
@ 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(const syntax_error &s)
~syntax_error() YY_NOEXCEPT YY_NOTHROW
token_kind_type yytokentype
Backward compatibility alias (Bison 3.6).