Skip to content

File keyword.hpp

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

Go to the documentation of this file

#ifndef ZMBT_EXPR_KEYWORD_HPP_
#define ZMBT_EXPR_KEYWORD_HPP_

#include <boost/json.hpp>

#include "zmbt/reflect.hpp"


namespace zmbt {
namespace lang {


enum class Keyword
{
    Undefined,

    Literal,

    Void,

    LazyToken,

    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,

    Lshift,

    Rshift,

    Eq,

    Ne,

    Lt,

    Le,

    Gt,

    Ge,

    Near,

    Union,

    Intersect,

    Diff,

    SetEq,

    Subset,

    Superset,

    PSubset,

    PSuperset,

    In,

    NotIn,

    Ni,

    NotNi,

    Bool,

    Not,

    And,

    Or,

    Id,

    Transp,

    Cartesian,

    Reverse,

    Uniques,

    Items,

    Keys,

    Values,

    Enumerate,

    Flatten,

    ToList,

    Arange,

    Parse,

    Str,

    Re,

    Fmt,

    Card,

    Size,

    Sum,

    Prod,

    Avg,

    Slide,

    Stride,

    Chunks,

    Repeat,

    Cat,

    Push,

    At,

    Del,

    Lookup,

    Cast,

    Uncast,

    Fold,

    Map,

    Filter,

    Count,

    Each,

    Sort,

    Find,

    FindPtr,

    FindIdx,

    Min,

    Max,

    Argmin,

    Argmax,

    Recur,

    Unfold,

    Op,

    Bind,

    Fn,

    Link,

    Any,

    All,

    Saturate,

    Pipe,

    Tuple,

    Fork,

    Flip,

    Dbg,

    Eval,

    Try,

    Kwrd,

    Prms,

    Q,

    D,

    Err,

    IsErr,

    Assert,

    Trace,

    PreProc,

    _count
};

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


} // namespace lang
} // namespace zmbt



#endif // ZMBT_MODEL_KEYWORD_HPP_