17 isc::eval::EvalParser::symbol_type evallex (EvalContext& driver) 55 CheckDefined check_defined = acceptAll);
64 static bool acceptAll(
const ClientClass& client_class);
72 void scanStringBegin(ParserType type);
82 bool parseString(
const std::string& str, ParserType type = PARSER_BOOL);
95 static void error(
const isc::eval::location& loc,
const std::string&
what);
101 static void error(
const std::string&
what);
106 static void fatal(
const std::string&
what);
115 uint16_t convertOptionCode(
const std::string& option_code,
116 const isc::eval::location& loc);
124 uint16_t convertOptionName(
const std::string& option_name,
125 const isc::eval::location& loc);
135 static uint32_t convertUint32(
const std::string& number,
136 const isc::eval::location& loc);
144 static int32_t convertInt32(
const std::string& number,
145 const isc::eval::location& loc);
155 static uint16_t convertUint16(
const std::string& number,
156 const isc::eval::location& loc);
164 static int16_t convertInt16(
const std::string& number,
165 const isc::eval::location& loc);
173 static uint8_t convertUint8(
const std::string& number,
174 const isc::eval::location& loc);
182 static int8_t convertInt8(
const std::string& number,
183 const isc::eval::location& loc);
192 int8_t convertNestLevelNumber(
const std::string& nest_level,
193 const isc::eval::location& loc);
203 static std::string fromUint32(
const uint32_t integer);
213 static std::string fromUint16(
const uint16_t integer);
219 return (option_universe_);
230 bool trace_scanning_;
242 CheckDefined check_defined_;
Forward declaration of the EvalContext class.
Option::Universe getUniverse()
Returns the universe (v4 or v6)
Evaluation error exception raised when trying to parse an exceptions.
isc::dhcp::Expression expression
Parsed expression (output tokens are stored here)
Universe
defines option universe DHCPv4 or DHCPv6
EvalParseError(const char *file, size_t line, const char *what)
virtual const char * what() const
Returns a C-style character string of the cause of the exception.
expression is expected to evaluate to bool
bool isClientClassDefined(ClientClassDictionaryPtr &class_dictionary, bool &depend_on_known, const ClientClass &client_class)
Check if a client class name is already defined, i.e.
std::string string_
The string being parsed.
Define the isc::eval::parser class.
Evaluation context, an interface to the expression evaluation.
std::string file_
The name of the file being parsed.
This is a base class for exceptions thrown from the DNS library module.
Defines the logger used by the top-level component of kea-lfc.
std::vector< TokenPtr > Expression
This is a structure that holds an expression converted to RPN.
ParserType
Specifies what type of expression the parser is expected to see.
std::string ClientClass
Defines a single class name.
std::function< bool(const ClientClass &)> CheckDefined
Type of the check defined function.