NumeRe v1.1.4
NumeRe: Framework für Numerische Rechnungen
FlowCtrl Class Reference

#include <flowctrl.hpp>

Inheritance diagram for FlowCtrl:
Collaboration diagram for FlowCtrl:

Public Member Functions

 FlowCtrl ()
 Default constructor. More...
 
virtual ~FlowCtrl ()
 Destructor. Cleanes the memory, if necessary. More...
 
int getCurrentBlockDepth () const
 Returns the current block depth while reading a flow control statement to memory. More...
 
std::string getCurrentBlock () const
 
Returnvalue getReturnValue () const
 
bool getReturnSignal () const
 
void setCommand (std::string &__sCmd, int nCurrentLine)
 This member function is used to set a command line from the outside into the flow control statement class. The internal flow control command buffer grows as needed. More...
 
void eval ()
 This member function prepares the command array by pre-evaluating all constant stuff or function calls whereever possible. More...
 
void reset ()
 This function clears the memory of this FlowCtrl object and sets everything back to its original state. More...
 
int getCurrentLineNumber () const
 This member function returns the current line number as enumerated during passing the commands via "setCommand()". More...
 
std::string getCurrentCommand () const
 This member function returns the current command line, which will or has been evaluated in the current line. More...
 

Static Public Member Functions

static bool isFlowCtrlStatement (const std::string &sCmd)
 This static member function returns whether the passed command is a flow control statement. More...
 
static bool isAnyFlowCtrlStatement (const std::string &sCmd)
 This static member function returns whether the passed command is any of the known flow control statements (not only their headers). More...
 

Protected Types

enum  CalculationType {
  CALCTYPE_NONE = 0x0 , CALCTYPE_COMMAND = 0x1 , CALCTYPE_NUMERICAL = 0x2 , CALCTYPE_STRING = 0x4 ,
  CALCTYPE_DATAACCESS = 0x8 , CALCTYPE_PROGRESS = 0x10 , CALCTYPE_COMPOSE = 0x20 , CALCTYPE_DEFINITION = 0x40 ,
  CALCTYPE_RETURNCOMMAND = 0x80 , CALCTYPE_THROWCOMMAND = 0x100 , CALCTYPE_DEBUGBREAKPOINT = 0x200 , CALCTYPE_EXPLICIT = 0x400 ,
  CALCTYPE_TOCOMMAND = 0x800 , CALCTYPE_PROCEDURECMDINTERFACE = 0x1000 , CALCTYPE_CONTINUECMD = 0x2000 , CALCTYPE_BREAKCMD = 0x4000 ,
  CALCTYPE_PROMPT = 0x8000 , CALCTYPE_RECURSIVEEXPRESSION = 0x10000 , CALCTYPE_SUPPRESSANSWER = 0x20000 , CALCTYPE_ASSERT = 0x40000
}
 
enum  ProcedureInterfaceRetVal { INTERFACE_EMPTY = -2 , INTERFACE_ERROR = -1 , INTERFACE_NONE = 1 , INTERFACE_VALUE = 2 }
 
enum  FlowCtrlStatement {
  FC_FOR , FC_IF , FC_WHILE , FC_SWITCH ,
  FC_TRY , FC_COUNT
}
 
typedef int(FlowCtrl::* FlowCtrlFunction) (int, int)
 Definition of a generic FlowCtrl entry point. More...
 

Protected Member Functions

int for_loop (int nth_Cmd=0, int nth_Loop=0)
 This member function realizes the FOR control flow statement. The return value is either an error value or the end of the current flow control statement. More...
 
int range_based_for_loop (int nth_Cmd=0, int nth_Loop=0)
 This member function realizes the FOR control flow statement for range based indices. The return value is either an error value or the end of the current flow control statement. More...
 
int while_loop (int nth_Cmd=0, int nth_Loop=0)
 This member function realizes the WHILE control flow statement. The return value is either an error value or the end of the current flow control statement. More...
 
int if_fork (int nth_Cmd=0, int nth_Loop=-1)
 This member function realizes the IF-ELSE control flow statement. The return value is either an error value or the end of the current flow control statement. More...
 
int switch_fork (int nth_Cmd=0, int nth_Loop=-1)
 This member function realizes the SWITCH-CASE control flow statement. The return value is either an error value or the end of the current flow control statement. More...
 
int try_catch (int nth_Cmd=0, int nth_Loop=-1)
 Implements a try-catch block. More...
 
int compile (std::string sLine, int nthCmd)
 This member function does the hard work and compiles the numerical and std::string results for the current command line to provide the bytecode for the usual calculation function. More...
 
int calc (StringView sLine, int nthCmd)
 This member function does the hard work and calculates the numerical and std::string results for the current command line. It will use the previously determined bytecode whereever possible. More...
 
value_typeevalHeader (int &nNum, std::string &sHeadExpression, bool bIsForHead, int nth_Cmd, const std::string &sHeadCommand)
 This member function abstracts the evaluation of all flow control headers. It will return an array of evaluated return values, although only the first (one/two) are used here. More...
 
NumeRe::Cluster evalRangeBasedHeader (std::string &sHeadExpression, int nth_Cmd, const std::string &sHeadCommand)
 This member function handles the evaluation of the range-based flow control headers. It will return a cluster of the evaluated return values. More...
 
int evalForkFlowCommands (int __j, int nth_loop)
 This member function handles the evaluation of flow control statements from the viewpoint of an if-else control flow. More...
 
void replaceLocalVars (std::string &sLine)
 This member function is used to replace variable occurences with their (auto-determined) internal name. More...
 
void replaceLocalVars (const std::string &sOldVar, const std::string &sNewVar, size_t from=0, size_t to=std::string::npos)
 Replaces all occurences of the selected variable in the range of the selected lines with the new name. More...
 
bool checkFlowControlArgument (const std::string &sFlowControlArgument, bool isForLoop=false)
 This member function checks, whether the passed flow control argument is valid or not. More...
 
bool checkCaseValue (const std::string &sCaseDefinition)
 This member function checks, whether the entered case definition is valid or not. More...
 
std::string extractFlagsAndIndexVariables ()
 Read the flow control statements only and extract the index variables and the flow control flags. More...
 
void fillJumpTableAndExpandRecursives ()
 Go again through the whole command set and fill the jump table with the corresponding block ends and pre-evaluate the recursive expressions. Furthermore, determine, whether the loop parsing mode is reasonable. More...
 
void prepareSwitchExpression (int nSwitchStart)
 This member function will prepare the single logical switch expression. More...
 
void checkParsingModeAndExpandDefinitions ()
 If the loop parsing mode is active, ensure that only inline procedures are used in this case. Otherwise turn it off again. Additionally check for "to_cmd()" function, which will also turn the loop parsing mode off. If no function definition commands are found in the command block, replace the definitions with their expanded form. More...
 
