Skip to content

Struct zmbt::lang::SignatureBinary

template <Keyword K>

ClassList > zmbt > lang > SignatureBinary

Binary expression. More...

  • #include <api_signatures.hpp>

Inherits the following classes: zmbt::lang::SignatureBase

Public Types inherited from zmbt::lang::ExpressionView

See zmbt::lang::ExpressionView

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

Public Functions

Type Name
Expression operator() (Expression const & param) const
Make parametrized expression.
Expression operator() (Expression && param) const
Expression operator() (std::initializer_list< Expression > param) const
Make parametrized expression with initializer list.

Public Functions inherited from zmbt::lang::SignatureBase

See zmbt::lang::SignatureBase

Type Name
SignatureBase ()

Public Functions inherited from zmbt::lang::Expression

See zmbt::lang::Expression

Type Name
Expression ()
Expression (Encoding && encoding)
Expression (Encoding const & encoding)
Expression (boost::json::value const & expr)
Expression (boost::json::value && expr)
Expression (std::initializer_list< boost::json::value_ref > items)
Expression (T sample)
Expression (Keyword const & keyword)
Expression (ExpressionView const & view)
Expression (Expression const & other)
Expression (Expression && other)
Encoding encoding () const
bool operator!= (Expression v) const
Expression & operator= (Expression const & other)
Expression & operator= (Expression && other)
bool operator== (Expression v) const
~Expression () = default

Public Functions inherited from zmbt::lang::ExpressionView

See zmbt::lang::ExpressionView

Type Name
ExpressionView ()
ExpressionView (ExpressionView const &) = default
ExpressionView (ExpressionView &&) = default
ExpressionView (EncodingView v)
ExpressionView (Encoding enc)
boost::json::array const & as_array () const
bool as_bool () const
boost::json::object const & as_object () const
boost::json::string const & as_string () const
boost::json::value const & data () const
EncodingView encoding_view () const
boost::json::value eval (boost::json::value const & x=nullptr, EvalContext ctx={}) const
Evaluate expression.
bool eval_as_predicate (ExpressionView const & x, Expression & err_sts, EvalContext ctx) const
bool eval_as_predicate (boost::json::value const & x, Expression & err_sts, EvalContext ctx) const
Expression eval_e (ExpressionView const & x, EvalContext ctx) const
Evaluate expression.
Expression eval_maybe_predicate (ExpressionView const & x, EvalContext ctx) const
bool has_subexpr () const
boost::json::array const * if_array () const
bool const * if_bool () const
boost::json::object const * if_object () const
boost::json::string const * if_string () const
bool is (Keyword const kwrd) const
bool is_boolean () const
bool is_complete_flip () const
bool is_compose () const
bool is_const () const
bool is_error () const
bool is_fork () const
bool is_infix_fork () const
bool is_infix_pipe () const
bool is_infix_tuple () const
bool is_link () const
bool is_literal () const
bool is_noop () const
bool is_null () const
bool is_preproc () const
bool is_tuple () const
bool is_valid_link () const
Keyword keyword () const
boost::json::string_view keyword_to_str () const
bool match (boost::json::value const & x, Operator const & op={}) const
Eval and cast to boolean, return false on error.
bool operator!= (ExpressionView const & o) const
ExpressionView & operator= (ExpressionView const &) = default
ExpressionView & operator= (ExpressionView &&) = default
bool operator== (ExpressionView const & o) const
std::list< std::pair< std::string, std::string > > preprocessing_parameters () const
List of [param, json ptr].
std::string prettify () const
std::ostream & prettify_to (std::ostream & os) const
void prettify_to (char(&) buff) const
void prettify_to (char * buff, std::size_t n) const
std::string serialize () const
std::list< ExpressionView > subexpressions_list () const
Subexpressions.
boost::json::value to_json () const
std::list< ExpressionView > tuple_parameters () const
virtual ~ExpressionView () = default

Public Static Functions inherited from zmbt::lang::Expression

See zmbt::lang::Expression

Type Name
Encoding encodeLiteral (boost::json::value const & params)
Encoding encodeNested (Keyword const & keyword, std::initializer_list< Expression > subexpressions)
Encoding encodeNested (Keyword const & keyword, std::vector< Expression > && subexpressions)
Encoding encodePreProc (boost::json::value const & params)
bool to_predicate_if_const (Expression & e)

Protected Attributes inherited from zmbt::lang::ExpressionView

See zmbt::lang::ExpressionView

Type Name
EncodingView encoding_view_

Detailed Description

Template parameters:

  • K keyword
Syntactic forms

Syntatic forms over operator *: * * *

The second form is used in place of first for expressions that have default value defined, see documentation for specific expression.

In the third form the expression parameter is used as the right-hand side operand.

Public Functions Documentation

function operator() [1/3]

Make parametrized expression.

inline Expression zmbt::lang::SignatureBinary::operator() (
    Expression const & param
) const


function operator() [2/3]

inline Expression zmbt::lang::SignatureBinary::operator() (
    Expression && param
) const

function operator() [3/3]

Make parametrized expression with initializer list.

inline Expression zmbt::lang::SignatureBinary::operator() (
    std::initializer_list< Expression > param
) const

Interpret {x} as single-element array instead of using default boost::json::value ctor



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