Skip to content

File keyword.hpp

File List > backends > cxx > include > zmbt > model > keyword.hpp

Go to the documentation of this file

#ifndef ZMBT_MODEL_KEYWORD_HPP_
#define ZMBT_MODEL_KEYWORD_HPP_

#include <boost/json.hpp>

#include "zmbt/reflect.hpp"

#ifndef ZMBT_KEYWORD_PREFIX
    #define ZMBT_KEYWORD_PREFIX ":"
#endif


namespace zmbt {
namespace dsl {


enum class Keyword
{
    Undefined,

    Literal,

    Void,

    Noop,

    Null,

    True,

    False,

    Pi,

    E,

    Inf,

    Eps,

    NaN,

    Thread,

    Sin,

    Cos,

    Tan,

    Asin,

    Acos,

    Atan,

    Sinh,

    Cosh,

    Tanh,

    Asinh,

    Acosh,

    Atanh,

    Exp,

    Erf,

    Erfc,

    Gamma,

    Abs,

    Ceil,

    Floor,

    Round,

    Sqrt,

    Sign,

    Neg,

    Add,

    Sub,

    Mul,

    Div,

    Pow,

    Log,

    Mod,

    Quot,

    BitNot,

    BitAnd,

    BitOr,

    BitXor,

    BitLshift,

    BitRshift,

    Eq,

    Ne,

    Lt,

    Le,

    Gt,

    Ge,

    Approx,

    Union,

    Intersect,

    Diff,

    SetEq,

    Subset,

    Superset,

    ProperSubset,

    ProperSuperset,

    In,

    NotIn,

    Ni,

    NotNi,

    Bool,

    Nil,

    Not,

    And,

    Or,

    Id,

    Transp,

    Cartesian,

    Reverse,

    Uniques,

    Items,

    Keys,

    Values,

    Enumerate,

    Flatten,

    ToList,

    Arange,

    Parse,

    Serialize,

    Re,

    Format,

    Card,

    Size,

    Sum,

    Prod,

    Avg,

    Slide,

    Stride,

    Chunks,

    Repeat,

    Concat,

    Push,

    At,

    Lookup,

    C,

    Reduce,

    Map,

    Filter,

    Count,

    Each,

    Sort,

    Min,

    Max,

    Argmin,

    Argmax,

    Apply,

    Recur,

    Unfold,

    Bind,

    Any,

    All,

    Saturate,

    Compose,

    Pack,

    Flip,

    Default,

    Try,

    TryCatch,

    _count
};

namespace detail
{
bool isBinary(Keyword const& k);
} // namespace detail


} // namespace dsl
} // namespace zmbt



#endif // ZMBT_MODEL_KEYWORD_HPP_