22#include "../utils/tools.hpp"
23#include "../ui/error.hpp"
24#include "../datamanagement/memorymanager.hpp"
25#include "../maths/functionimplementation.hpp"
26#include "../maths/define.hpp"
27#include "../settings.hpp"
28#include "../io/output.hpp"
29#include "../plotting/plotdata.hpp"
30#include "../script.hpp"
32#ifndef PROCEDUREVARFACTORY_HPP
33#define PROCEDUREVARFACTORY_HPP
76 std::string
resolveArguments(std::string sProcedureCommandLine,
size_t nMapSize = std::string::npos);
77 std::string
resolveLocalVars(std::string sProcedureCommandLine,
size_t nMapSize = std::string::npos);
78 std::string
resolveLocalStrings(std::string sProcedureCommandLine,
size_t nMapSize = std::string::npos);
79 std::string
resolveLocalTables(std::string sProcedureCommandLine,
size_t nMapSize = std::string::npos);
80 std::string
resolveLocalClusters(std::string sProcedureCommandLine,
size_t nMapSize = std::string::npos);
82 void checkArgument(
const std::string& sArgument,
const std::string& sArgumentList,
unsigned int nCurrentIndex);
83 void checkArgumentValue(
const std::string& sArgument,
const std::string& sArgumentList,
unsigned int nCurrentIndex);
91 std::map<std::string, std::pair<std::string, mu::value_type*>>
mLocalVars;
92 std::map<std::string, std::pair<std::string, std::string>>
mLocalStrings;
106 bool isReference(
const std::string& sArgName)
const;
This class implements the function definition managing instance.
This class represents the central memory managing instance. It will handle all tables and clusters,...
This class contains all the plot settings usable by the plotting algorithm.
This class implements the logic to evaluate complex procedures, which may be called recursively.
This class is the variable factory used by procedure instances to create their local variables and re...
std::string resolveLocalStrings(std::string sProcedureCommandLine, size_t nMapSize=std::string::npos)
This private member function will resolve the calls to string variables in the passed procedure comma...
std::string resolveVariables(const std::string &sProcedureCommandLine)
std::map< std::string, std::string > createProcedureArguments(std::string sArgumentList, std::string sArgumentValues)
This member function will create the procedure arguments for the current procedure.
std::string resolveLocalTables(std::string sProcedureCommandLine, size_t nMapSize=std::string::npos)
This private member function will resolve the calls to local tables in the passed procedure command l...
std::string sInlineVarDef
std::map< std::string, VarType > mLocalArgs
std::map< std::string, std::string > mLocalClusters
void createLocalTables(std::string sTableList)
This member function will create the local tables for the current procedure.
std::string sInlineStringDef
void evaluateProcedureArguments(std::string ¤tArg, std::string ¤tValue, const std::string &sArgumentList)
This memberfunction will evaluate the passed procedure arguments and convert them to local variables ...
std::string resolveLocalVars(std::string sProcedureCommandLine, size_t nMapSize=std::string::npos)
This private member function will resolve the calls to numerical variables in the passed procedure co...
void createLocalStrings(std::string sStringList)
This member function will create the local string variables for the current procedure.
std::string replaceProcedureName(std::string sProcedureName) const
Replaces path characters and whitespaces to create variable names fitting for an non- relative proced...
void reset()
Resets the object.
void checkArgument(const std::string &sArgument, const std::string &sArgumentList, unsigned int nCurrentIndex)
This private member function checks, whether the keywords "var", "str" or "tab" are used in the curre...
std::map< std::string, std::string > mArguments
void createLocalInlineStrings(std::string sVarList)
This private member function creates the local string variables for inlined procedures.
FunctionDefinitionManager * _functionRef
std::map< std::string, std::pair< std::string, std::string > > mLocalStrings
std::string resolveLocalClusters(std::string sProcedureCommandLine, size_t nMapSize=std::string::npos)
This private member function will resolve the calls to local clusters in the passed procedure command...
ProcedureVarFactory()
Constructor.
std::string createMangledArgName(const std::string &sDefinedName) const
Creates a mangled name for an argument.
~ProcedureVarFactory()
Destructor.
bool checkSymbolName(const std::string &sSymbolName) const
Checks for invalid characters or similar.
unsigned int countVarListElements(const std::string &sVarList)
This private memebr function counts the number of elements in the passed string list.
std::string resolveArguments(std::string sProcedureCommandLine, size_t nMapSize=std::string::npos)
This private member function will resolve the calls to arguments in the passed procedure command line...
Procedure * _currentProcedure
bool delayDeletionOfReturnedTable(const std::string &sTableName)
Searches for a local table or a local table in the arguments with the corresponding identifier,...
std::vector< std::string > vInlineArgDef
void createLocalClusters(std::string sClusterList)
This member function will create the local clusters for the current procedure.
void checkArgumentValue(const std::string &sArgument, const std::string &sArgumentList, unsigned int nCurrentIndex)
This private member function checks, whether the keywords "var", "str" or "tab" are used in the curre...
unsigned int nth_procedure
void createLocalInlineVars(std::string sVarList)
This private member function creates the local variables for inlined procedures.
std::map< std::string, std::string > mLocalTables
std::string createMangledVarName(const std::string &sDefinedName) const
Creates a mangled name for a variable.
std::string createTestStatsCluster()
Creates a special cluster containing the test statistics.
bool isReference(const std::string &sArgName) const
Returns whether the passed argument representation (i.e. local variable name) is actually a reference...
void init()
This member function is the initializer function.
void createLocalVars(std::string sVarList)
This member function will create the local numerical variables for the current procedure.
std::map< std::string, std::pair< std::string, mu::value_type * > > mLocalVars
This class manages the setting values of the internal (kernel) settings of this application.
Mathematical expressions parser.