KSeExpr 6.0.0.0
Classes | Public Types | Public Member Functions | Public Attributes | List of all members
BasicExpression Class Reference

#include <BasicExpression.h>

Inheritance diagram for BasicExpression:
KSeExpr::Expression

Classes

struct  DummyFuncX
 
struct  ScalarRef
 
struct  VectorRef
 

Public Types

using VARMAP = std::map< std::string, VectorRef * >
 
using FUNCMAP = std::map< std::string, bool >
 
- Public Types inherited from KSeExpr::Expression
enum  EvaluationStrategy { UseInterpreter , UseLLVM }
 Types of evaluation strategies that are available. More...
 

Public Member Functions

 BasicExpression (const std::string &expr, const KSeExpr::ExprType &type=KSeExpr::ExprType().FP(3))
 
 ~BasicExpression () override
 
BasicExpressionoperator= (BasicExpression &&)=delete
 
BasicExpressionoperator= (const BasicExpression &)=delete
 
 BasicExpression (BasicExpression &&)=delete
 
 BasicExpression (const BasicExpression &)=delete
 
KSeExpr::ExprVarRefresolveVar (const std::string &name) const override
 
KSeExpr::ExprFuncresolveFunc (const std::string &name) const override
 
void setExpr (const std::string &str)
 
void clearVars ()
 
- Public Member Functions inherited from KSeExpr::Expression
 Expression (EvaluationStrategy be=Expression::defaultEvaluationStrategy)
 
 Expression (const std::string &e, const ExprType &type=ExprType().FP(3), EvaluationStrategy be=Expression::defaultEvaluationStrategy, const Context &context=Context::global())
 
virtual ~Expression ()
 
void setDesiredReturnType (const ExprType &type)
 
void setExpr (const std::string &e)
 
const std::string & getExpr () const
 Get the string that this expression is currently set to evaluate.
 
bool syntaxOK () const
 
bool isValid () const
 
const ErrorCodeparseError () const
 
const std::vector< std::string > & parseErrorArgs () const
 
const std::vector< Error > & getErrors () const
 
const std::vector< std::pair< int, int > > & getComments () const
 
bool isConstant () const
 
bool usesVar (const std::string &name) const
 
bool usesFunc (const std::string &name) const
 
bool isThreadSafe () const
 
void setThreadUnsafe (const std::string &functionName) const
 
const std::vector< std::string > & getThreadUnsafeFunctionCalls () const
 
bool wantVec () const
 
bool isVec () const
 
const ExprTypereturnType () const
 
void evalMultiple (VarBlock *varBlock, int outputVarBlockOffset, size_t rangeStart, size_t rangeEnd) const
 Evaluate multiple blocks.
 
const doubleevalFP (VarBlock *varBlock=nullptr) const
 
const charevalStr (VarBlock *varBlock=nullptr) const
 
void reset ()
 
void addError (const ErrorCode error, const std::vector< std::string > ids, const int startPos, const int endPos) const
 
void addComment (int pos, int length)
 
const Contextcontext () const
 
void setContext (const Context &context)
 
void debugPrintParseTree () const
 
void debugPrintInterpreter () const
 
void debugPrintLLVM () const
 
void setVarBlockCreator (const VarBlockCreator *varBlockCreator)
 
const VarBlockCreatorvarBlockCreator () const
 
void addVar (const char *n) const
 add local variable (this is for internal use)
 
void addFunc (const char *n) const
 add function evaluation (this is for internal use)
 

Public Attributes

BasicExpression::DummyFuncX dummyFuncX
 
KSeExpr::ExprFunc dummyFunc
 
ScalarRef u
 
ScalarRef v
 
VectorRef P
 
VARMAP varmap
 
FUNCMAP funcmap
 

Additional Inherited Members

- Static Public Attributes inherited from KSeExpr::Expression
static EvaluationStrategy defaultEvaluationStrategy = chooseDefaultEvaluationStrategy()
 What evaluation strategy to use by default.
 