void prepareLocalVarsAndReplace (std::string &sVars)
 This method prepares the local variables including their names and replaces them in the command lines in the current command block. More...
 
void updateTestStats ()
 Updates the test statistics with the total test statistics. More...
 
virtual int procedureCmdInterface (std::string &sLine)
 Dummy implementation. More...
 
virtual ProcedureInterfaceRetVal procedureInterface (std::string &sLine, Parser &_parser, FunctionDefinitionManager &_functions, MemoryManager &_data, Output &_out, PlotData &_pData, Script &_script, Settings &_option, int nth_command)
 Dummy implementation. More...
 
virtual int isInline (const std::string &sProc)
 Dummy implementation. More...
 
virtual int evalDebuggerBreakPoint (Parser &_parser, Settings &_option)
 Dummy implementation. More...
 
virtual int getErrorInformationForDebugger ()
 Dummy implementation. More...
 
virtual std::vector< std::string > expandInlineProcedures (std::string &sLine)
 Dummy implementation. More...
 
virtual int catchExceptionForTest (std::exception_ptr e_ptr, bool bSupressAnswer_back, int nLine)
 Dummy implementation. More...
 

Protected Attributes

std::vector< FlowCtrlCommandvCmdArray
 
std::vector< value_typevVarArray
 
std::vector< std::string > sVarArray
 
varmap_type vVars
 
std::vector< std::vector< int > > nJumpTable
 
std::vector< int > nCalcType
 
std::string sLoopNames
 
int nFlowCtrlStatements [FC_COUNT]
 
int nCurrentCommand
 
Returnvalue ReturnVal
 
bool bUseLoopParsingMode
 
bool bLockedPauseMode
 
bool bFunctionsReplaced
 
std::string sLoopPlotCompose
 
std::map< std::string, std::string > mVarMap
 
std::set< std::string > inlineClusters
 
bool bSilent
 
bool bMask
 
bool bPrintedStatus
 
bool bEvaluatingFlowControlStatements
 
int nLoopSafety
 
int nDebuggerCode
 
AssertionStats baseline
 
std::string sTestClusterName
 
int nthRecursion
 
int nReturnType
 
bool bReturnSignal
 

Private Attributes

friend FlowCtrlCommand
 
bool bLoopSupressAnswer
 
Parser_parserRef
 
MemoryManager_dataRef
 
Output_outRef
 
Settings_optionRef
 
FunctionDefinitionManager_functionRef
 
PlotData_pDataRef
 
Script_scriptRef
 

Detailed Description

Definition at line 44 of file flowctrl.hpp.

Member Typedef Documentation

◆ FlowCtrlFunction

typedef int(FlowCtrl::* FlowCtrl::FlowCtrlFunction) (int, int)
protected

Definition of a generic FlowCtrl entry point.

Definition at line 140 of file flowctrl.hpp.

Member Enumeration Documentation

◆ CalculationType

enum FlowCtrl::CalculationType
protected
Enumerator
CALCTYPE_NONE 
CALCTYPE_COMMAND 
CALCTYPE_NUMERICAL 
CALCTYPE_STRING 
CALCTYPE_DATAACCESS 
CALCTYPE_PROGRESS 
CALCTYPE_COMPOSE 
CALCTYPE_DEFINITION 
CALCTYPE_RETURNCOMMAND 
CALCTYPE_THROWCOMMAND 
CALCTYPE_DEBUGBREAKPOINT 
CALCTYPE_EXPLICIT 
CALCTYPE_TOCOMMAND 
CALCTYPE_PROCEDURECMDINTERFACE 
CALCTYPE_CONTINUECMD 
CALCTYPE_BREAKCMD 
CALCTYPE_PROMPT 
CALCTYPE_RECURSIVEEXPRESSION 
CALCTYPE_SUPPRESSANSWER 
CALCTYPE_ASSERT 

Definition at line 60 of file flowctrl.hpp.

◆ FlowCtrlStatement

Enumerator
FC_FOR 
FC_IF 
FC_WHILE 
FC_SWITCH 
FC_TRY 
FC_COUNT 

Definition at line 92 of file flowctrl.hpp.

◆ ProcedureInterfaceRetVal

Enumerator
INTERFACE_EMPTY 
INTERFACE_ERROR 
INTERFACE_NONE 
INTERFACE_VALUE 

Definition at line 84 of file flowctrl.hpp.

Constructor & Destructor Documentation

◆ FlowCtrl()

◆ ~FlowCtrl()

FlowCtrl::~FlowCtrl ( )
virtual

Destructor. Cleanes the memory, if necessary.

Definition at line 107 of file flowctrl.cpp.

Member Function Documentation

◆ calc()

int FlowCtrl::calc ( StringView  sLine,
int  nthCmd 
)
protected

This member function does the hard work and calculates the numerical and std::string results for the current command line. It will use the previously determined bytecode whereever possible.

Parameters
sLinestd::string
nthCmdint
Returns
int

Definition at line 3329 of file flowctrl.cpp.

