Skip to content

Class zmbt::lang::Operator

ClassList > zmbt > lang > Operator

Signal transformation and comparison handler. Enables type erasure.

  • #include <operator.hpp>

Public Types

Type Name
enum std::uint32_t Config
typedef boost::json::value V

Public Functions

Type Name
Operator ()
Default operator with generic transforms.
Operator (type_tag< T > tag, Config const cfg)
Operator with T as type decorator.
Operator (type_tag< T > tag)
Operator with T as type decorator.
Operator (boost::json::string_view annotation)
Retrieve registered operator instance if it exists, throw otherwise.
Operator (Operator const &) = default
Operator (Operator &&) = default
boost::json::string annotation () const
decorated type name
boost::json::value apply (lang::Keyword const & keyword, boost::json::value const & lhs, boost::json::value const & rhs) const
Apply operands.
boost::json::value decorate (boost::json::value const & a) const
Reserialize as decorated type.
bool is_truth (boost::json::value const & a) const
Is true.
Operator & operator= (Operator const &) = default
Operator & operator= (Operator &&) = default
boost::json::value undecorate (boost::json::value const & a) const
Reserialize as decorated type.
virtual ~Operator () = default

Public Static Functions

Type Name
V generic_bit_and (V const &, V const &)
V generic_bit_or (V const &, V const &)
V generic_bit_xor (V const &, V const &)
V generic_complement (V const &)
V generic_decorate (V const & a)
V generic_divides (V const &, V const &)
bool generic_equal_to (V const &, V const &)
bool generic_is_truth (V const & a)
V generic_left_shift (V const &, V const &)
bool generic_less (V const &, V const &)
bool generic_less_equal (V const &, V const &)
V generic_log (V const &, V const &)
V generic_logical_and (V const &, V const &)
bool generic_logical_not (V const &)
V generic_logical_or (V const &, V const &)
V generic_minus (V const &, V const &)
V generic_modulus (V const &, V const &)
V generic_multiplies (V const &, V const &)
V generic_negate (V const &)
V generic_plus (V const &, V const &)
V generic_pow (V const &, V const &)
V generic_quot (V const &, V const &)
V generic_right_shift (V const &, V const &)
V generic_undecorate (V const & a)

Public Types Documentation

enum Config

enum zmbt::lang::Operator::Config {
    Null,
    Decor = 1U << 0,
    Comparison = 1U << 1,
    Arithmetics = 1U << 2,
    Bitwise = 1U << 3,
    Shift = 1U << 4,
    Logic = 1U << 5,
    Default = Decor|Comparison|Arithmetics|Bitwise|Shift,
    Full = Default|Logic
};

typedef V

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

Public Functions Documentation

function Operator [2/7]

Default operator with generic transforms.

zmbt::lang::Operator::Operator () 


function Operator [3/7]

Operator with T as type decorator.

template<class T>
inline zmbt::lang::Operator::Operator (
    type_tag < T > tag,
    Config const cfg
) 


function Operator [4/7]

Operator with T as type decorator.

template<class T>
inline zmbt::lang::Operator::Operator (
    type_tag < T > tag
) 


function Operator [5/7]

Retrieve registered operator instance if it exists, throw otherwise.

zmbt::lang::Operator::Operator (
    boost::json::string_view annotation
) 


function Operator [6/7]

zmbt::lang::Operator::Operator (
    Operator const &
) = default

function Operator [7/7]

zmbt::lang::Operator::Operator (
    Operator &&
) = default

function annotation

decorated type name

inline boost::json::string zmbt::lang::Operator::annotation () const


function apply

Apply operands.

boost::json::value zmbt::lang::Operator::apply (
    lang::Keyword const & keyword,
    boost::json::value const & lhs,
    boost::json::value const & rhs
) const

For unary operators, lhs is nullptr


function decorate

Reserialize as decorated type.

inline boost::json::value zmbt::lang::Operator::decorate (
    boost::json::value const & a
) const


function is_truth

Is true.

inline bool zmbt::lang::Operator::is_truth (
    boost::json::value const & a
) const


function operator=

Operator & zmbt::lang::Operator::operator= (
    Operator const &
) = default

function operator=

Operator & zmbt::lang::Operator::operator= (
    Operator &&
) = default

function undecorate

Reserialize as decorated type.

inline boost::json::value zmbt::lang::Operator::undecorate (
    boost::json::value const & a
) const


function ~Operator

virtual zmbt::lang::Operator::~Operator () = default

Public Static Functions Documentation

function generic_bit_and

static V zmbt::lang::Operator::generic_bit_and (
    V const &,
    V const &
) 

function generic_bit_or

static V zmbt::lang::Operator::generic_bit_or (
    V const &,
    V const &
) 

function generic_bit_xor

static V zmbt::lang::Operator::generic_bit_xor (
    V const &,
    V const &
) 

function generic_complement

static V zmbt::lang::Operator::generic_complement (
    V const &
) 

function generic_decorate

static V zmbt::lang::Operator::generic_decorate (
    V const & a
) 

function generic_divides

static V zmbt::lang::Operator::generic_divides (
    V const &,
    V const &
) 

function generic_equal_to

static bool zmbt::lang::Operator::generic_equal_to (
    V const &,
    V const &
) 

function generic_is_truth

static bool zmbt::lang::Operator::generic_is_truth (
    V const & a
) 

function generic_left_shift

static V zmbt::lang::Operator::generic_left_shift (
    V const &,
    V const &
) 

function generic_less

static bool zmbt::lang::Operator::generic_less (
    V const &,
    V const &
) 

function generic_less_equal

static bool zmbt::lang::Operator::generic_less_equal (
    V const &,
    V const &
) 

function generic_log

static V zmbt::lang::Operator::generic_log (
    V const &,
    V const &
) 

function generic_logical_and

static V zmbt::lang::Operator::generic_logical_and (
    V const &,
    V const &
) 

function generic_logical_not

static bool zmbt::lang::Operator::generic_logical_not (
    V const &
) 

function generic_logical_or

static V zmbt::lang::Operator::generic_logical_or (
    V const &,
    V const &
) 

function generic_minus

static V zmbt::lang::Operator::generic_minus (
    V const &,
    V const &
) 

function generic_modulus

static V zmbt::lang::Operator::generic_modulus (
    V const &,
    V const &
) 

function generic_multiplies

static V zmbt::lang::Operator::generic_multiplies (
    V const &,
    V const &
) 

function generic_negate

static V zmbt::lang::Operator::generic_negate (
    V const &
) 

function generic_plus

static V zmbt::lang::Operator::generic_plus (
    V const &,
    V const &
) 

function generic_pow

static V zmbt::lang::Operator::generic_pow (
    V const &,
    V const &
) 

function generic_quot

static V zmbt::lang::Operator::generic_quot (
    V const &,
    V const &
) 

function generic_right_shift

static V zmbt::lang::Operator::generic_right_shift (
    V const &,
    V const &
) 

function generic_undecorate

static V zmbt::lang::Operator::generic_undecorate (
    V const & a
) 


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