9 #include <ospace/string.h>
23 #define SPACE_STR(numSpace) std::string(numSpace,' ')
25 #define SPACE_STR(numSpace) std::string(' ',numSpace)
350 friend bool operator<(
const QtNodePair a,
const QtNodePair b);
353 static int child_range[];
356 void set_child_range(
const QtNodePair *arr);
359 static int minim[], maxim[];
362 static bool MinMaxDone;
368 void num_node (
const QtNodePair *arr,
enum QtNodeType x);
371 static long timerCounter;
423 inline void setName(
const char* newName );
429 inline const char*
getName()
const;
439 void printStatus( std::ostream& s = std::cout )
const;
479 void printStatus( std::ostream& s = std::cout )
const;
482 #include "qlparser/qtnode.icc"
QtNode()
default constructor
bool subtype(enum QtNodeType a, enum QtNodeType b)
returns weather class b is a subtype of class a
Definition: qtnode.hh:150
std::list< QtNode * > QtNodeList
list of QtNode pointers
Definition: qtnode.hh:91
void concat(const QtTypeTuple &typeTuple)
concatenate type tuple
Definition: qtnode.hh:159
std::vector< QtData * > QtDataList
list of QtData pointers
Definition: qtnode.hh:77
std::vector< QtTrimElement * > QtTrimList
list of QtTrimData structures
Definition: qtnode.hh:88
static const QtNodeType QtRoot
the root of the inheritance tree
Definition: qtnode.hh:309
Definition: qtnode.hh:168
QtAreaType
Definition: qtnode.hh:180
Definition: qtnode.hh:110
Definition: qtnode.hh:463
Definition: qtnode.hh:160
Definition: sinterval.hh:233
r_Sinterval interval
Definition: qtnode.hh:83
void setParent(QtNode *node)
Definition: qtnode.hh:100
Definition: qtnode.hh:103
Definition: qtnode.hh:141
Definition: qtnode.hh:153
Definition: qtnode.hh:133
virtual const QtNodeType getNodeType() const
methods for identification of nodes
Definition: qtnode.hh:161
void setName(const char *newName)
Definition: qtnode.hh:102
Definition: qtnode.hh:189
Definition: qtnode.hh:167
void setDataType(const QtDataType newDataType)
virtual void simplify()
simplifies the tree
std::vector< QtTypeElement > tuple
Definition: qtnode.hh:476
QtNodeList * getChild(const QtNodeType node, QtChildType flag=QT_DIRECT_CHILDS)
return childs of a certain class
Definition: qtnode.hh:158
Definition: parseinfo.hh:51
Definition: qtnode.hh:145
Definition: qtnode.hh:123
Definition: qtnode.hh:147
Definition: qtnode.hh:163
ParseInfo parseInfo
attribute for parser info
Definition: qtnode.hh:317
static const QtNodeType QtInheritance[][2]
the inheritance relations list
Definition: qtnode.hh:312
Definition: qtnode.hh:113
Definition: qtnode.hh:174
Definition: qtnode.hh:165
unsigned int r_Dimension
Definition: mddtypes.hh:118
Definition: qtnode.hh:107
virtual QtAreaType getAreaType()
test if the edge to the parent node is of type mdd or atomic
QtChildType
Definition: qtnode.hh:186
Definition: qtnode.hh:137
QtNodeType
Definition: qtnode.hh:93
void setType(const Type *newType)
Definition: qtnode.hh:157
Definition: qtnode.hh:117
Definition: qtnode.hh:394
const ParseInfo & getParseInfo()
Definition: qtnode.hh:134
Definition: qtnode.hh:111
Definition: qtnode.hh:175
Definition: qtnode.hh:144
static const int QtNodes
number of QtNodeTypes
Definition: qtnode.hh:306
Definition: qtnode.hh:133
const QtTypeElement & operator=(const QtTypeElement &)
assignment: cleanup + copy
Definition: qtnode.hh:106
Definition: qtnode.hh:128
struct containing dimension and triming information
Definition: qtnode.hh:80
Definition: qtnode.hh:173
void printStatus(std::ostream &s=std::cout) const
print type
virtual bool equalMeaning(QtNode *node)
test if the two nodes have an equal meaning in a subtree
Definition: qtnode.hh:135
Definition: qtnode.hh:104
Definition: qtnode.hh:142
Definition: qtnode.hh:126
Definition: qtnode.hh:134
virtual QtNodeList * getChilds(QtChildType flag)
return childs of the node
QtTypeTuple(unsigned int length=0)
Definition: qtnode.hh:121
friend bool operator<(const QtNodePair a, const QtNodePair b)
operator overload for QtNodePair struct
void stopTimer()
stop timer (at end of evaluation)
Definition: qtnode.hh:156
Definition: qtnode.hh:169
Definition: qtnode.hh:101
Definition: qtnode.hh:129
Definition: qtnode.hh:133
Definition: qtnode.hh:134
const char * getName() const
Definition: qtnode.hh:183
Definition: qtnode.hh:127
Definition: qtnode.hh:143
Definition: qtnode.hh:136
Definition: qtnode.hh:125
virtual void printAlgebraicExpression(std::ostream &s=std::cout)=0
prints the algebraic expression
Definition: qtnode.hh:149
const Type * getType() const
void startTimer(const char *name)
start node timer (called at evaluation time)
Definition: qtnode.hh:148
Definition: qtnode.hh:108
Definition: qtnode.hh:172
void setParseInfo(const ParseInfo &info)
virtual void printTree(int tab, std::ostream &s=std::cout, QtChildType mode=QT_ALL_NODES)=0
prints the tree
Definition: qtnode.hh:138
Definition: qtnode.hh:171
Definition: qtnode.hh:116
Definition: qtnode.hh:154
r_Dimension dimension
Definition: qtnode.hh:82
Definition: qtnode.hh:124
Module: { raslib}.
Definition: rmdebug.hh:298
Definition: qtnode.hh:152
Definition: qtnode.hh:112
Definition: relcatalogif/type.hh:68
Definition: qtnode.hh:130
Definition: qtnode.hh:151
QtDataType
Definition: qtdata.hh:48
Definition: qtnode.hh:114
Definition: qtnode.hh:105
Definition: qtnode.hh:188
virtual std::string getSpelling()
creates a unique name for a common subexpression
Definition: qtnode.hh:135
Definition: qtnode.hh:170
Definition: qtoperation.hh:57
virtual void setInput(QtOperation *inputOld, QtOperation *inputNew)
Definition: qtnode.hh:155
Definition: qtnode.hh:122
const QtDataType getDataType() const
bool intervalFlag
Definition: qtnode.hh:84
Definition: qtnode.hh:115
Definition: qtnode.hh:133
Definition: qtnode.hh:109
Definition: qtnode.hh:134
Definition: qtnode.hh:162
std::string getEvaluationTime()
get elapsed time if timer was started, returns a string e.g. "15 usecs"
Definition: qtnode.hh:133
std::vector< QtOperation * > QtOperationList
list of QtOperation pointers
Definition: qtnode.hh:194
Definition: qtnode.hh:190
QtNode * getParent() const
Definition: qtnode.hh:133
Definition: qtnode.hh:120
void printStatus(std::ostream &s=std::cout) const
print type
Definition: qtnode.hh:134
Definition: qtnode.hh:146
enum QtNodeType getQtNodeTypeParent(enum QtNodeType)
method for pre optimizations (basically load optimization)
Definition: qtnode.hh:119
Definition: qtnode.hh:166
Definition: qtnode.hh:182
virtual ~QtNode()
destructor