COPASI API
4.16.103
|
#include <CEvaluationNodeLogical.h>
Public Types | |
enum | SubType { INVALID = 0x00FFFFFF, OR = 0x00000001, XOR = 0x00000002, AND = 0x00000003, EQ = 0x00000004, NE = 0x00000005, GT = 0x00000006, GE = 0x00000007, LT = 0x00000008, LE = 0x00000009 } |
![]() | |
enum | Type { INVALID = 0xFF000000, NUMBER = 0x01000000, CONSTANT = 0x02000000, OPERATOR = 0x03000000, OBJECT = 0x04000000, FUNCTION = 0x05000000, CALL = 0x06000000, STRUCTURE = 0x07000000, CHOICE = 0x08000000, VARIABLE = 0x09000000, WHITESPACE = 0x0a000000, LOGICAL = 0x0b000000, MV_FUNCTION = 0x0c000000, VECTOR = 0x0d000000, DELAY = 0x0e000000 } |
![]() | |
typedef std::string | Data |
Public Member Functions | |
virtual void | calculate () |
CEvaluationNodeLogical (const SubType &subType, const Data &data) | |
CEvaluationNodeLogical (const CEvaluationNodeLogical &src) | |
virtual bool | compile (const CEvaluationTree *pTree) |
virtual std::string | getBerkeleyMadonnaString (const std::vector< std::string > &children) const |
virtual std::string | getCCodeString (const std::vector< std::string > &children) const |
virtual std::string | getDisplayString (const std::vector< std::string > &children) const |
virtual std::string | getInfix (const std::vector< std::string > &children) const |
virtual std::string | getMMLString (const std::vector< std::string > &children, bool expand, const std::vector< std::vector< std::string > > &variables) const |
virtual std::string | getXPPString (const std::vector< std::string > &children) const |
virtual bool | isBoolean () const |
virtual ASTNode * | toAST (const CCopasiDataModel *pDataModel) const |
virtual | ~CEvaluationNodeLogical () |
![]() | |
void | addChildren (const std::vector< CEvaluationNode * > &children) |
std::string | buildBerkeleyMadonnaString () const |
std::string | buildCCodeString () const |
std::string | buildDisplayString () const |
std::string | buildInfix () const |
std::string | buildMMLString (bool expand, const std::vector< std::vector< std::string > > &variables) const |
std::string | buildXPPString () const |
CEvaluationNode () | |
CEvaluationNode (const CEvaluationNode &src) | |
CEvaluationNode * | copyBranch () const |
CEvaluationNode * | copyNode (CEvaluationNode *child1, CEvaluationNode *child2) const |
CEvaluationNode * | copyNode (const std::vector< CEvaluationNode * > &children) const |
const CEvaluationNode * | findTopMinus (const std::vector< CFunctionAnalyzer::CValue > &callParameters) const |
const Type & | getType () const |
const C_FLOAT64 & | getValue () const |
const C_FLOAT64 * | getValuePointer () const |
virtual bool | operator!= (const CEvaluationNode &right) const |
bool | operator< (const CEvaluationNode &right) const |
bool | operator< (const CEvaluationNode &rhs) |
bool | operator== (const CEvaluationNode &right) const |
void | printRecursively (std::ostream &os, int indent=0) const |
void | printRecursively () const |
virtual CEvaluationNode * | simplifyNode (const std::vector< CEvaluationNode * > &children) const |
CEvaluationNode * | splitBranch (const CEvaluationNode *splitnode, bool left) const |
virtual | ~CEvaluationNode () |
![]() | |
virtual bool | addChild (CCopasiNode< Data > *pChild, CCopasiNode< Data > *pAfter=NULL) |
bool | addSibling (CCopasiNode< Data > *pSibling, CCopasiNode< Data > *pAfter=NULL) |
CCopasiNode (CCopasiNode< Data > *pParent=NULL) | |
CCopasiNode (const CCopasiNode< Data > &src) | |
CCopasiNode (const Data &data, CCopasiNode< Data > *pParent=NULL) | |
bool | deleteChildren () |
CCopasiNode< Data > * | getChild () |
const CCopasiNode< Data > * | getChild () const |
CCopasiNode< Data > * | getChild (const size_t &index) |
const CCopasiNode< Data > * | getChild (const size_t &index) const |
virtual const Data & | getData () const |
CCopasiNode< Data > * | getNext () |
const CCopasiNode< Data > * | getNext () const |
CCopasiNode< Data > * | getNextNonChild () |
const CCopasiNode< Data > * | getNextNonChild () const |
size_t | getNumChildren () const |
CCopasiNode< Data > * | getParent () |
const CCopasiNode< Data > * | getParent () const |
CCopasiNode< Data > * | getSibling () |
const CCopasiNode< Data > * | getSibling () const |
virtual bool | removeChild (CCopasiNode< Data > *pChild) |
virtual bool | setData (const Data &data) |
virtual | ~CCopasiNode () |
Static Public Member Functions | |
static CEvaluationNode * | fromAST (const ASTNode *pASTNode, const std::vector< CEvaluationNode * > &children) |
![]() | |
static CEvaluationNode * | create (const Type &type, const Data &data) |
static bool | isKeyword (const std::string &str) |
static Type | subType (const Type &type) |
static Type | type (const Type &type) |
Private Member Functions | |
CEvaluationNodeLogical () | |
Private Attributes | |
CEvaluationNode * | mpLeft |
CEvaluationNode * | mpRight |
Additional Inherited Members | |
![]() | |
CEvaluationNode (const Type &type, const Data &data) | |
![]() | |
bool | setChild (CCopasiNode< Data > *pChild) |
bool | setParent (CCopasiNode< Data > *pParent) |
bool | setSibling (CCopasiNode< Data > *pSibling) |
![]() | |
class CEvaluationNode::CPrecedence | mPrecedence |
const C_FLOAT64 * | mpValue |
Type | mType |
C_FLOAT64 | mValue |
![]() | |
Data | mData |
This is the class for nodes presenting opertors used in an evaluation trees.
Definition at line 32 of file CEvaluationNodeLogical.h.
Enumeration of possible node types.
Enumerator | |
---|---|
INVALID | |
OR | |
XOR | |
AND | |
EQ | |
NE | |
GT | |
GE | |
LT | |
LE |
Definition at line 38 of file CEvaluationNodeLogical.h.
|
private |
Default constructor
Definition at line 21 of file CEvaluationNodeLogical.cpp.
Referenced by fromAST().
Default constructor
const | SubType & subType |
const | Data & data |
Definition at line 27 of file CEvaluationNodeLogical.cpp.
References AND, EQ, GE, GT, LE, LT, CEvaluationNode::mPrecedence, CEvaluationNode::mType, NE, OR, PRECEDENCE_LOGIG_AND, PRECEDENCE_LOGIG_EQ, PRECEDENCE_LOGIG_GE, PRECEDENCE_LOGIG_GT, PRECEDENCE_LOGIG_LE, PRECEDENCE_LOGIG_LT, PRECEDENCE_LOGIG_NE, PRECEDENCE_LOGIG_OR, PRECEDENCE_LOGIG_XOR, and XOR.
CEvaluationNodeLogical::CEvaluationNodeLogical | ( | const CEvaluationNodeLogical & | src | ) |
Copy constructor
const | CEvaluationNodeLogical & src |
Definition at line 73 of file CEvaluationNodeLogical.cpp.
|
virtual |
Calculate the numerical result of the node. It is assumed that all child nodes are up to date.
Reimplemented from CEvaluationNode.
Definition at line 84 of file CEvaluationNodeLogical.h.
References AND, EQ, GE, CEvaluationNode::getValue(), GT, LE, LT, mpLeft, mpRight, CEvaluationNode::mType, CEvaluationNode::mValue, NE, OR, and XOR.
|
virtual |
Compile a node;
const | CEvaluationTree * pTree |
Reimplemented from CEvaluationNode.
Definition at line 81 of file CEvaluationNodeLogical.cpp.
References CCopasiNode< std::string >::getChild(), CCopasiNode< _Data >::getSibling(), mpLeft, and mpRight.
Referenced by getBerkeleyMadonnaString(), getCCodeString(), getDisplayString(), getInfix(), getMMLString(), and getXPPString().
|
static |
Creates a new CEvaluationNodeCall from an ASTNode and the given children
const | ASTNode* pNode |
const | std::vector< CEvaluationNode * > & children |
Definition at line 357 of file CEvaluationNodeLogical.cpp.
References CCopasiNode< _Data >::addChild(), AND, CEvaluationNodeLogical(), EQ, CEvaluationNodeConstant::FALSE, GE, GT, INVALID, LE, LT, NE, OR, CEvaluationNode::subType(), CEvaluationNodeConstant::TRUE, and XOR.
Referenced by CEvaluationTree::fromAST().
|
virtual |
Retrieve the display string of the node and its eventual child nodes in Berkeley Madonna format.
Reimplemented from CEvaluationNode.
Definition at line 223 of file CEvaluationNodeLogical.cpp.
References AND, compile(), EQ, GE, CEvaluationNode::getType(), GT, LE, LT, mpLeft, mpRight, NE, OR, and CEvaluationNode::subType().
|
virtual |
Retrieve the display string of the node and its eventual child nodes in C.
Reimplemented from CEvaluationNode.
Definition at line 145 of file CEvaluationNodeLogical.cpp.
References AND, compile(), EQ, GE, CEvaluationNode::getType(), GT, LE, LT, mpLeft, mpRight, NE, OR, and CEvaluationNode::subType().
|
virtual |
Retrieve the display string of the node and its eventual child nodes.
Reimplemented from CEvaluationNode.
Definition at line 120 of file CEvaluationNodeLogical.cpp.
References compile(), CCopasiNode< std::string >::mData, mpLeft, and mpRight.
|
virtual |
Retrieve the infix value of the node and its eventual child nodes.
Reimplemented from CEvaluationNode.
Definition at line 95 of file CEvaluationNodeLogical.cpp.
References compile(), CCopasiNode< std::string >::mData, mpLeft, and mpRight.
|
virtual |
Build the MathML string
const | std::vector< std::string > & children |
bool | expand = true |
const | std::vector< std::vector< std::string > > & variables |
Reimplemented from CEvaluationNode.
Definition at line 569 of file CEvaluationNodeLogical.cpp.
References AND, compile(), EQ, GE, CEvaluationNode::getType(), GT, LE, LT, mpLeft, mpRight, NE, OR, CEvaluationNode::subType(), and XOR.
|
virtual |
Retrieve the display string of the node and its eventual child nodes in XPPAUT format.
Reimplemented from CEvaluationNode.
Definition at line 290 of file CEvaluationNodeLogical.cpp.
References AND, compile(), EQ, GE, CEvaluationNode::getType(), GT, LE, LT, mpLeft, mpRight, NE, OR, CEvaluationNode::subType(), and CCopasiMessage::WARNING.
|
virtual |
Check whether the result is Boolean
Reimplemented from CEvaluationNode.
Definition at line 501 of file CEvaluationNodeLogical.cpp.
|
virtual |
Create a new ASTNode corresponding to this OperatorNode.
Reimplemented from CEvaluationNode.
Definition at line 504 of file CEvaluationNodeLogical.cpp.
References CCopasiNode< _Data >::addChild(), AND, EQ, GE, CCopasiNode< std::string >::getChild(), CCopasiNode< _Data >::getSibling(), CEvaluationNode::getType(), GT, INVALID, LE, LT, NE, OR, CEvaluationNode::subType(), CEvaluationNode::toAST(), and XOR.
|
private |
Definition at line 201 of file CEvaluationNodeLogical.h.
Referenced by calculate(), compile(), getBerkeleyMadonnaString(), getCCodeString(), getDisplayString(), getInfix(), getMMLString(), and getXPPString().
|
private |
Definition at line 203 of file CEvaluationNodeLogical.h.
Referenced by calculate(), compile(), getBerkeleyMadonnaString(), getCCodeString(), getDisplayString(), getInfix(), getMMLString(), and getXPPString().