20#ifndef MUPARSERSTATE_HPP
21#define MUPARSERSTATE_HPP
81 void create(
const std::string& sTargetVect)
96 void create(
const std::string& sTargetVect,
const std::string& sMaFunc)
112 void create(
const std::string& sTargetVect,
const std::vector<int>& vCompDefs)
243 return m_stacks.back().m_states.back();
This class is the immutable (const) version of a string view. It can be constructed from a MutableStr...
Bytecode implementation of the Math Parser.
void clear()
Delete the bytecode.
Definition of the parser bytecode class.
This file contains standard definitions used by the parser.
Namespace for mathematical applications.
std::vector< value_type > valbuf_type
Type used for storing an array of values.
std::map< string_type, value_type * > varmap_type
Type used for storing variables.
Describes the cache of a single expression. Might contain multiple cached data accesses.
std::vector< CachedDataAccess > m_accesses
Describes an already evaluated data access, which can be reconstructed from the current parser state.
std::string sAccessEquation
This structure defines the overall expression target, if it is composed out of a temporary vector lik...
std::vector< mu::value_type * > m_targets
void create(StringView sTargets, const varmap_type &usedVars)
Create a expression target made up from multiple variables.
void assign(const valbuf_type &buffer, int nResults)
Assign the calculated values to the target vector components.
This is the parser state stack for a whole command line. Might contain multiple single states and cac...
std::vector< State > m_states
ExpressionTarget m_target
Defines a single parser state, which contains all necessary information for evaluating a single expre...
VectorEvaluation m_vectEval
ParserByteCode m_byteCode
valbuf_type m_stackBuffer
This is a stack of all parser line state stacks. Can be used to gather a bunch of already parsed comm...
std::vector< LineStateStack > m_stacks
LineStateStack & operator[](size_t i)
State & operator()(size_t i, size_t j)
This structure contains the necessary data to resolve all preevaluated vectors.
void create(const std::string &sTargetVect)
Create a standard vector pre- evaluation.
void create(const std::string &sTargetVect, const std::string &sMaFunc)
Create a multi-argument function pre- evaluation for vector arguments.
void create(const std::string &sTargetVect, const std::vector< int > &vCompDefs)
Create a vector expansion pre- evaluation.
@ EVALTYPE_VECTOR_EXPANSION
std::vector< int > m_componentDefs