References _assertionHandler, _dataRef, _functionRef, _lang, _optionRef, _outRef, _parserRef, _pDataRef, _scriptRef, NumeRe::Cluster::assignResults(), bFunctionsReplaced, bLockedPauseMode, bLoopSupressAnswer, bPrintedStatus, bReturnSignal, NumeReKernel::bSupressAnswer, bUseLoopParsingMode, mu::ParserBase::CacheCurrentEquation(), mu::ParserBase::CacheCurrentTarget(), CALCTYPE_ASSERT, CALCTYPE_COMMAND, CALCTYPE_COMPOSE, CALCTYPE_DATAACCESS, CALCTYPE_DEBUGBREAKPOINT, CALCTYPE_DEFINITION, CALCTYPE_EXPLICIT, CALCTYPE_NUMERICAL, CALCTYPE_PROCEDURECMDINTERFACE, CALCTYPE_PROGRESS, CALCTYPE_PROMPT, CALCTYPE_RECURSIVEEXPRESSION, CALCTYPE_RETURNCOMMAND, CALCTYPE_STRING, CALCTYPE_SUPPRESSANSWER, CALCTYPE_THROWCOMMAND, CALCTYPE_TOCOMMAND, FunctionDefinitionManager::call(), mu::ParserBase::CanCacheAccess(), Assertion::checkAssertion(), Indices::col, COMMAND_HAS_RETURNVALUE, COMMAND_PROCESSED, commandHandler(), compile(), MemoryManager::containsTablesOrClusters(), NumeReKernel::DEBUGGER_LEAVE, NumeReKernel::DEBUGGER_STEP, NumeReKernel::DEBUGGER_STEPOVER, Assertion::enable(), mu::ParserBase::Eval(), NumeRe::StringParser::evalAndFormat(), evalDebuggerBreakPoint(), evalRecursiveExpressions(), evaluateParameterValues(), StringViewBase::find(), findCommand(), findParameter(), FLOWCTRL_ERROR, FLOWCTRL_OK, FLOWCTRL_RETURN, NumeReKernel::formatResultOutput(), SyntaxError::FUNCTION_ERROR, NumeReDebugger::gatherLoopBasedInformations(), Language::get(), NumeReKernel::getAns(), getArgAtPos(), NumeReKernel::GetAsyncCancelState(), mu::ParserBase::GetCachedEquation(), NumeRe::ClusterManager::getCluster(), getCurrentLineNumber(), getDataElements(), NumeReKernel::getDebugger(), getIndices(), NumeReKernel::getInstance(), getMatchingParenthesis(), NumeReKernel::getStringParser(), NumeRe::StringVarFactory::getStringValues(), mu::ParserBase::HasCachedAccess(), intCast(), INTERFACE_EMPTY, INTERFACE_ERROR, INTERFACE_VALUE, SyntaxError::INVALID_INDEX, SyntaxError::invalid_position, mu::ParserBase::IsAlreadyParsed(), isClusterCandidate(), mu::ParserBase::IsCompiling(), isInQuotes(), mu::ParserBase::IsNotLastStackItem(), VectorIndex::isOpenEnd(), NumeRe::StringParser::isStringExpression(), MemoryManager::isTable(), isValidIndexSet(), StringViewBase::length(), mu::ParserBase::LockPause(), SyntaxError::LOOP_THROW, make_progressBar(), mVarMap, nCalcType, nDebuggerCode, nJumpTable, NO_COMMAND, SyntaxError::NO_MATRIX, nReturnType, NUMERE_QUIT, mu::ParserBase::PauseLoopMode(), NumeReKernel::print(), NumeReKernel::printPreFmt(), PROCEDURE_INTERFACE, procedureCmdInterface(), procedureInterface(), SyntaxError::PROCESS_ABORTED_BY_USER, promptForUserInput(), NumeRe::StringVarFactory::removeTempStringVectorVars(), replaceLocalVars(), Assertion::reset(), ReturnVal, Indices::row, Indices::sCompiledAccessEquation, sErrorToken, mu::ParserBase::SetCompiling(), NumeRe::Cluster::setDoubleArray(), mu::ParserBase::SetExpr(), sLoopPlotCompose, Returnvalue::sReturnedTable, Match::sString, NumeRe::StringParser::STRING_SUCCESS, StringViewBase::strip(), StripSpaces(), StringView::subview(), sVarArray, NumeRe::Cluster::to_string(), VectorIndex::to_string(), StringViewBase::to_string(), SyntaxError::UNMATCHED_PARENTHESIS, updateTestStats(), Settings::useDebugger(), vAns, Returnvalue::vNumVal, Returnvalue::vStringVal, vVarArray, and MemoryManager::writeToTable().

Referenced by for_loop(), if_fork(), range_based_for_loop(), switch_fork(), try_catch(), and while_loop().

◆ catchExceptionForTest()

int FlowCtrl::catchExceptionForTest ( std::exception_ptr  e_ptr,
bool  bSupressAnswer_back,
int  nLine 
)
protectedvirtual

Dummy implementation.

Parameters
e_ptrexception_ptr
bSupressAnswer_backbool
nLineint
Returns
int

Reimplemented in Procedure.

Definition at line 4858 of file flowctrl.cpp.

Referenced by for_loop(), if_fork(), range_based_for_loop(), switch_fork(), try_catch(), and while_loop().

◆ checkCaseValue()

bool FlowCtrl::checkCaseValue ( const std::string &  sCaseDefinition)
protected

This member function checks, whether the entered case definition is valid or not.

Parameters
sCaseDefinitionconst std::string&
Returns
bool

Definition at line 4078 of file flowctrl.cpp.

References getNextArgument().

Referenced by setCommand().

Here is the call graph for this function:

◆ checkFlowControlArgument()

bool FlowCtrl::checkFlowControlArgument ( const std::string &  sFlowControlArgument,
bool  isForLoop = false 
)
protected

This member function checks, whether the passed flow control argument is valid or not.

Parameters
sFlowControlArgumentconst std::string&
isForLoopbool
Returns
bool

Definition at line 4043 of file flowctrl.cpp.

References getMatchingParenthesis(), and isNotEmptyExpression().

Referenced by setCommand().

Here is the call graph for this function:

◆ checkParsingModeAndExpandDefinitions()

void FlowCtrl::checkParsingModeAndExpandDefinitions ( )
protected

If the loop parsing mode is active, ensure that only inline procedures are used in this case. Otherwise turn it off again. Additionally check for "to_cmd()" function, which will also turn the loop parsing mode off. If no function definition commands are found in the command block, replace the definitions with their expanded form.

Returns
void

Definition at line 4511 of file flowctrl.cpp.

References _functionRef, bFunctionsReplaced, bLockedPauseMode, bUseLoopParsingMode, FunctionDefinitionManager::call(), expandInlineProcedures(), findCommand(), SyntaxError::FUNCTION_ERROR, SyntaxError::invalid_position, isInline(), StripSpaces(), and vCmdArray.

Referenced by eval().

Here is the call graph for this function:

◆ compile()

int FlowCtrl::compile ( std::string  sLine,
int  nthCmd 
)
protected

This member function does the hard work and compiles the numerical and std::string results for the current command line to provide the bytecode for the usual calculation function.

Parameters
sLinestd::string
nthCmdint
Returns
int

Definition at line 2646 of file flowctrl.cpp.

