souffle  2.0.2-371-g6315b36
Data Structures | Namespaces | Typedefs | Enumerations | Functions | Variables
FunctorOps.h File Reference
#include "souffle/TypeAttribute.h"
#include <cstdlib>
#include <functional>
#include <iosfwd>
#include <string>
#include <string_view>
#include <vector>
Include dependency graph for FunctorOps.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  souffle::IntrinsicFunctorInfo
 

Namespaces

 souffle
 

Typedefs

using souffle::IntrinsicFunctors = std::vector< std::reference_wrapper< const IntrinsicFunctorInfo > >
 

Enumerations

enum  souffle::FunctorOp {
  souffle::FunctorOp::ORD, souffle::FunctorOp::STRLEN, souffle::FunctorOp::NEG, souffle::FunctorOp::FNEG,
  souffle::FunctorOp::BNOT, souffle::FunctorOp::UBNOT, souffle::FunctorOp::LNOT, souffle::FunctorOp::ULNOT,
  souffle::FunctorOp::F2I, souffle::FunctorOp::F2S, souffle::FunctorOp::F2U, souffle::FunctorOp::I2F,
  souffle::FunctorOp::I2S, souffle::FunctorOp::I2U, souffle::FunctorOp::S2F, souffle::FunctorOp::S2I,
  souffle::FunctorOp::S2U, souffle::FunctorOp::U2F, souffle::FunctorOp::U2I, souffle::FunctorOp::U2S,
  souffle::FunctorOp::ADD, souffle::FunctorOp::SUB, souffle::FunctorOp::MUL, souffle::FunctorOp::DIV,
  souffle::FunctorOp::EXP, souffle::FunctorOp::MAX, souffle::FunctorOp::MIN, souffle::FunctorOp::MOD,
  souffle::FunctorOp::BAND, souffle::FunctorOp::BOR, souffle::FunctorOp::BXOR, souffle::FunctorOp::BSHIFT_L,
  souffle::FunctorOp::BSHIFT_R, souffle::FunctorOp::BSHIFT_R_UNSIGNED, souffle::FunctorOp::LAND, souffle::FunctorOp::LOR,
  souffle::FunctorOp::LXOR, souffle::FunctorOp::UADD, souffle::FunctorOp::USUB, souffle::FunctorOp::UMUL,
  souffle::FunctorOp::UDIV, souffle::FunctorOp::UEXP, souffle::FunctorOp::UMAX, souffle::FunctorOp::UMIN,
  souffle::FunctorOp::UMOD, souffle::FunctorOp::UBAND, souffle::FunctorOp::UBOR, souffle::FunctorOp::UBXOR,
  souffle::FunctorOp::UBSHIFT_L, souffle::FunctorOp::UBSHIFT_R, souffle::FunctorOp::UBSHIFT_R_UNSIGNED, souffle::FunctorOp::ULAND,
  souffle::FunctorOp::ULOR, souffle::FunctorOp::ULXOR, souffle::FunctorOp::FADD, souffle::FunctorOp::FSUB,
  souffle::FunctorOp::FMUL, souffle::FunctorOp::FDIV, souffle::FunctorOp::FEXP, souffle::FunctorOp::FMAX,
  souffle::FunctorOp::FMIN, souffle::FunctorOp::SMAX, souffle::FunctorOp::SMIN, souffle::FunctorOp::RANGE,
  souffle::FunctorOp::URANGE, souffle::FunctorOp::FRANGE, souffle::FunctorOp::CAT, souffle::FunctorOp::SUBSTR
}
 

Functions

IntrinsicFunctors souffle::functorBuiltIn (FunctorOp op)
 
IntrinsicFunctors souffle::functorBuiltIn (std::string_view symbol)
 
IntrinsicFunctors souffle::functorBuiltIn (std::string_view symbol, const std::vector< TypeAttribute > &params)
 
FunctorOp souffle::getMaxOp (const std::string &type)
 
FunctorOp souffle::getMinOp (const std::string &type)
 Given a type of an an attribute it returns the appropriate min/max functor operation. More...
 
bool souffle::isInfixFunctorOp (const FunctorOp op)
 
bool souffle::isInfixFunctorOp (std::string_view symbol)
 Determines whether a functor should be written using infix notation (e.g. More...
 
bool souffle::isOverloadedFunctor (std::string_view symbol)
 Indicate whether a functor is overloaded. More...
 
bool souffle::isValidFunctorOpArity (std::string_view symbol, size_t arity)
 
std::ostream & souffle::operator<< (std::ostream &os, FunctorOp op)
 

Variables

constexpr char souffle::FUNCTOR_INTRINSIC_PREFIX_NEGATE_NAME [] = "negate"