SeExpr

Public Member Functions | Public Attributes | Private Attributes | List of all members
SeExpr2::DExpression Class Reference

`#include <ExprMultiExpr.h>`

Inheritance diagram for SeExpr2::DExpression:

## Public Member Functions
| DExpression (const std::string &varName, Expressions &context, const std::string &e, const ExprType &type=ExprType().FP(3), EvaluationStrategy be=defaultEvaluationStrategy)
const std::string & | name () const
ExprVarRef * | resolveVar (const std::string &name) const
void | eval ()
Public Member Functions inherited from SeExpr2::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. More...
bool | syntaxOK () const
bool | isValid () const
const std::string & | parseError () 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 ExprType & | returnType () const
void | evalMultiple (VarBlock *varBlock, int outputVarBlockOffset, size_t rangeStart, size_t rangeEnd) const
| Evaluate multiple blocks. More...
const double * | evalFP (VarBlock *varBlock=nullptr) const
const char * | evalStr (VarBlock *varBlock=nullptr) const
void | reset ()
virtual ExprFunc * | resolveFunc (const std::string &name) const
void | addError (const std::string &error, const int startPos, const int endPos) const
void | addComment (int pos, int length)
const Context & | context () const
void | setContext (const Context &context)
void | debugPrintParseTree () const
void | debugPrintInterpreter () const
void | debugPrintLLVM () const
void | setVarBlockCreator (const VarBlockCreator *varBlockCreator)
const VarBlockCreator * | varBlockCreator () const
void | addVar (const char *n) const
| add local variable (this is for internal use) More...
void | addFunc (const char *n) const
| add function evaluation (this is for internal use) More...

## Public Attributes
std::set< DExpression * > | operandExprs
std::set< GlobalVal * > | operandVars
GlobalVal * | val

## Private Attributes
Expressions & | context

## Additional Inherited Members
Public Types inherited from SeExpr2::Expression
enum | EvaluationStrategy { UseInterpreter, UseLLVM }
| Types of evaluation strategies that are available. More...
Static Public Attributes inherited from SeExpr2::Expression
static EvaluationStrategy | defaultEvaluationStrategy = chooseDefaultEvaluationStrategy()
| What evaluation strategy to use by default. More...
static bool | debugging = getenv("SE_EXPR_DEBUG") != 0
| Whether to debug expressions. More...
Protected Member Functions inherited from SeExpr2::Expression
void | prepIfNeeded () const
Protected Attributes inherited from SeExpr2::Expression
ExprType | _desiredReturnType
ExprVarEnvBuilder | _envBuilder
ExprNode * | _parseTree

## Detailed Description

Definition at line 30 of file ExprMultiExpr.h.

## Constructor & Destructor Documentation

## ◆ DExpression()

SeExpr2::DExpression::DExpression | ( | const std::string & | varName,
|  | Expressions & | context,
|  | const std::string & | e,
|  | const ExprType & | type = `ExprType().FP(3)`,
|  | EvaluationStrategy | be = `defaultEvaluationStrategy`
| ) |  |

Definition at line 89 of file ExprMultiExpr.cpp.

References SeExpr2::Expression::context(), SeExpr2::ExprType::dim(), SeExpr2::ExprType::isFP(), SeExpr2::ExprType::isString(), operandExprs, operandVars, SeExpr2::Expression::prepIfNeeded(), and val.

## Member Function Documentation

## ◆ eval()

void SeExpr2::DExpression::eval | ( |  | ) |

Definition at line 132 of file ExprMultiExpr.cpp.

References SeExpr2::Expression::_desiredReturnType, SeExpr2::Expression::evalFP(), SeExpr2::Expression::evalStr(), SeExpr2::ExprType::isFP(), SeExpr2::ExprType::isString(), SeExpr2::GlobalFP::val, and val.

## ◆ name()

const std::string & SeExpr2::DExpression::name | ( |  | ) | const

Definition at line 109 of file ExprMultiExpr.cpp.

References val, and SeExpr2::GlobalVal::varName.

Referenced by resolveVar().

## ◆ resolveVar()

ExprVarRef * SeExpr2::DExpression::resolveVar | ( | const std::string & | name | ) | const
| virtual

override resolveVar to add external variables

Reimplemented from SeExpr2::Expression.

Definition at line 111 of file ExprMultiExpr.cpp.

References SeExpr2::Expression::addError(), name(), operandExprs, and operandVars.

## Member Data Documentation

## ◆ context

Expressions& SeExpr2::DExpression::context
| private

Definition at line 31 of file ExprMultiExpr.h.

## ◆ operandExprs

std::set<DExpression*> SeExpr2::DExpression::operandExprs
| mutable

Definition at line 40 of file ExprMultiExpr.h.

Referenced by DExpression(), and resolveVar().

## ◆ operandVars

std::set<GlobalVal*> SeExpr2::DExpression::operandVars
| mutable

Definition at line 41 of file ExprMultiExpr.h.

Referenced by DExpression(), and resolveVar().

## ◆ val

GlobalVal* SeExpr2::DExpression::val

Definition at line 43 of file ExprMultiExpr.h.

Referenced by DExpression(), eval(), and name().

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

- /build/seexpr/src/SeExpr/src/SeExpr2/ExprMultiExpr.h
- /build/seexpr/src/SeExpr/src/SeExpr2/ExprMultiExpr.cpp