References _assertionHandler, _dataRef, _functionRef, _lang, _optionRef, _outRef, _parserRef, _pDataRef, _scriptRef, NumeRe::Cluster::assignResults(), bFunctionsReplaced, bLockedPauseMode, bLoopSupressAnswer, bPrintedStatus, bReturnSignal, NumeReKernel::bSupressAnswer, bUseLoopParsingMode, mu::ParserBase::CacheCurrentEquation(), mu::ParserBase::CacheCurrentTarget(), CALCTYPE_ASSERT, CALCTYPE_COMMAND, CALCTYPE_COMPOSE, CALCTYPE_DATAACCESS, CALCTYPE_DEBUGBREAKPOINT, CALCTYPE_DEFINITION, CALCTYPE_EXPLICIT, CALCTYPE_NUMERICAL, CALCTYPE_PROCEDURECMDINTERFACE, CALCTYPE_PROGRESS, CALCTYPE_PROMPT, CALCTYPE_RECURSIVEEXPRESSION, CALCTYPE_RETURNCOMMAND, CALCTYPE_STRING, CALCTYPE_SUPPRESSANSWER, CALCTYPE_THROWCOMMAND, CALCTYPE_TOCOMMAND, FunctionDefinitionManager::call(), mu::ParserBase::CanCacheAccess(), Assertion::checkAssertion(), Indices::col, COMMAND_HAS_RETURNVALUE, COMMAND_PROCESSED, commandHandler(), MemoryManager::containsTablesOrClusters(), NumeReKernel::DEBUGGER_LEAVE, NumeReKernel::DEBUGGER_STEP, NumeReKernel::DEBUGGER_STEPOVER, Assertion::enable(), mu::ParserBase::Eval(), NumeRe::StringParser::evalAndFormat(), evalDebuggerBreakPoint(), evalRecursiveExpressions(), evaluateParameterValues(), findCommand(), findParameter(), FLOWCTRL_ERROR, FLOWCTRL_OK, FLOWCTRL_RETURN, NumeReKernel::formatResultOutput(), SyntaxError::FUNCTION_ERROR, NumeReDebugger::gatherLoopBasedInformations(), Language::get(), NumeReKernel::getAns(), getArgAtPos(), NumeReKernel::GetAsyncCancelState(), mu::ParserBase::GetCachedEquation(), NumeRe::ClusterManager::getCluster(), getCurrentLineNumber(), getDataElements(), NumeReKernel::getDebugger(), getIndices(), NumeReKernel::getInstance(), getMatchingParenthesis(), NumeReKernel::getStringParser(), NumeRe::StringVarFactory::getStringValues(), mu::ParserBase::HasCachedAccess(), intCast(), INTERFACE_EMPTY, INTERFACE_ERROR, INTERFACE_VALUE, SyntaxError::INVALID_INDEX, SyntaxError::invalid_position, mu::ParserBase::IsAlreadyParsed(), isClusterCandidate(), mu::ParserBase::IsCompiling(), isInQuotes(), VectorIndex::isOpenEnd(), NumeRe::StringParser::isStringExpression(), MemoryManager::isTable(), mu::ParserBase::IsValidByteCode(), isValidIndexSet(), mu::ParserBase::LockPause(), SyntaxError::LOOP_THROW, make_progressBar(), mVarMap, nCalcType, nDebuggerCode, nJumpTable, NO_COMMAND, SyntaxError::NO_MATRIX, nReturnType, NUMERE_QUIT, mu::ParserBase::PauseLoopMode(), NumeReKernel::print(), NumeReKernel::printPreFmt(), PROCEDURE_INTERFACE, procedureCmdInterface(), procedureInterface(), SyntaxError::PROCESS_ABORTED_BY_USER, promptForUserInput(), NumeRe::StringVarFactory::removeTempStringVectorVars(), replaceLocalVars(), Assertion::reset(), ReturnVal, Indices::row, Indices::sCompiledAccessEquation, sErrorToken, mu::ParserBase::SetCompiling(), NumeRe::Cluster::setDoubleArray(), mu::ParserBase::SetExpr(), sLoopPlotCompose, Returnvalue::sReturnedTable, Match::sString, NumeRe::StringParser::STRING_SUCCESS, StripSpaces(), sVarArray, NumeRe::Cluster::to_string(), VectorIndex::to_string(), SyntaxError::UNMATCHED_PARENTHESIS, updateTestStats(), Settings::useDebugger(), vAns, vCmdArray, Returnvalue::vNumVal, Returnvalue::vStringVal, vVarArray, and MemoryManager::writeToTable().

Referenced by calc().

◆ eval()

void FlowCtrl::eval ( )

This member function prepares the command array by pre-evaluating all constant stuff or function calls whereever possible.

Returns
void

Definition at line 2340 of file flowctrl.cpp.

References _dataRef, _functionRef, _lang, _optionRef, _outRef, _parserRef, _pDataRef, _scriptRef, mu::ParserBase::ActivateLoopMode(), mu::ParserBase::ActiveLoopMode(), bEvaluatingFlowControlStatements, bFunctionsReplaced, bLockedPauseMode, bLoopSupressAnswer, bMask, bPrintedStatus, bReturnSignal, bSilent, NumeReKernel::bSupressAnswer, bUseLoopParsingMode, CALCTYPE_NONE, SyntaxError::CANNOT_EVAL_FOR, SyntaxError::CANNOT_EVAL_IF, SyntaxError::CANNOT_EVAL_SWITCH, SyntaxError::CANNOT_EVAL_TRY, SyntaxError::CANNOT_EVAL_WHILE, checkParsingModeAndExpandDefinitions(), Returnvalue::clear(), mu::ParserBase::ClearVectorVars(), extractFlagsAndIndexVariables(), fillJumpTableAndExpandRecursives(), FLOWCTRL_ERROR, Language::get(), NumeReKernel::getDefinitions(), NumeReKernel::getInstance(), NumeReKernel::getMemoryManager(), NumeReKernel::getOutput(), NumeReKernel::getParser(), NumeReKernel::getPlottingData(), NumeReKernel::getScript(), NumeReKernel::getSettings(), if_fork(), SyntaxError::INVALID_FLOWCTRL_STATEMENT, SyntaxError::invalid_position, mu::ParserBase::IsLockedPause(), JUMP_TABLE_ELEMENTS, nCalcType, nJumpTable, NO_FLOW_COMMAND, nReturnType, prepareLocalVarsAndReplace(), NumeReKernel::printPreFmt(), reset(), ReturnVal, switch_fork(), Settings::systemPrints(), try_catch(), Settings::useMaskDefault(), vCmdArray, and while_loop().

Referenced by setCommand().

Here is the call graph for this function:

◆ evalDebuggerBreakPoint()

int FlowCtrl::evalDebuggerBreakPoint ( Parser _parser,
Settings _option 
)
protectedvirtual

Dummy implementation.

Parameters
_parserParser&
_optionSettings&
Returns
int

Reimplemented in Procedure.

Definition at line 4818 of file flowctrl.cpp.

Referenced by calc(), compile(), evalHeader(), and evalRangeBasedHeader().

◆ evalForkFlowCommands()

int FlowCtrl::evalForkFlowCommands ( int  __i,
int  nth_loop 
)
protected

This member function handles the evaluation of flow control statements from the viewpoint of an if-else control flow.

Parameters
__iint
nth_loopint
Returns
int

Definition at line 1888 of file flowctrl.cpp.

References _lang, BLOCK_END, bMask, bPrintedStatus, bReturnSignal, bSilent, FLOWCTRL_NO_CMD, Language::get(), nJumpTable, NO_FLOW_COMMAND, NumeReKernel::printPreFmt(), and vCmdArray.

Referenced by if_fork(), switch_fork(), and try_catch().

Here is the call graph for this function:

◆ evalHeader()

value_type * FlowCtrl::evalHeader ( int &  nNum,
std::string &  sHeadExpression,
bool  bIsForHead,
int  nth_Cmd,
const std::string &  sHeadCommand 
)
protected

This member function abstracts the evaluation of all flow control headers. It will return an array of evaluated return values, although only the first (one/two) are used here.

Parameters
nNumint&
sHeadExpressionstd::string&
bIsForHeadbool
nth_Cmdint
sHeadCommandconst std::string&
Returns
value_type*

Definition at line 1490 of file flowctrl.cpp.

References _dataRef, _functionRef, _lang, _optionRef, _outRef, _parserRef, _pDataRef, _scriptRef, bFunctionsReplaced, bLockedPauseMode, bPrintedStatus, bUseLoopParsingMode, mu::ParserBase::CacheCurrentEquation(), mu::ParserBase::CacheCurrentTarget(), CALCTYPE_DATAACCESS, CALCTYPE_DEBUGBREAKPOINT, CALCTYPE_NUMERICAL, CALCTYPE_STRING, FunctionDefinitionManager::call(), mu::ParserBase::CanCacheAccess(), SyntaxError::CANNOT_EVAL_FOR, MemoryManager::containsTablesOrClusters(), NumeReKernel::DEBUGGER_LEAVE, NumeReKernel::DEBUGGER_STEP, NumeReKernel::DEBUGGER_STEPOVER, mu::ParserBase::Eval(), NumeRe::StringParser::evalAndFormat(), evalDebuggerBreakPoint(), SyntaxError::FUNCTION_ERROR, NumeReDebugger::gatherLoopBasedInformations(), Language::get(), NumeReKernel::GetAsyncCancelState(), mu::ParserBase::GetCachedEquation(), getCurrentLineNumber(), getDataElements(), NumeReKernel::getDebugger(), NumeReKernel::getInstance(), NumeReKernel::getStringParser(), mu::ParserBase::HasCachedAccess(), INTERFACE_EMPTY, INTERFACE_ERROR, INTERFACE_VALUE, SyntaxError::invalid_position, mu::ParserBase::IsAlreadyParsed(), mu::ParserBase::IsCompiling(), mu::ParserBase::IsNotLastStackItem(), NumeRe::StringParser::isStringExpression(), mu::ParserBase::LockPause(), mVarMap, nCalcType, nCurrentCommand, nDebuggerCode, nJumpTable, mu::ParserBase::PauseLoopMode(), NumeReKernel::printPreFmt(), SyntaxError::PROCEDURE_ERROR, PROCEDURE_INTERFACE, procedureInterface(), SyntaxError::PROCESS_ABORTED_BY_USER, replaceLocalVars(), mu::ParserBase::SetCompiling(), mu::ParserBase::SetExpr(), mu::ParserBase::SetIndex(), NumeRe::StringParser::STRING_NUMERICAL, StripSpaces(), sVarArray, NumeReDebugger::throwException(), Settings::useDebugger(), and vVarArray.

Referenced by for_loop(), if_fork(), switch_fork(), and while_loop().

Here is the call graph for this function:

◆ evalRangeBasedHeader()

NumeRe::Cluster FlowCtrl::evalRangeBasedHeader ( std::string &  sHeadExpression,
int  nth_Cmd,
const std::string &  sHeadCommand 
)
protected

This member function handles the evaluation of the range-based flow control headers. It will return a cluster of the evaluated return values.

Parameters
sHeadExpressionstd::string&
nth_Cmdint
sHeadCommandconst std::string&
Returns
NumeRe::Cluster

Definition at line 1696 of file flowctrl.cpp.

References _dataRef, _functionRef, _lang, _optionRef, _outRef, _parserRef, _pDataRef, _scriptRef, bFunctionsReplaced, bLockedPauseMode, bPrintedStatus, bUseLoopParsingMode, mu::ParserBase::CacheCurrentEquation(), mu::ParserBase::CacheCurrentTarget(), CALCTYPE_DATAACCESS, CALCTYPE_DEBUGBREAKPOINT, CALCTYPE_NUMERICAL, CALCTYPE_STRING, FunctionDefinitionManager::call(), mu::ParserBase::CanCacheAccess(), MemoryManager::containsTablesOrClusters(), NumeReKernel::DEBUGGER_LEAVE, NumeReKernel::DEBUGGER_STEP, NumeReKernel::DEBUGGER_STEPOVER, mu::ParserBase::Eval(), NumeRe::StringParser::evalAndFormat(), evalDebuggerBreakPoint(), SyntaxError::FUNCTION_ERROR, NumeReDebugger::gatherLoopBasedInformations(), Language::get(), NumeReKernel::getAns(), NumeReKernel::GetAsyncCancelState(), mu::ParserBase::GetCachedEquation(), getCurrentLineNumber(), getDataElements(), NumeReKernel::getDebugger(), NumeReKernel::getInstance(), NumeReKernel::getStringParser(), mu::ParserBase::HasCachedAccess(), INTERFACE_EMPTY, INTERFACE_ERROR, INTERFACE_VALUE, SyntaxError::invalid_position, mu::ParserBase::IsAlreadyParsed(), mu::ParserBase::IsCompiling(), mu::ParserBase::IsNotLastStackItem(), NumeRe::StringParser::isStringExpression(), mu::ParserBase::LockPause(), mVarMap, nCalcType, nCurrentCommand, nDebuggerCode, nJumpTable, mu::ParserBase::PauseLoopMode(), NumeReKernel::printPreFmt(), SyntaxError::PROCEDURE_ERROR, PROCEDURE_INTERFACE, procedureInterface(), SyntaxError::PROCESS_ABORTED_BY_USER, replaceLocalVars(), mu::ParserBase::SetCompiling(), NumeRe::Cluster::setDoubleArray(), mu::ParserBase::SetExpr(), mu::ParserBase::SetIndex(), NumeRe::StringParser::STRING_NUMERICAL, StripSpaces(), sVarArray, Settings::useDebugger(), and vVarArray.

Referenced by range_based_for_loop().

Here is the call graph for this function:

◆ expandInlineProcedures()

vector< std::string > FlowCtrl::expandInlineProcedures ( std::string &  sLine)
protectedvirtual

Dummy implementation.

Parameters
sLinestd::string&
Returns
std::vector<std::string>

Reimplemented in Procedure.

Definition at line 4843 of file flowctrl.cpp.

Referenced by checkParsingModeAndExpandDefinitions().

◆ extractFlagsAndIndexVariables()

string FlowCtrl::extractFlagsAndIndexVariables ( )
protected

Read the flow control statements only and extract the index variables and the flow control flags.

Returns
std::string

Definition at line 4117 of file flowctrl.cpp.

References _parserRef, bMask, bSilent, mu::ParserBase::Eval(), findParameter(), getArgAtPos(), intCast(), nLoopSafety, mu::ParserBase::SetExpr(), StripSpaces(), sVarArray, vCmdArray, and vVarArray.

