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))
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
183# define YY_NULLPTR ((void*)0)
201namespace isc {
namespace eval {
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
251# if 201103L <= YY_CPLUSPLUS
253 template <
typename T,
typename... U>
259 yytypeid_ = &
typeid (T);
260 return *
new (yyas_<T> ()) T (std::forward <U>(u)...);
264 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
361 template <
typename T>
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
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);
432 char dummy6[
sizeof (int8_t)];
439 char dummy7[
sizeof (std::string)];
443 char dummy8[
sizeof (uint16_t)];
447 char dummy9[
sizeof (uint32_t)];
451 enum { size =
sizeof (union_type) };
463 const std::type_info *yytypeid_;
467 typedef EVALSTYPE semantic_type;
476 : std::runtime_error (m)
481 : std::runtime_error (s.what ())
495 TOKEN_EVALEMPTY = -2,
497 TOKEN_EVALerror = 256,
498 TOKEN_EVALUNDEF = 257,
509 TOKEN_PEERADDR = 268,
510 TOKEN_LINKADDR = 269,
511 TOKEN_LBRACKET = 270,
512 TOKEN_RBRACKET = 271,
530 TOKEN_SUBSTRING = 289,
536 TOKEN_TOHEXSTRING = 295,
537 TOKEN_ADDRTOTEXT = 296,
538 TOKEN_INT8TOTEXT = 297,
539 TOKEN_INT16TOTEXT = 298,
540 TOKEN_INT32TOTEXT = 299,
541 TOKEN_UINT8TOTEXT = 300,
542 TOKEN_UINT16TOTEXT = 301,
543 TOKEN_UINT32TOTEXT = 302,
547 TOKEN_VENDOR_CLASS = 306,
551 TOKEN_ENTERPRISE = 310,
552 TOKEN_TOPLEVEL_BOOL = 311,
553 TOKEN_TOPLEVEL_STRING = 312,
556 TOKEN_HEXSTRING = 315,
557 TOKEN_OPTION_NAME = 316,
558 TOKEN_IP_ADDRESS = 317
633 S_TOPLEVEL_BOOL = 56,
634 S_TOPLEVEL_STRING = 57,
647 S_sub_option_code = 70,
648 S_option_repr_type = 71,
651 S_enterprise_id = 74,
672 template <
typename Base>
684#if 201103L <= YY_CPLUSPLUS
687 : Base (std::move (that))
691 switch (this->kind ())
714 value.move< int8_t > (std::move (that.value));
722 value.move< std::string > (std::move (that.value));
727 value.move< uint16_t > (std::move (that.value));
732 value.move< uint32_t > (std::move (that.value));
743 basic_symbol (
const basic_symbol& that);
746#if 201103L <= YY_CPLUSPLUS
758#if 201103L <= YY_CPLUSPLUS
761 , value (std::move (v))
772#if 201103L <= YY_CPLUSPLUS
775 , value (std::move (v))
786#if 201103L <= YY_CPLUSPLUS
789 , value (std::move (v))
800#if 201103L <= YY_CPLUSPLUS
803 , value (std::move (v))
814#if 201103L <= YY_CPLUSPLUS
817 , value (std::move (v))
828#if 201103L <= YY_CPLUSPLUS
831 , value (std::move (v))
842#if 201103L <= YY_CPLUSPLUS
845 , value (std::move (v))
856#if 201103L <= YY_CPLUSPLUS
859 , value (std::move (v))
870#if 201103L <= YY_CPLUSPLUS
873 , value (std::move (v))
907 value.template destroy< TokenOption::RepresentationType > ();
911 value.template destroy< TokenPkt4::FieldType > ();
915 value.template destroy< TokenPkt6::FieldType > ();
919 value.template destroy< TokenPkt::MetadataType > ();
923 value.template destroy< TokenRelay6Field::FieldType > ();
927 value.template destroy< int8_t > ();
935 value.template destroy< std::string > ();
940 value.template destroy< uint16_t > ();
945 value.template destroy< uint32_t > ();
977#if YY_CPLUSPLUS < 201103L
989#if 201103L <= YY_CPLUSPLUS
1034#if 201103L <= YY_CPLUSPLUS
1036 : super_type(
token_type (tok), std::move (l))
1045#if 201103L <= YY_CPLUSPLUS
1047 : super_type(
token_type (tok), std::move (v), std::move (l))
1061#if 201103L <= YY_CPLUSPLUS
1074 virtual int parse ();
1103#if 201103L <= YY_CPLUSPLUS
1118#if 201103L <= YY_CPLUSPLUS
1133#if 201103L <= YY_CPLUSPLUS
1148#if 201103L <= YY_CPLUSPLUS
1163#if 201103L <= YY_CPLUSPLUS
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
2069#if YY_CPLUSPLUS < 201103L
2078 typedef unsigned char state_type;
2081 int yy_syntax_error_arguments_ (
const context& yyctx,
2086 virtual std::string yysyntax_error_ (
const context& yyctx)
const;
2090 static state_type yy_lr_goto_state_ (state_type yystate,
int yysym);
2094 static bool yy_pact_value_is_default_ (
int yyvalue);
2098 static bool yy_table_value_is_error_ (
int yyvalue);
2100 static const short yypact_ninf_;
2101 static const signed char yytable_ninf_;
2109 static std::string yytnamerr_ (
const char *yystr);
2112 static const char*
const yytname_[];
2118 static const short yypact_[];
2123 static const signed char yydefact_[];
2126 static const short yypgoto_[];
2129 static const unsigned char yydefgoto_[];
2134 static const unsigned char yytable_[];
2136 static const unsigned char yycheck_[];
2140 static const signed char yystos_[];
2143 static const signed char yyr1_[];
2146 static const signed char yyr2_[];
2151 static const short yyrline_[];
2153 virtual void yy_reduce_print_ (
int r)
const;
2155 virtual void yy_stack_print_ ()
const;
2160 std::ostream* yycdebug_;
2165 template <
typename Base>
2166 void yy_print_ (std::ostream& yyo,
const basic_symbol<Base>& yysym)
const;
2173 template <
typename Base>
2174 void yy_destroy_ (
const char* yymsg, basic_symbol<Base>& yysym)
const;
2184 typedef state_type kind_type;
2196 void move (by_state& that);
2204 enum { empty_state = 0 };
2212 struct stack_symbol_type : basic_symbol<by_state>
2215 typedef basic_symbol<by_state> super_type;
2217 stack_symbol_type ();
2219 stack_symbol_type (
YY_RVREF (stack_symbol_type) that);
2221 stack_symbol_type (state_type s,
YY_MOVE_REF (symbol_type) sym);
2222#if YY_CPLUSPLUS < 201103L
2225 stack_symbol_type& operator= (stack_symbol_type& that);
2229 stack_symbol_type& operator= (
const stack_symbol_type& that);
2234 template <
typename T,
typename S = std::vector<T> >
2239 typedef typename S::iterator iterator;
2240 typedef typename S::const_iterator const_iterator;
2241 typedef typename S::size_type size_type;
2242 typedef typename std::ptrdiff_t index_type;
2244 stack (size_type n = 200)
2248#if 201103L <= YY_CPLUSPLUS
2250 stack (
const stack&) =
delete;
2252 stack& operator= (
const stack&) =
delete;
2259 operator[] (index_type i)
const
2261 return seq_[size_type (size () - 1 - i)];
2268 operator[] (index_type i)
2270 return seq_[size_type (size () - 1 - i)];
2279 seq_.push_back (T ());
2280 operator[] (0).move (t);
2302 return index_type (seq_.size ());
2309 return seq_.begin ();
2323 slice (
const stack& stack, index_type range)
2329 operator[] (index_type i)
const
2331 return stack_[range_ - i];
2335 const stack& stack_;
2340#if YY_CPLUSPLUS < 201103L
2342 stack (
const stack&);
2344 stack& operator= (
const stack&);
2352 typedef stack<stack_symbol_type> stack_type;
2355 stack_type yystack_;
2362 void yypush_ (
const char* m,
YY_MOVE_REF (stack_symbol_type) sym);
2370 void yypush_ (
const char* m, state_type s,
YY_MOVE_REF (symbol_type) sym);
2373 void yypop_ (
int n = 1);
2391 EvalParser::yytranslate_ (
int t)
2399 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2400 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2401 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2402 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2403 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2404 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2405 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2406 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2407 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2408 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2409 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2410 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2411 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2412 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2413 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2414 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2415 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2416 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2417 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2418 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2419 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2420 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2421 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2422 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2423 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2424 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
2425 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2426 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2427 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2428 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2429 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2430 55, 56, 57, 58, 59, 60, 61, 62
2433 const int code_max = 317;
2437 else if (t <= code_max)
2444 template <
typename Base>
2450 switch (this->kind ())
2502 template <
typename Base>
2506 return this->kind ();
2509 template <
typename Base>
2516 template <
typename Base>
2520 super_type::move (s);
2521 switch (this->kind ())
2578#if 201103L <= YY_CPLUSPLUS
2581 : kind_ (that.kind_)
2589 : kind_ (that.kind_)
2594 : kind_ (yytranslate_ (t))
2623 return this->kind ();
2628#line 2629 "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
A buffer to store and retrieve objects.
long double yyalign_me
Strongest alignment constraints.
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.
T & emplace()
Instantiate an empty T in here.
const T & as() const YY_NOEXCEPT
Const accessor to a built T (for printer).
~semantic_type() YY_NOEXCEPT
Destruction, allowed only if empty.
T & build(const T &t)
Instantiate a T in here from t.
T & emplace(const T &t)
Instantiate a T in here from t.
semantic_type self_type
Type of *this.
void destroy()
Destroy the stored T.
T & as() YY_NOEXCEPT
Accessor to a built T.
semantic_type(YY_RVREF(T) t)
Construct and fill.
T & build()
Instantiate an empty T in here.
semantic_type() YY_NOEXCEPT
Empty construction.
void copy(const self_type &that)
Copy the content of that to this.
Present a slice of the top of a stack.
slice(const stack &stack, index_type range)
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)
token::yytokentype token_kind_type
Token kind, as returned by yylex.
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)
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_ENTERPRISE(const location_type &l)
static symbol_type make_VENDOR(const location_type &l)
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_CAST(Type, Val)
#define YY_MOVE_REF(Type)
#define YY_ATTRIBUTE_PURE
basic_symbol()
Default constructor.
void move(basic_symbol &s)
Destructive move, s is emptied into this.
semantic_type value
The semantic value.
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)
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(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).
by_kind()
Default constructor.
token_kind_type kind_type
The symbol kind as needed by the 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()
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).