Skip to content

Class zmbt::lang::Expression

ClassList > zmbt > lang > Expression

More...

  • #include <expression.hpp>

Inherited by the following classes: zmbt::lang::SignatureBase, zmbt::lang::SignatureBase

Classes

Type Name
struct EvalContext
Expression evaluation context.
struct EvalLog
Expression evaluation log.

Public Types

Type Name
typedef lang::Keyword Keyword
typedef boost::json::value V

Public Functions

Type Name
Expression (std::initializer_list< boost::json::value_ref > items)
Expression (boost::json::value const & expr)
Expression (Keyword const & keyword, boost::json::value const & params)
Expression (Keyword const & keyword)
Expression ()
Expression (T const & sample)
Expression (Expression const & o)
Expression (Expression && o)
boost::json::value eval (boost::json::value const & x=nullptr, EvalContext const & ctx={}) const
Evaluate expression.
bool has_params () const
bool is (Keyword const kwrd) const
bool is_boolean () const
bool is_const () const
bool is_hiord () const
bool is_literal () const
bool is_noop () const
Keyword keyword () const
bool match (boost::json::value const & observed, Operator const & op={}) const
bool operator!= (Expression const & o) const
Expression & operator= (Expression const & o)
Expression & operator= (Expression && o)
bool operator== (Expression const & o) const
boost::json::value const & params () const
boost::json::value const & serialize () const
boost::json::value const & subexpr () const
boost::json::value const & underlying () const
~Expression () = default

Public Static Functions

Type Name
Expression asPredicate (boost::json::value const & underlying)

Detailed Description

Expression Language implementation class.

See also: Expression Language documentation.

Public Types Documentation

typedef Keyword

using zmbt::lang::Expression::Keyword =  lang::Keyword;

typedef V

using zmbt::lang::Expression::V =  boost::json::value;

Public Functions Documentation

function Expression [4/11]

zmbt::lang::Expression::Expression (
    std::initializer_list< boost::json::value_ref > items
) 

function Expression [5/11]

zmbt::lang::Expression::Expression (
    boost::json::value const & expr
) 

function Expression [6/11]

zmbt::lang::Expression::Expression (
    Keyword const & keyword,
    boost::json::value const & params
) 

function Expression [7/11]

explicit zmbt::lang::Expression::Expression (
    Keyword const & keyword
) 

function Expression [8/11]

zmbt::lang::Expression::Expression () 

function Expression [9/11]

template<class T>
inline zmbt::lang::Expression::Expression (
    T const & sample
) 

function Expression [10/11]

zmbt::lang::Expression::Expression (
    Expression const & o
) 

function Expression [11/11]

zmbt::lang::Expression::Expression (
    Expression && o
) 

function eval

Evaluate expression.

boost::json::value zmbt::lang::Expression::eval (
    boost::json::value const & x=nullptr,
    EvalContext const & ctx={}
) const

Parameters:

  • x run-time argument
  • config evaluation config

Returns:


function has_params

inline bool zmbt::lang::Expression::has_params () const

function is

inline bool zmbt::lang::Expression::is (
    Keyword const kwrd
) const

function is_boolean

bool zmbt::lang::Expression::is_boolean () const

function is_const

bool zmbt::lang::Expression::is_const () const

function is_hiord

bool zmbt::lang::Expression::is_hiord () const

function is_literal

inline bool zmbt::lang::Expression::is_literal () const

function is_noop

inline bool zmbt::lang::Expression::is_noop () const

function keyword

inline Keyword zmbt::lang::Expression::keyword () const

function match

bool zmbt::lang::Expression::match (
    boost::json::value const & observed,
    Operator const & op={}
) const

function operator!=

inline bool zmbt::lang::Expression::operator!= (
    Expression const & o
) const

function operator=

Expression & zmbt::lang::Expression::operator= (
    Expression const & o
) 

function operator=

Expression & zmbt::lang::Expression::operator= (
    Expression && o
) 

function operator==

inline bool zmbt::lang::Expression::operator== (
    Expression const & o
) const

function params

inline boost::json::value const & zmbt::lang::Expression::params () const

function serialize

inline boost::json::value const & zmbt::lang::Expression::serialize () const

function subexpr

inline boost::json::value const & zmbt::lang::Expression::subexpr () const

function underlying

inline boost::json::value const & zmbt::lang::Expression::underlying () const

function ~Expression

zmbt::lang::Expression::~Expression () = default

Public Static Functions Documentation

function asPredicate

static Expression zmbt::lang::Expression::asPredicate (
    boost::json::value const & underlying
) 

Return const expressions as Eq(underlying), except for Noop, otherwise return Expression(underlying) unchanged


Friends Documentation

friend operator&

Pack expression results into an array.

Expression zmbt::lang::Expression::operator& (
    Expression const & lhs,
    Expression const & rhs
) 

See also: zmbt::expr::Fork.


friend operator*

Evaluate x to lhs expression.

V zmbt::lang::Expression::operator* (
    Expression const & expr,
    Expression const & x
) 

Equivalent to expr.eval(x).


friend operator*

Evaluate expression.

V zmbt::lang::Expression::operator* (
    Expression const & expr
) 

Equivalent to expr.eval().


friend operator|

Compose expressions left-to-right.

Expression zmbt::lang::Expression::operator| (
    Expression const & lhs,
    Expression const & rhs
) 

Pipe functional expressions in composition, s.t. a | b is equivalent to Compose(b, a).

See also: zmbt::expr::Compose



The documentation for this class was generated from the following file zmbt-framework/zmbt-framework/backends/cxx/include/zmbt/expr/expression.hpp