Referenced by eval().

Here is the call graph for this function:

◆ fillJumpTableAndExpandRecursives()

void FlowCtrl::fillJumpTableAndExpandRecursives ( )
protected

Go again through the whole command set and fill the jump table with the corresponding block ends and pre-evaluate the recursive expressions. Furthermore, determine, whether the loop parsing mode is reasonable.

Returns
void

Definition at line 4194 of file flowctrl.cpp.

References BLOCK_END, BLOCK_MIDDLE, evalRecursiveExpressions(), findCommand(), nJumpTable, NO_FLOW_COMMAND, prepareSwitchExpression(), StripSpaces(), and vCmdArray.

Referenced by eval().

Here is the call graph for this function:

◆ for_loop()

int FlowCtrl::for_loop ( int  nth_Cmd = 0,
int  nth_loop = 0 
)
protected

This member function realizes the FOR control flow statement. The return value is either an error value or the end of the current flow control statement.

Parameters
nth_Cmdint
nth_loopint
Returns
int

Definition at line 143 of file flowctrl.cpp.

References _lang, _optionRef, _parserRef, date::abs(), BLOCK_END, bMask, bPrintedStatus, bReturnSignal, bSilent, NumeReKernel::bSupressAnswer, bUseLoopParsingMode, calc(), CALCTYPE_BREAKCMD, CALCTYPE_CONTINUECMD, CALCTYPE_NONE, catchExceptionForTest(), evalHeader(), findCommand(), FLOWCTRL_BREAK, FLOWCTRL_CONTINUE, FLOWCTRL_ERROR, FLOWCTRL_NO_CMD, FLOWCTRL_RETURN, NumeReDebugger::gatherLoopBasedInformations(), Language::get(), getCurrentLineNumber(), NumeReKernel::getDebugger(), getErrorInformationForDebugger(), NumeReKernel::getInstance(), intCast(), mVarMap, nCalcType, nCurrentCommand, nJumpTable, nLoopSafety, NumeReKernel::printPreFmt(), mu::ParserBase::SetIndex(), NumeReDebugger::showError(), Match::sString, StripSpaces(), sVarArray, toString(), Settings::useDebugger(), vCmdArray, and vVarArray.

Referenced by setCommand().

Here is the call graph for this function:

◆ getCurrentBlock()

std::string FlowCtrl::getCurrentBlock ( ) const
inline

◆ getCurrentBlockDepth()

int FlowCtrl::getCurrentBlockDepth ( ) const

◆ getCurrentCommand()

string FlowCtrl::getCurrentCommand ( ) const

This member function returns the current command line, which will or has been evaluated in the current line.

Returns
std::string

Definition at line 4708 of file flowctrl.cpp.

References nCurrentCommand, and vCmdArray.

Referenced by NumeReDebugger::select().

◆ getCurrentLineNumber()

int FlowCtrl::getCurrentLineNumber ( ) const

This member function returns the current line number as enumerated during passing the commands via "setCommand()".

Returns
int

Definition at line 4691 of file flowctrl.cpp.

References nCurrentCommand, and vCmdArray.

Referenced by calc(), compile(), evalHeader(), evalRangeBasedHeader(), for_loop(), Procedure::GetCurrentLine(), if_fork(), range_based_for_loop(), NumeReDebugger::select(), switch_fork(), try_catch(), and while_loop().

◆ getErrorInformationForDebugger()

int FlowCtrl::getErrorInformationForDebugger ( )
protectedvirtual

Dummy implementation.

Returns
int

Reimplemented in Procedure.

Definition at line 4830 of file flowctrl.cpp.

Referenced by for_loop(), if_fork(), range_based_for_loop(), switch_fork(), try_catch(), and while_loop().

◆ getReturnSignal()

bool FlowCtrl::getReturnSignal ( ) const
inline

Definition at line 186 of file flowctrl.hpp.

References bReturnSignal.

Referenced by Procedure::execute(), and NumeReKernel::handleFlowControls().

◆ getReturnValue()

Returnvalue FlowCtrl::getReturnValue ( ) const
inline

Definition at line 182 of file flowctrl.hpp.

References ReturnVal.

Referenced by Procedure::execute().

◆ if_fork()

int FlowCtrl::if_fork ( int  nth_Cmd = 0,
int  nth_loop = -1 
)
protected

This member function realizes the IF-ELSE control flow statement. The return value is either an error value or the end of the current flow control statement.

Parameters
nth_Cmdint
nth_loopint
Returns
int

Definition at line 843 of file flowctrl.cpp.

References _optionRef, _parserRef, BLOCK_END, BLOCK_MIDDLE, bLockedPauseMode, bPrintedStatus, bReturnSignal, NumeReKernel::bSupressAnswer, bUseLoopParsingMode, calc(), CALCTYPE_BREAKCMD, CALCTYPE_CONTINUECMD, CALCTYPE_NONE, catchExceptionForTest(), evalForkFlowCommands(), evalHeader(), extractHeaderExpression(), findCommand(), FLOWCTRL_BREAK, FLOWCTRL_CONTINUE, FLOWCTRL_ERROR, FLOWCTRL_NO_CMD, FLOWCTRL_RETURN, NumeReDebugger::gatherLoopBasedInformations(), getCurrentLineNumber(), NumeReKernel::getDebugger(), getErrorInformationForDebugger(), NumeReKernel::getInstance(), mu::isnan(), mVarMap, nCalcType, nCurrentCommand, nJumpTable, NO_FLOW_COMMAND, mu::ParserBase::SetIndex(), NumeReDebugger::showError(), Match::sString, sVarArray, Settings::useDebugger(), vCmdArray, and vVarArray.

Referenced by eval(), and setCommand().

Here is the call graph for this function:

◆ isAnyFlowCtrlStatement()

bool FlowCtrl::isAnyFlowCtrlStatement ( const std::string &  sCmd)
static

This static member function returns whether the passed command is any of the known flow control statements (not only their headers).

Parameters
sCmdconst std::string&
Returns
bool

Definition at line 4742 of file flowctrl.cpp.

Referenced by setCommand().

◆ isFlowCtrlStatement()

bool FlowCtrl::isFlowCtrlStatement ( const std::string &  sCmd)
static

This static member function returns whether the passed command is a flow control statement.

Parameters
sCmdconst std::string&
Returns
bool

Definition at line 4726 of file flowctrl.cpp.

Referenced by Procedure::execute(), NumeReKernel::handleFlowControls(), NumeReKernel::MainLoop(), and Procedure::ProcCalc().

◆ isInline()

int FlowCtrl::isInline ( const std::string &  sProc)
protectedvirtual

Dummy implementation.

Parameters
sProcconst std::string&
Returns
int

Reimplemented in Procedure.

Definition at line 4804 of file flowctrl.cpp.

