nil::crypto3::math::expressions::detail::parser Namespace Reference

Classes

struct  additive_op_
 
struct  bfunc_
 
struct  constant_
 
struct  equality_op_
 
struct  logical_op_
 
struct  multiplicative_op_
 
struct  power_
 
struct  relational_op_
 
struct  ufunc_
 
struct  unary_op_
 

Typedefs

using context_type = x3::phrase_parse_context< x3::ascii::space_type >::type
 
using expression_type = x3::rule< expression_class, ast::expression >
 
using iterator_type = std::string::const_iterator
 

Functions

 BOOST_SPIRIT_DEFINE (expression, logical, equality, relational, additive, multiplicative, factor, primary, unary, binary, variable) struct expression_class
 

Variables

auto const additive = x3::rule<additive_class , ast::expression>{"additive"}
 
auto const additive_def
 
nil::crypto3::math::expressions::detail::parser::additive_op_ additive_op
 
nil::crypto3::math::expressions::detail::parser::bfunc_ bfunc
 
auto const binary = x3::rule<binary_class , ast::binary_op >{"binary"}
 
auto const binary_def
 
nil::crypto3::math::expressions::detail::parser::constant_ constant
 
auto const equality = x3::rule<equality_class , ast::expression>{"equality"}
 
auto const equality_def
 
nil::crypto3::math::expressions::detail::parser::equality_op_ equality_op
 
auto const expression = x3::rule<expression_class , ast::expression>{"expression"}
 
auto const expression_def
 
auto const factor = x3::rule<factor_class , ast::expression>{"factor"}
 
auto const factor_def
 
auto const logical = x3::rule<logical_class , ast::expression>{"logical"}
 
auto const logical_def
 
nil::crypto3::math::expressions::detail::parser::logical_op_ logical_op
 
auto const multiplicative = x3::rule<multiplicative_class, ast::expression>{"multiplicative"}
 
auto const multiplicative_def
 
nil::crypto3::math::expressions::detail::parser::multiplicative_op_ multiplicative_op
 
nil::crypto3::math::expressions::detail::parser::power_ power
 
auto const primary = x3::rule<primary_class , ast::operand >{"primary"}
 
auto const primary_def
 
auto const relational = x3::rule<relational_class , ast::expression>{"relational"}
 
auto const relational_def
 
nil::crypto3::math::expressions::detail::parser::relational_op_ relational_op
 
nil::crypto3::math::expressions::detail::parser::ufunc_ ufunc
 
auto const unary = x3::rule<unary_class , ast::unary_op >{"unary"}
 
auto const unary_def
 
nil::crypto3::math::expressions::detail::parser::unary_op_ unary_op
 
auto const variable = x3::rule<variable_class , std::string >{"variable"}
 
auto const variable_def
 

Typedef Documentation

◆ context_type

using nil::crypto3::math::expressions::detail::parser::context_type = typedef x3::phrase_parse_context<x3::ascii::space_type>::type

◆ expression_type

◆ iterator_type

using nil::crypto3::math::expressions::detail::parser::iterator_type = typedef std::string::const_iterator

Function Documentation

◆ BOOST_SPIRIT_DEFINE()

nil::crypto3::math::expressions::detail::parser::BOOST_SPIRIT_DEFINE ( expression  ,
logical  ,
equality  ,
relational  ,
additive  ,
multiplicative  ,
factor  ,
primary  ,
unary  ,
binary  ,
variable   
)

Variable Documentation

◆ additive

auto const nil::crypto3::math::expressions::detail::parser::additive = x3::rule<additive_class , ast::expression>{"additive"}

◆ additive_def

auto const nil::crypto3::math::expressions::detail::parser::additive_def
Initial value:
=
auto const multiplicative
Definition: parser_def.hpp:223
nil::crypto3::math::expressions::detail::parser::additive_op_ additive_op

◆ additive_op

nil::crypto3::math::expressions::detail::parser::additive_op_ nil::crypto3::math::expressions::detail::parser::additive_op

◆ bfunc

nil::crypto3::math::expressions::detail::parser::bfunc_ nil::crypto3::math::expressions::detail::parser::bfunc

◆ binary

auto const nil::crypto3::math::expressions::detail::parser::binary = x3::rule<binary_class , ast::binary_op >{"binary"}

◆ binary_def

auto const nil::crypto3::math::expressions::detail::parser::binary_def
Initial value:
=
bfunc > '(' > expression > ',' > expression > ')'
nil::crypto3::math::expressions::detail::parser::bfunc_ bfunc

◆ constant

nil::crypto3::math::expressions::detail::parser::constant_ nil::crypto3::math::expressions::detail::parser::constant

◆ equality

auto const nil::crypto3::math::expressions::detail::parser::equality = x3::rule<equality_class , ast::expression>{"equality"}

◆ equality_def

auto const nil::crypto3::math::expressions::detail::parser::equality_def
Initial value:
=
auto const relational
Definition: parser_def.hpp:221
nil::crypto3::math::expressions::detail::parser::equality_op_ equality_op

◆ equality_op

nil::crypto3::math::expressions::detail::parser::equality_op_ nil::crypto3::math::expressions::detail::parser::equality_op

◆ expression

auto const nil::crypto3::math::expressions::detail::parser::expression = x3::rule<expression_class , ast::expression>{"expression"}

◆ expression_def

auto const nil::crypto3::math::expressions::detail::parser::expression_def
Initial value:
=
auto const logical
Definition: parser_def.hpp:219

◆ factor

auto const nil::crypto3::math::expressions::detail::parser::factor = x3::rule<factor_class , ast::expression>{"factor"}

◆ factor_def

auto const nil::crypto3::math::expressions::detail::parser::factor_def
Initial value:
=
primary >> *( power > factor )
nil::crypto3::math::expressions::detail::parser::power_ power
auto const factor
Definition: parser_def.hpp:224
auto const primary
Definition: parser_def.hpp:225

◆ logical

auto const nil::crypto3::math::expressions::detail::parser::logical = x3::rule<logical_class , ast::expression>{"logical"}

◆ logical_def

auto const nil::crypto3::math::expressions::detail::parser::logical_def
Initial value:
=
nil::crypto3::math::expressions::detail::parser::logical_op_ logical_op
auto const equality
Definition: parser_def.hpp:220

◆ logical_op

nil::crypto3::math::expressions::detail::parser::logical_op_ nil::crypto3::math::expressions::detail::parser::logical_op

◆ multiplicative

auto const nil::crypto3::math::expressions::detail::parser::multiplicative = x3::rule<multiplicative_class, ast::expression>{"multiplicative"}

◆ multiplicative_def

auto const nil::crypto3::math::expressions::detail::parser::multiplicative_def
Initial value:
=
nil::crypto3::math::expressions::detail::parser::multiplicative_op_ multiplicative_op

◆ multiplicative_op

nil::crypto3::math::expressions::detail::parser::multiplicative_op_ nil::crypto3::math::expressions::detail::parser::multiplicative_op

◆ power

nil::crypto3::math::expressions::detail::parser::power_ nil::crypto3::math::expressions::detail::parser::power

◆ primary

auto const nil::crypto3::math::expressions::detail::parser::primary = x3::rule<primary_class , ast::operand >{"primary"}

◆ primary_def

auto const nil::crypto3::math::expressions::detail::parser::primary_def
Initial value:
=
x3::double_
| ('(' > expression > ')')
auto const unary
Definition: parser_def.hpp:226
auto const binary
Definition: parser_def.hpp:227
auto const variable
Definition: parser_def.hpp:228
nil::crypto3::math::expressions::detail::parser::constant_ constant

◆ relational

auto const nil::crypto3::math::expressions::detail::parser::relational = x3::rule<relational_class , ast::expression>{"relational"}

◆ relational_def

auto const nil::crypto3::math::expressions::detail::parser::relational_def
Initial value:
=
nil::crypto3::math::expressions::detail::parser::relational_op_ relational_op
auto const additive
Definition: parser_def.hpp:222

◆ relational_op

nil::crypto3::math::expressions::detail::parser::relational_op_ nil::crypto3::math::expressions::detail::parser::relational_op

◆ ufunc

nil::crypto3::math::expressions::detail::parser::ufunc_ nil::crypto3::math::expressions::detail::parser::ufunc

◆ unary

auto const nil::crypto3::math::expressions::detail::parser::unary = x3::rule<unary_class , ast::unary_op >{"unary"}

◆ unary_def

auto const nil::crypto3::math::expressions::detail::parser::unary_def
Initial value:
=
ufunc > '(' > expression > ')'
nil::crypto3::math::expressions::detail::parser::ufunc_ ufunc

◆ unary_op

nil::crypto3::math::expressions::detail::parser::unary_op_ nil::crypto3::math::expressions::detail::parser::unary_op

◆ variable

auto const nil::crypto3::math::expressions::detail::parser::variable = x3::rule<variable_class , std::string >{"variable"}

◆ variable_def

auto const nil::crypto3::math::expressions::detail::parser::variable_def
Initial value:
=
x3::raw[x3::lexeme[x3::alpha >> *(x3::alnum | '_')]]