KSeExpr 4.0.4.0
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 double * evalFP (VarBlock *varBlock=nullptr) const
const char * evalStr (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) )

◆ ~BasicExpression()

BasicExpression::~BasicExpression ( )
override

Definition at line 20 of file BasicExpression.cpp.

References clearVars().

◆ BasicExpression() [2/3]

BasicExpression::BasicExpression ( BasicExpression && )
delete

References BasicExpression().

◆ BasicExpression() [3/3]

BasicExpression::BasicExpression ( const BasicExpression & )
delete

References BasicExpression().

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

References BasicExpression().

◆ operator=() [2/2]

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

References BasicExpression().

◆ 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 BasicExpression(), and resolveFunc().

◆ dummyFuncX

BasicExpression::DummyFuncX BasicExpression::dummyFuncX

Referenced by BasicExpression().

◆ 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: