#include <xmlflateval.h>
Public Member Functions | |
virtual std::string | getName () const |
Get the type of this evaluator. | |
virtual void | addImport (const std::string &code, const xercesc::DOMElement *e) |
virtual bool | valueIsOfType (const Value &value, ValueType type) const |
virtual std::map < boost::filesystem::path, std::pair < boost::filesystem::path, bool > > & | requiredFiles () const |
return a list of all required files of the evaluator (excluding dependent files of libraries) | |
virtual void | convertIndex (Value &v, bool evalTo1Based) |
![]() | |
~Eval () | |
Destructor. | |
Eval (const Eval &other)=delete | |
Eval (Eval &&other)=delete | |
Eval & | operator= (const Eval &other)=delete |
Eval & | operator= (Eval &&other)=delete |
void | addParam (const std::string ¶mName, const Value &value) |
Add a value to the current parameters. | |
void | addParamSet (const xercesc::DOMElement *e) |
Value | eval (const xercesc::DOMElement *e) |
Value | eval (const xercesc::DOMAttr *a, const xercesc::DOMElement *pe=NULL) |
template<typename T > | |
T | cast (const Value &value, xercesc::DOMDocument *doc) const |
template<typename T > | |
T | cast (const Value &value) const |
see cast(const Value &value, shared_ptr<DOMDocument> &doc) | |
Value | stringToValue (const std::string &str, const xercesc::DOMElement *e=NULL, bool fullEval=true) const |
template<class T > | |
Value | create (const T &v) const |
create a value of the given type | |
template<> | |
string | cast (const Value &value) const |
template<> | |
CodeString | cast (const Value &value) const |
template<> | |
double | cast (const Value &value) const |
template<> | |
int | cast (const Value &value) const |
template<> | |
vector< double > | cast (const Value &value) const |
template<> | |
SX | cast (const Value &value) const |
template<> | |
vector< vector< double > > | cast (const Value &value) const |
template<> | |
DOMElement * | cast (const Value &value, xercesc::DOMDocument *doc) const |
template<> | |
Eval::Value | create (const double &v) const |
template<> | |
Eval::Value | create (const vector< double > &v) const |
template<> | |
Eval::Value | create (const vector< vector< double > > &v) const |
template<> | |
Eval::Value | create (const string &v) const |
template<> | |
CodeString | cast (const Value &value) const |
template<> | |
double | cast (const Value &value) const |
template<> | |
int | cast (const Value &value) const |
template<> | |
Eval::Function | cast (const Value &value) const |
template<> | |
Eval::Value | create (const double &v) const |
![]() | |
Atom & | operator= (const Atom &) |
void | setMessageStreamActive (MsgType type, bool active) |
void | getMessageStream (MsgType type, std::shared_ptr< bool > &a, std::shared_ptr< std::ostream > &s) |
void | adoptMessageStreams (const Atom *src=NULL) |
std::ostream & | msg (MsgType type) |
bool | msgAct (MsgType type) |
Static Public Member Functions | |
static std::string | getNameStatic () |
![]() | |
static std::shared_ptr< Eval > | createEvaluator (const std::string &evalName, std::vector< boost::filesystem::path > *dependencies_=NULL) |
Create a evaluator. | |
template<class E > | |
static void | registerEvaluator () |
static void | setValue (xercesc::DOMElement *e, const Value &v) |
Set value on DOMElement (is used by Eval::cast) | |
![]() | |
static void | setCurrentMessageStream (MsgType type, const std::shared_ptr< bool > &a=std::make_shared< bool >(true), const std::shared_ptr< std::ostream > &s=std::make_shared< std::ostream >(std::cout.rdbuf())) |
static std::ostream & | msgStatic (MsgType type) |
static bool | msgActStatic (MsgType type) |
Protected Member Functions | |
XMLFlatEval (std::vector< boost::filesystem::path > *dependencies_=NULL) | |
virtual Value | createSwigByTypeName (const std::string &typeName) const |
create a SWIG object of name typeName. | |
virtual Value | callFunction (const std::string &name, const std::vector< Value > &args) const |
virtual Value | fullStringToValue (const std::string &str, const xercesc::DOMElement *e=NULL) const |
evaluate the string str using the current parameters and return the result. | |
virtual void * | getSwigThis (const Value &value) const |
get the SWIG pointer of this value. | |
virtual std::string | getSwigType (const Value &value) const |
get the SWIG type (class name) of this value. | |
![]() | |
Eval (std::vector< boost::filesystem::path > *dependencies_) | |
Constructor. | |
void | pushContext () |
Push the current context to a internal stack. | |
void | popContext () |
Overwrite the current context with the top level context from the internal stack. | |
template<typename T > | |
Value | createSwig () const |
std::string | partialStringToString (const std::string &str, const xercesc::DOMElement *e) const |
evaluate str partially and return result as an std::string | |
void | addStaticDependencies (const xercesc::DOMElement *e) const |
![]() | |
Atom (const Atom &src) | |
Friends | |
class | Eval |
Additional Inherited Members | |
![]() | |
enum | ValueType { ScalarType, VectorType, MatrixType, StringType, FunctionType } |
typedef std::pair< std::vector < casadi::SX >, std::vector < casadi::SX > > | Function |
Typedef for a shared value. | |
typedef boost::variant < std::shared_ptr< void > , Function > | Value |
![]() | |
enum | MsgType |
![]() | |
template<class E > | |
static std::shared_ptr< Eval > | newEvaluator (std::vector< boost::filesystem::path > *dependencies_) |
![]() | |
std::vector < boost::filesystem::path > * | dependencies |
std::unordered_map < std::string, Value > | currentParam |
std::stack< std::unordered_map < std::string, Value > > | paramStack |
std::shared_ptr< void > | currentImport |
std::stack< std::shared_ptr < void > > | importStack |
Value | casadiValue |
A (dummy) evaluator taking the xmlflat syntax as input and output. This evaluator cannot evaluate any expresion nor any parametrisation or casadi actions can be done. Its just a dummy evaluator for testing. But it can be used for evaluate xmlflat file or a normal file without and parametrisation and without any expression.
|
virtual |
Import evaluator statements. This routine highly depends on the evaluator. See the spezialized evaluators documentation for details.
Implements MBXMLUtils::Eval.
|
protectedvirtual |
Return the value of a call to name using the arguments args. The following functions must be implemented by the evaluator:
Implements MBXMLUtils::Eval.
|
inlinevirtual |
convert a index (scalar or vector). if evalTo1Based == true: convert from the script language 0/1 base to 1 base. if evalTo1Based == false: convert from 1 base to the script language 0/1 base.
Implements MBXMLUtils::Eval.
|
virtual |
check whether value is of type type. Note that true is only returned if the value is really of type type. If value can be casted to type type but is not of this type then false is returned. Note that their are evaluators (e.g. octave) which cannot distinguish between e.g. a scalar, a vector of size 1 or a matrix of size 1x1. Hence, these evaluators will return true for ScalarType in all these three cases and analog for VectorType.
Implements MBXMLUtils::Eval.