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¶
Public Functions Documentation¶
function Operator [2/7]¶
Default operator with generic transforms.
function Operator [3/7]¶
Operator with T as type decorator.
function Operator [4/7]¶
Operator with T as type decorator.
function Operator [5/7]¶
Retrieve registered operator instance if it exists, throw otherwise.
function Operator [6/7]¶
function Operator [7/7]¶
function annotation¶
decorated type name
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.
function is_truth¶
Is true.
function operator=¶
function operator=¶
function undecorate¶
Reserialize as decorated type.
function ~Operator¶
Public Static Functions Documentation¶
function generic_bit_and¶
function generic_bit_or¶
function generic_bit_xor¶
function generic_complement¶
function generic_decorate¶
function generic_divides¶
function generic_equal_to¶
function generic_is_truth¶
function generic_left_shift¶
function generic_less¶
function generic_less_equal¶
function generic_log¶
function generic_logical_and¶
function generic_logical_not¶
function generic_logical_or¶
function generic_minus¶
function generic_modulus¶
function generic_multiplies¶
function generic_negate¶
function generic_plus¶
function generic_pow¶
function generic_quot¶
function generic_right_shift¶
function generic_undecorate¶
The documentation for this class was generated from the following file zmbt-framework/zmbt-framework/backends/cxx/include/zmbt/expr/operator.hpp