Referenced by checkParsingModeAndExpandDefinitions().

◆ prepareLocalVarsAndReplace()

void FlowCtrl::prepareLocalVarsAndReplace ( std::string &  sVars)
protected

This method prepares the local variables including their names and replaces them in the command lines in the current command block.

Parameters
sVarsstd::string&
Returns
void

Definition at line 4615 of file flowctrl.cpp.

References _parserRef, mu::ParserBase::DefineVar(), getPointerToVariable(), mVarMap, mu::ParserBase::mVarMapPntr, nthRecursion, replaceLocalVars(), StripSpaces(), sVarArray, toString(), vVarArray, and vVars.

Referenced by eval().

Here is the call graph for this function:

◆ prepareSwitchExpression()

void FlowCtrl::prepareSwitchExpression ( int  nSwitchStart)
protected

This member function will prepare the single logical switch expression.

Parameters
nSwitchStartint
Returns
void

Definition at line 4448 of file flowctrl.cpp.

References getNextArgument(), and vCmdArray.

Referenced by fillJumpTableAndExpandRecursives().

Here is the call graph for this function:

◆ procedureCmdInterface()

int FlowCtrl::procedureCmdInterface ( std::string &  sLine)
protectedvirtual

Dummy implementation.

Parameters
sLinestd::string&
Returns
int

Reimplemented in Procedure.

Definition at line 4791 of file flowctrl.cpp.

Referenced by calc(), and compile().

◆ procedureInterface()

FlowCtrl::ProcedureInterfaceRetVal FlowCtrl::procedureInterface ( std::string &  sLine,
Parser _parser,
FunctionDefinitionManager _functions,
MemoryManager _data,
Output _out,
PlotData _pData,
Script _script,
Settings _option,
int  nth_command 
)
protectedvirtual

Dummy implementation.

Parameters
sLinestd::string&
_parserParser&
_functionsDefine&
_dataDatafile&
_outOutput&
_pDataPlotData&
_scriptScript&
_optionSettings&
nth_commandint
Returns
ProcedureInterfaceRetVal

Reimplemented in Procedure.

Definition at line 4778 of file flowctrl.cpp.

References INTERFACE_NONE.

Referenced by calc(), compile(), evalHeader(), and evalRangeBasedHeader().

◆ range_based_for_loop()

int FlowCtrl::range_based_for_loop ( int  nth_Cmd = 0,
int  nth_loop = 0 
)
protected

This member function realizes the FOR control flow statement for range based indices. The return value is either an error value or the end of the current flow control statement.

Parameters
nth_Cmdint
nth_loopint
Returns
int

Definition at line 377 of file flowctrl.cpp.

References _dataRef, _lang, _optionRef, _parserRef, BLOCK_END, bMask, bPrintedStatus, bReturnSignal, bSilent, NumeReKernel::bSupressAnswer, bUseLoopParsingMode, calc(), CALCTYPE_BREAKCMD, CALCTYPE_CONTINUECMD, CALCTYPE_NONE, catchExceptionForTest(), CLUSTERVAR, NumeRe::ClusterManager::createTemporaryCluster(), DECLARE_NEW_VAR, mu::ParserBase::DefineVar(), DETECT_VAR_TYPE, evalRangeBasedHeader(), findCommand(), FLOWCTRL_BREAK, FLOWCTRL_CONTINUE, FLOWCTRL_ERROR, FLOWCTRL_NO_CMD, FLOWCTRL_RETURN, NumeReDebugger::gatherLoopBasedInformations(), Language::get(), getAllArguments(), NumeRe::ClusterManager::getCluster(), getCurrentLineNumber(), NumeReKernel::getDebugger(), NumeRe::Cluster::getDouble(), getErrorInformationForDebugger(), NumeReKernel::getInstance(), NumeRe::Cluster::getInternalString(), NumeReKernel::getStringParser(), NumeRe::Cluster::getType(), intCast(), NumeRe::Cluster::isDouble(), NumeRe::Cluster::isString(), NumeRe::StringVarFactory::isStringVar(), NumeRe::ClusterItem::ITEMTYPE_DOUBLE, mVarMap, nCalcType, nCurrentCommand, nJumpTable, nLoopSafety, nthRecursion, NUMVAR, NumeReKernel::printPreFmt(), replaceLocalVars(), NumeRe::Cluster::setDouble(), mu::ParserBase::SetIndex(), NumeRe::Cluster::setString(), NumeRe::StringVarFactory::setStringValue(), NumeReDebugger::showError(), NumeRe::Cluster::size(), Match::sString, STRINGVAR, StripSpaces(), sVarArray, toString(), Settings::useDebugger(), vCmdArray, and vVarArray.

Referenced by setCommand().

Here is the call graph for this function:

◆ replaceLocalVars() [1/2]

void FlowCtrl::replaceLocalVars ( const std::string &  sOldVar,
const std::string &  sNewVar,
size_t  from = 0,
size_t  to = std::string::npos 
)
protected

Replaces all occurences of the selected variable in the range of the selected lines with the new name.

Parameters
sOldVarconst std::string&
sNewVarconst std::string&
fromsize_t
tosize_t
Returns
void

Definition at line 4003 of file flowctrl.cpp.

References checkDelimiter(), isInQuotes(), min, StripSpaces(), and vCmdArray.

Here is the call graph for this function:

◆ replaceLocalVars() [2/2]

void FlowCtrl::replaceLocalVars ( std::string &  sLine)
protected

This member function is used to replace variable occurences with their (auto-determined) internal name.

Parameters
sLinestd::string&
Returns
void

Definition at line 3969 of file flowctrl.cpp.

References checkDelimiter(), and mVarMap.

Referenced by calc(), compile(), evalHeader(), evalRangeBasedHeader(), prepareLocalVarsAndReplace(), Procedure::ProcCalc(), and range_based_for_loop().

Here is the call graph for this function:

◆ reset()

◆ setCommand()

void FlowCtrl::setCommand ( std::string &  __sCmd,
int  nCurrentLine 
)

This member function is used to set a command line from the outside into the flow control statement class. The internal flow control command buffer grows as needed.

Parameters
__sCmdstd::string&
nCurrentLineint
Returns
void

Definition at line 1948 of file flowctrl.cpp.

References _lang, bReturnSignal, SyntaxError::CANNOT_EVAL_FOR, SyntaxError::CANNOT_EVAL_IF, SyntaxError::CANNOT_EVAL_SWITCH, SyntaxError::CANNOT_EVAL_WHILE, checkCaseValue(), checkFlowControlArgument(), eval(), FC_FOR, FC_IF, FC_SWITCH, FC_TRY, FC_WHILE, findCommand(), FlowCtrlCommand, for_loop(), Language::get(), getCurrentBlock(), getCurrentBlockDepth(), getMatchingParenthesis(), if_fork(), SyntaxError::invalid_position, isAnyFlowCtrlStatement(), nFlowCtrlStatements, nReturnType, NumeReKernel::print(), range_based_for_loop(), replaceAll(), reset(), setCommand(), sLoopNames, Match::sString, StripSpaces(), switch_fork(), toString(), try_catch(), SyntaxError::UNMATCHED_PARENTHESIS, validateParenthesisNumber(), vCmdArray, and while_loop().

