#include <EigenLab.h>
Classes | |
struct | Chunk |
Public Types | |
typedef std::map< std::string, Value< Derived > > | ValueMap |
Public Member Functions | |
bool | cacheExpressions () const |
void | clearCachedExpressions () |
void | clearVar (const std::string &name) |
Value< Derived > | eval (const std::string &expression) |
bool | hasVar (const std::string &name) |
Parser () | |
void | setCacheExpressions (bool b) |
Value< Derived > & | var (const std::string &name) |
ValueMap & | vars () |
~Parser () | |
Static Public Member Functions | |
template<typename T > | |
static bool | isNumber (const std::string &str, T *num=0) |
template<typename T > | |
static std::string | numberToString (T num, int precision=0) |
static std::vector< std::string > | split (const std::string &str, const char delimeter) |
template<typename T > | |
static T | stringToNumber (const std::string &str) |
static std::string | trim (const std::string &str) |
Private Types | |
typedef std::vector< Chunk > | ChunkArray |
enum | ChunkType { VALUE = 0, VARIABLE, OPERATOR, FUNCTION } |
typedef Derived::Index | Index |
Private Member Functions | |
void | evalAddition (ChunkArray &chunks) |
void | evalAssignment (ChunkArray &chunks) |
void | evalFunction (const std::string &name, std::vector< std::string > &args, Value< Derived > &result) |
bool | evalFunction_1_lt (const std::string &name, Value< Derived > &arg, Value< Derived > &result, std::false_type) |
bool | evalFunction_1_lt (const std::string &name, Value< Derived > &arg, Value< Derived > &result, std::true_type) |
bool | evalFunction_2_lt (const std::string &name, Value< Derived > &arg0, Value< Derived > &arg1, Value< Derived > &result, std::false_type) |
bool | evalFunction_2_lt (const std::string &name, Value< Derived > &arg0, Value< Derived > &arg1, Value< Derived > &result, std::true_type) |
void | evalIndexRange (const std::string &str, int *first, int *last, int numIndices) |
void | evalIndices (ChunkArray &chunks) |
void | evalMatrixExpression (const std::string &str, Value< Derived > &mat) |
void | evalMultiplication (ChunkArray &chunks) |
void | evalNegations (ChunkArray &chunks) |
void | evalNumericRange (const std::string &str, Value< Derived > &mat) |
void | evalPowers (ChunkArray &chunks) |
std::string::const_iterator | findClosingBracket (const std::string &str, const std::string::const_iterator openingBracket, const char closingBracket) const |
bool | isFunction (const std::string &str) const |
bool | isOperator (const char c) const |
bool | isOperator (const std::string &str) const |
bool | isVariable (const std::string &name) const |
std::vector< std::string > | splitArguments (const std::string &str, const char delimeter) const |
void | splitEquationIntoChunks (const std::string &expression, ChunkArray &chunks, std::string &code) |
Private Attributes | |
bool | mCacheChunkedExpressions |
std::map< std::string, ChunkArray > | mCachedChunkedExpressions |
std::vector< std::string > | mFunctions |
std::string | mOperators1 |
std::string | mOperators2 |
ValueMap | mVariables |
Definition at line 131 of file EigenLab.h.
typedef std::vector<Chunk> EigenLab::Parser< Derived >::ChunkArray [private] |
Definition at line 154 of file EigenLab.h.
typedef Derived::Index EigenLab::Parser< Derived >::Index [private] |
Definition at line 155 of file EigenLab.h.
typedef std::map<std::string, Value<Derived> > EigenLab::Parser< Derived >::ValueMap |
Definition at line 135 of file EigenLab.h.
enum EigenLab::Parser::ChunkType [private] |
Definition at line 153 of file EigenLab.h.
EigenLab::Parser< Derived >::Parser | ( | ) |
Definition at line 233 of file EigenLab.h.
EigenLab::Parser< Derived >::~Parser | ( | ) | [inline] |
Definition at line 177 of file EigenLab.h.
bool EigenLab::Parser< Derived >::cacheExpressions | ( | ) | const [inline] |
Definition at line 172 of file EigenLab.h.
void EigenLab::Parser< Derived >::clearCachedExpressions | ( | ) | [inline] |
Definition at line 174 of file EigenLab.h.
void EigenLab::Parser< Derived >::clearVar | ( | const std::string & | name | ) | [inline] |
Definition at line 169 of file EigenLab.h.
Value< Derived > EigenLab::Parser< Derived >::eval | ( | const std::string & | expression | ) |
Definition at line 283 of file EigenLab.h.
void EigenLab::Parser< Derived >::evalAddition | ( | ChunkArray & | chunks | ) | [private] |
Definition at line 1339 of file EigenLab.h.
void EigenLab::Parser< Derived >::evalAssignment | ( | ChunkArray & | chunks | ) | [private] |
Definition at line 1421 of file EigenLab.h.
void EigenLab::Parser< Derived >::evalFunction | ( | const std::string & | name, |
std::vector< std::string > & | args, | ||
Value< Derived > & | result | ||
) | [private] |
Definition at line 805 of file EigenLab.h.
bool EigenLab::Parser< Derived >::evalFunction_1_lt | ( | const std::string & | name, |
Value< Derived > & | arg, | ||
Value< Derived > & | result, | ||
std::false_type | |||
) | [private] |
Definition at line 703 of file EigenLab.h.
bool EigenLab::Parser< Derived >::evalFunction_1_lt | ( | const std::string & | name, |
Value< Derived > & | arg, | ||
Value< Derived > & | result, | ||
std::true_type | |||
) | [private] |
Definition at line 679 of file EigenLab.h.
bool EigenLab::Parser< Derived >::evalFunction_2_lt | ( | const std::string & | name, |
Value< Derived > & | arg0, | ||
Value< Derived > & | arg1, | ||
Value< Derived > & | result, | ||
std::false_type | |||
) | [private] |
Definition at line 799 of file EigenLab.h.
bool EigenLab::Parser< Derived >::evalFunction_2_lt | ( | const std::string & | name, |
Value< Derived > & | arg0, | ||
Value< Derived > & | arg1, | ||
Value< Derived > & | result, | ||
std::true_type | |||
) | [private] |
Definition at line 709 of file EigenLab.h.
void EigenLab::Parser< Derived >::evalIndexRange | ( | const std::string & | str, |
int * | first, | ||
int * | last, | ||
int | numIndices | ||
) | [private] |
Definition at line 525 of file EigenLab.h.
void EigenLab::Parser< Derived >::evalIndices | ( | ChunkArray & | chunks | ) | [private] |
Definition at line 1100 of file EigenLab.h.
void EigenLab::Parser< Derived >::evalMatrixExpression | ( | const std::string & | str, |
Value< Derived > & | mat | ||
) | [private] |
Definition at line 581 of file EigenLab.h.
void EigenLab::Parser< Derived >::evalMultiplication | ( | ChunkArray & | chunks | ) | [private] |
Definition at line 1248 of file EigenLab.h.
void EigenLab::Parser< Derived >::evalNegations | ( | ChunkArray & | chunks | ) | [private] |
Definition at line 1139 of file EigenLab.h.
void EigenLab::Parser< Derived >::evalNumericRange | ( | const std::string & | str, |
Value< Derived > & | mat | ||
) | [private] |
Definition at line 1030 of file EigenLab.h.
void EigenLab::Parser< Derived >::evalPowers | ( | ChunkArray & | chunks | ) | [private] |
Definition at line 1181 of file EigenLab.h.
std::string::const_iterator EigenLab::Parser< Derived >::findClosingBracket | ( | const std::string & | str, |
const std::string::const_iterator | openingBracket, | ||
const char | closingBracket | ||
) | const [private] |
Definition at line 495 of file EigenLab.h.
bool EigenLab::Parser< Derived >::hasVar | ( | const std::string & | name | ) | [inline] |
Definition at line 166 of file EigenLab.h.
bool EigenLab::Parser< Derived >::isFunction | ( | const std::string & | str | ) | const [inline, private] |
Definition at line 198 of file EigenLab.h.
bool EigenLab::Parser< Derived >::isNumber | ( | const std::string & | str, |
T * | num = 0 |
||
) | [static] |
Definition at line 1565 of file EigenLab.h.
bool EigenLab::Parser< Derived >::isOperator | ( | const char | c | ) | const [inline, private] |
Definition at line 196 of file EigenLab.h.
bool EigenLab::Parser< Derived >::isOperator | ( | const std::string & | str | ) | const [private] |
Definition at line 1088 of file EigenLab.h.
bool EigenLab::Parser< Derived >::isVariable | ( | const std::string & | name | ) | const [inline, private] |
Definition at line 195 of file EigenLab.h.
std::string EigenLab::Parser< Derived >::numberToString | ( | T | num, |
int | precision = 0 |
||
) | [static] |
Definition at line 1591 of file EigenLab.h.
void EigenLab::Parser< Derived >::setCacheExpressions | ( | bool | b | ) | [inline] |
Definition at line 173 of file EigenLab.h.
std::vector< std::string > EigenLab::Parser< Derived >::split | ( | const std::string & | str, |
const char | delimeter | ||
) | [static] |
Definition at line 1549 of file EigenLab.h.
std::vector< std::string > EigenLab::Parser< Derived >::splitArguments | ( | const std::string & | str, |
const char | delimeter | ||
) | const [private] |
Definition at line 508 of file EigenLab.h.
void EigenLab::Parser< Derived >::splitEquationIntoChunks | ( | const std::string & | expression, |
ChunkArray & | chunks, | ||
std::string & | code | ||
) | [private] |
Definition at line 316 of file EigenLab.h.
T EigenLab::Parser< Derived >::stringToNumber | ( | const std::string & | str | ) | [static] |
Definition at line 1579 of file EigenLab.h.
std::string EigenLab::Parser< Derived >::trim | ( | const std::string & | str | ) | [static] |
Definition at line 1538 of file EigenLab.h.
Value<Derived>& EigenLab::Parser< Derived >::var | ( | const std::string & | name | ) | [inline] |
Definition at line 163 of file EigenLab.h.
ValueMap& EigenLab::Parser< Derived >::vars | ( | ) | [inline] |
Definition at line 162 of file EigenLab.h.
bool EigenLab::Parser< Derived >::mCacheChunkedExpressions [private] |
Definition at line 156 of file EigenLab.h.
std::map<std::string, ChunkArray> EigenLab::Parser< Derived >::mCachedChunkedExpressions [private] |
Definition at line 157 of file EigenLab.h.
std::vector<std::string> EigenLab::Parser< Derived >::mFunctions [private] |
Definition at line 143 of file EigenLab.h.
std::string EigenLab::Parser< Derived >::mOperators1 [private] |
Definition at line 142 of file EigenLab.h.
std::string EigenLab::Parser< Derived >::mOperators2 [private] |
Definition at line 142 of file EigenLab.h.
ValueMap EigenLab::Parser< Derived >::mVariables [private] |
Definition at line 139 of file EigenLab.h.