Kea 2.5.8
isc::dhcp::ExpressionParser Class Reference

Parser for a logical expression. More...

#include <client_class_def_parser.h>

+ Inheritance diagram for isc::dhcp::ExpressionParser:

Public Member Functions

void parse (ExpressionPtr &expression, isc::data::ConstElementPtr expression_cfg, uint16_t family, isc::eval::EvalContext::CheckDefined check_defined=isc::eval::EvalContext::acceptAll, isc::eval::EvalContext::ParserType parser_type=isc::eval::EvalContext::PARSER_BOOL)
 Parses an expression configuration element into an Expression.
 
- Public Member Functions inherited from isc::data::SimpleParser
uint16_t getUint16 (isc::data::ConstElementPtr scope, const std::string &name)
 Returns a value converted to uint16_t.
 
uint32_t getUint32 (isc::data::ConstElementPtr scope, const std::string &name)
 Returns a value converted to uint32_t.
 
uint8_t getUint8 (ConstElementPtr scope, const std::string &name)
 Get an uint8_t value.
 
const isc::util::Triplet< uint32_t > parseIntTriplet (const data::ConstElementPtr &scope, const std::string &name)
 Parses an integer triplet.
 

Additional Inherited Members

- Static Public Member Functions inherited from isc::data::SimpleParser
static void checkKeywords (const SimpleKeywords &keywords, isc::data::ConstElementPtr scope)
 Checks acceptable keywords with their expected type.
 
static void checkRequired (const SimpleRequiredKeywords &required, isc::data::ConstElementPtr scope)
 Checks that all required keywords are present.
 
static size_t deriveParams (isc::data::ConstElementPtr parent, isc::data::ElementPtr child, const ParamsList &params)
 Derives (inherits) parameters from parent scope to a child.
 
static isc::asiolink::IOAddress getAddress (const ConstElementPtr &scope, const std::string &name)
 Returns a IOAddress parameter from a scope.
 
static bool getBoolean (isc::data::ConstElementPtr scope, const std::string &name)
 Returns a boolean parameter from a scope.
 
static double getDouble (const ConstElementPtr &scope, const std::string &name)
 Returns a floating point parameter from a scope.
 
static int64_t getInteger (isc::data::ConstElementPtr scope, const std::string &name)
 Returns an integer parameter from a scope.
 
static int64_t getInteger (isc::data::ConstElementPtr scope, const std::string &name, int64_t min, int64_t max)
 Returns an integer parameter from a scope and checks its range.
 
static const data::Element::PositiongetPosition (const std::string &name, const data::ConstElementPtr parent)
 Utility method that returns position of an element.
 
static std::string getString (isc::data::ConstElementPtr scope, const std::string &name)
 Returns a string parameter from a scope.
 
static size_t setDefaults (isc::data::ElementPtr scope, const SimpleDefaults &default_values)
 Sets the default values.
 
static size_t setListDefaults (isc::data::ConstElementPtr list, const SimpleDefaults &default_values)
 Sets the default values for all entries in a list.
 
- Protected Member Functions inherited from isc::data::SimpleParser
template<typename target_type , target_type convert>
target_type getAndConvert (isc::data::ConstElementPtr scope, const std::string &name, const std::string &type_name)
 Returns a converted value from a scope.
 
template<typename int_type >
int_type getIntType (isc::data::ConstElementPtr scope, const std::string &name)
 Returns an integer value with range checking from a scope.
 

Detailed Description

Parser for a logical expression.

This parser creates an instance of an Expression from a string. The string is passed to the Eval Parser and the resultant Expression is stored into the ExpressionPtr reference passed into the constructor.

Definition at line 63 of file client_class_def_parser.h.

Member Function Documentation

◆ parse()

void isc::dhcp::ExpressionParser::parse ( ExpressionPtr expression,
isc::data::ConstElementPtr  expression_cfg,
uint16_t  family,
isc::eval::EvalContext::CheckDefined  check_defined = isc::eval::EvalContext::acceptAll,
isc::eval::EvalContext::ParserType  parser_type = isc::eval::EvalContext::PARSER_BOOL 
)

Parses an expression configuration element into an Expression.

Parameters
expressionvariable in which to store the new expression
expression_cfgthe configuration entry to be parsed.
familythe address family of the expression.
check_defineda closure to check if a client class is defined.
parser_typethe expected type of the evaluated expression.
Exceptions
DhcpConfigErrorif parsing was unsuccessful.

Definition at line 37 of file client_class_def_parser.cc.

References isc::eval::EvalContext::expression, isc_throw, isc::eval::EvalContext::PARSER_STRING, isc::eval::EvalContext::parseString(), isc::data::Element::string, isc::dhcp::Option::V4, isc::dhcp::Option::V6, and isc::Exception::what().

Referenced by isc::dhcp::ClientClassDictionary::initMatchExpr(), and isc::dhcp::ClientClassDefParser::parse().

+ Here is the call graph for this function:

The documentation for this class was generated from the following files: