Class zmbt::lang::Expression¶
ClassList > zmbt > lang > Expression
#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¶
typedef V¶
Public Functions Documentation¶
function Expression [4/11]¶
function Expression [5/11]¶
function Expression [6/11]¶
function Expression [7/11]¶
function Expression [8/11]¶
function Expression [9/11]¶
function Expression [10/11]¶
function Expression [11/11]¶
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 argumentconfig
evaluation config
Returns:
function has_params¶
function is¶
function is_boolean¶
function is_const¶
function is_hiord¶
function is_literal¶
function is_noop¶
function keyword¶
function match¶
bool zmbt::lang::Expression::match (
boost::json::value const & observed,
Operator const & op={}
) const
function operator!=¶
function operator=¶
function operator=¶
function operator==¶
function params¶
function serialize¶
function subexpr¶
function underlying¶
function ~Expression¶
Public Static Functions Documentation¶
function asPredicate¶
Return const expressions as Eq(underlying), except for Noop, otherwise return Expression(underlying) unchanged
Friends Documentation¶
friend operator&¶
Pack expression results into an array.
See also: zmbt::expr::Fork.
friend operator*¶
Evaluate x to lhs expression.
Equivalent to expr.eval(x).
friend operator*¶
Evaluate expression.
Equivalent to expr.eval().
friend operator|¶
Compose expressions left-to-right.
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