Referenced by NumeReKernel::handleFlowControls(), Procedure::ProcCalc(), and setCommand().

Here is the call graph for this function:

◆ switch_fork()

int FlowCtrl::switch_fork ( int  nth_Cmd = 0,
int  nth_loop = -1 
)
protected

This member function realizes the SWITCH-CASE control flow statement. The return value is either an error value or the end of the current flow control statement.

Parameters
nth_Cmdint
nth_loopint
Returns
int

Definition at line 1092 of file flowctrl.cpp.

References _optionRef, _parserRef, BLOCK_END, BLOCK_MIDDLE, bLockedPauseMode, bPrintedStatus, bReturnSignal, NumeReKernel::bSupressAnswer, bUseLoopParsingMode, calc(), CALCTYPE_BREAKCMD, CALCTYPE_CONTINUECMD, CALCTYPE_NONE, catchExceptionForTest(), evalForkFlowCommands(), evalHeader(), extractHeaderExpression(), findCommand(), FLOWCTRL_BREAK, FLOWCTRL_CONTINUE, FLOWCTRL_ERROR, FLOWCTRL_NO_CMD, FLOWCTRL_RETURN, NumeReDebugger::gatherLoopBasedInformations(), getCurrentLineNumber(), NumeReKernel::getDebugger(), getErrorInformationForDebugger(), NumeReKernel::getInstance(), mVarMap, nCalcType, nCurrentCommand, nJumpTable, mu::ParserBase::SetIndex(), NumeReDebugger::showError(), Match::sString, sVarArray, Settings::useDebugger(), vCmdArray, and vVarArray.

Referenced by eval(), and setCommand().

Here is the call graph for this function:

◆ try_catch()

◆ updateTestStats()

void FlowCtrl::updateTestStats ( )
protected

Updates the test statistics with the total test statistics.

Returns
void

Definition at line 4669 of file flowctrl.cpp.

References _assertionHandler, baseline, NumeRe::ClusterManager::getCluster(), NumeReKernel::getInstance(), NumeReKernel::getMemoryManager(), Assertion::getStats(), AssertionStats::nCheckedAssertions, AssertionStats::nFailedAssertions, NumeRe::Cluster::setDouble(), and sTestClusterName.

Referenced by calc(), compile(), Procedure::execute(), and Procedure::procedureInterface().

Here is the call graph for this function:

◆ while_loop()

int FlowCtrl::while_loop ( int  nth_Cmd = 0,
int  nth_loop = 0 
)
protected

Member Data Documentation

◆ _dataRef

MemoryManager* FlowCtrl::_dataRef
private

◆ _functionRef

◆ _optionRef

◆ _outRef

Output* FlowCtrl::_outRef
private

Definition at line 53 of file flowctrl.hpp.

Referenced by calc(), compile(), eval(), evalHeader(), evalRangeBasedHeader(), FlowCtrl(), and reset().

◆ _parserRef

◆ _pDataRef

PlotData* FlowCtrl::_pDataRef
private

Definition at line 56 of file flowctrl.hpp.

Referenced by calc(), compile(), eval(), evalHeader(), evalRangeBasedHeader(), FlowCtrl(), and reset().

◆ _scriptRef

Script* FlowCtrl::_scriptRef
private

Definition at line 57 of file flowctrl.hpp.

Referenced by calc(), compile(), eval(), evalHeader(), evalRangeBasedHeader(), FlowCtrl(), and reset().

◆ baseline

AssertionStats FlowCtrl::baseline
protected

Definition at line 126 of file flowctrl.hpp.

Referenced by Procedure::execute(), and updateTestStats().

◆ bEvaluatingFlowControlStatements

bool FlowCtrl::bEvaluatingFlowControlStatements
protected

◆ bFunctionsReplaced

bool FlowCtrl::bFunctionsReplaced
protected

◆ bLockedPauseMode

bool FlowCtrl::bLockedPauseMode
protected

◆ bLoopSupressAnswer

bool FlowCtrl::bLoopSupressAnswer
private

Definition at line 49 of file flowctrl.hpp.

Referenced by calc(), compile(), eval(), and FlowCtrl().

◆ bMask

bool FlowCtrl::bMask
protected

◆ bPrintedStatus

◆ bReturnSignal

◆ bSilent

bool FlowCtrl::bSilent
protected

◆ bUseLoopParsingMode

◆ FlowCtrlCommand

friend FlowCtrl::FlowCtrlCommand
private

Definition at line 46 of file flowctrl.hpp.

Referenced by setCommand().

◆ inlineClusters

std::set<std::string> FlowCtrl::inlineClusters
protected

Definition at line 119 of file flowctrl.hpp.

Referenced by Procedure::getInlined(), and reset().

◆ mVarMap

◆ nCalcType

std::vector<int> FlowCtrl::nCalcType
protected

◆ nCurrentCommand

◆ nDebuggerCode

◆ nFlowCtrlStatements

int FlowCtrl::nFlowCtrlStatements[FC_COUNT]
protected

Definition at line 110 of file flowctrl.hpp.

Referenced by FlowCtrl(), getCurrentBlockDepth(), reset(), and setCommand().

◆ nJumpTable

◆ nLoopSafety

int FlowCtrl::nLoopSafety
protected

◆ nReturnType

int FlowCtrl::nReturnType
protected

◆ nthRecursion

◆ ReturnVal

Returnvalue FlowCtrl::ReturnVal
protected

◆ sLoopNames

std::string FlowCtrl::sLoopNames
protected

Definition at line 108 of file flowctrl.hpp.

Referenced by FlowCtrl(), getCurrentBlock(), reset(), and setCommand().

◆ sLoopPlotCompose

std::string FlowCtrl::sLoopPlotCompose
protected

Definition at line 117 of file flowctrl.hpp.

Referenced by calc(), compile(), FlowCtrl(), and reset().

◆ sTestClusterName

std::string FlowCtrl::sTestClusterName
protected

Definition at line 127 of file flowctrl.hpp.

Referenced by Procedure::execute(), Procedure::resetProcedure(), and updateTestStats().

◆ sVarArray

◆ vCmdArray

◆ vVarArray

◆ vVars

varmap_type FlowCtrl::vVars
protected

Definition at line 105 of file flowctrl.hpp.

Referenced by prepareLocalVarsAndReplace(), and reset().


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