static bool debugging = getenv("SE_EXPR_DEBUG") != nullptr
 Whether to debug expressions.
 
- Protected Member Functions inherited from KSeExpr::Expression
void prepIfNeeded () const
 
- Protected Attributes inherited from KSeExpr::Expression
ExprType _desiredReturnType
 
ExprVarEnvBuilder _envBuilder
 
ExprNode_parseTree
 

Detailed Description

Definition at line 19 of file BasicExpression.h.

Member Typedef Documentation

◆ FUNCMAP

using BasicExpression::FUNCMAP = std::map<std::string, bool>

Definition at line 97 of file BasicExpression.h.

◆ VARMAP

using BasicExpression::VARMAP = std::map<std::string, VectorRef *>

Definition at line 95 of file BasicExpression.h.

Constructor & Destructor Documentation

◆ BasicExpression() [1/3]

BasicExpression::BasicExpression ( const std::string &  expr,
const KSeExpr::ExprType type = KSeExpr::ExprType().FP(3) 
)

Definition at line 14 of file BasicExpression.cpp.

◆ ~BasicExpression()

BasicExpression::~BasicExpression ( )
override

Definition at line 20 of file BasicExpression.cpp.

References clearVars().

◆ BasicExpression() [2/3]

BasicExpression::BasicExpression ( BasicExpression &&  )
delete

◆ BasicExpression() [3/3]

BasicExpression::BasicExpression ( const BasicExpression )
delete

Member Function Documentation

◆ clearVars()

void BasicExpression::clearVars ( )

Definition at line 32 of file BasicExpression.cpp.

References deleteAndClear(), funcmap, and varmap.

Referenced by setExpr(), and ~BasicExpression().

◆ operator=() [1/2]

BasicExpression & BasicExpression::operator= ( BasicExpression &&  )
delete

◆ operator=() [2/2]

BasicExpression & BasicExpression::operator= ( const BasicExpression )
delete

◆ resolveFunc()

KSeExpr::ExprFunc * BasicExpression::resolveFunc ( const std::string &  ) const
overridevirtual

override resolveFunc to add external functions

Reimplemented from KSeExpr::Expression.

Definition at line 64 of file BasicExpression.cpp.

References dummyFunc, funcmap, and KSeExpr::ExprFunc::lookup().

◆ resolveVar()

KSeExpr::ExprVarRef * BasicExpression::resolveVar ( const std::string &  ) const
overridevirtual

override resolveVar to add external variables

Reimplemented from KSeExpr::Expression.

Definition at line 44 of file BasicExpression.cpp.

References P, u, v, and varmap.

◆ setExpr()

void BasicExpression::setExpr ( const std::string &  str)

Definition at line 38 of file BasicExpression.cpp.

References clearVars().

Member Data Documentation

◆ dummyFunc

KSeExpr::ExprFunc BasicExpression::dummyFunc
mutable

Definition at line 89 of file BasicExpression.h.

Referenced by resolveFunc().

◆ dummyFuncX

BasicExpression::DummyFuncX BasicExpression::dummyFuncX

◆ funcmap

FUNCMAP BasicExpression::funcmap
mutable

Definition at line 98 of file BasicExpression.h.

Referenced by clearVars(), and resolveFunc().

◆ P

VectorRef BasicExpression::P
mutable

Definition at line 93 of file BasicExpression.h.

Referenced by resolveVar().

◆ u

ScalarRef BasicExpression::u
mutable

Definition at line 91 of file BasicExpression.h.

Referenced by resolveVar().

◆ v

ScalarRef BasicExpression::v
mutable

Definition at line 92 of file BasicExpression.h.

Referenced by resolveVar().

◆ varmap

VARMAP BasicExpression::varmap
mutable

Definition at line 96 of file BasicExpression.h.

Referenced by clearVars(), and resolveVar().


The documentation for this class was generated from the following files: