1#ifndef _KVI_KVS_TREENODE_EXPRESSION_H_
2#define _KVI_KVS_TREENODE_EXPRESSION_H_
32#define PREC_MAXIMUM -10
34#define PREC_OP_LOGICALNOT -3
35#define PREC_OP_BITWISENOT -2
36#define PREC_OP_NEGATE -1
38#define PREC_OP_BITWISEAND 0
39#define PREC_OP_BITWISEOR 1
40#define PREC_OP_BITWISEXOR 2
42#define PREC_OP_SHIFTRIGHT 3
43#define PREC_OP_SHIFTLEFT 3
45#define PREC_OP_MULTIPLICATION 5
46#define PREC_OP_DIVISION 5
47#define PREC_OP_MODULUS 5
50#define PREC_OP_SUBTRACTION 8
52#define PREC_OP_GREATERTHAN 11
53#define PREC_OP_LOWERTHAN 11
55#define PREC_OP_EQUALTO 12
57#define PREC_OP_GREATEROREQUALTO 14
58#define PREC_OP_LOWEROREQUALTO 14
60#define PREC_OP_NOTEQUALTO 15
79 virtual void dump(
const char * prefix);
80 virtual int precedence();
85 virtual int firstBinaryOperator();
101 virtual void dump(
const char * prefix);
116 virtual void dump(
const char * prefix);
128 virtual void dump(
const char * prefix);
142 virtual void dump(
const char * prefix);
153 virtual int precedence();
155 virtual void dump(
const char * prefix);
166 virtual int precedence();
168 virtual void dump(
const char * prefix);
179 virtual int precedence();
181 virtual void dump(
const char * prefix);
201 virtual int firstBinaryOperator();
204 void dumpOperands(
const char * prefix);
206 virtual void dump(
const char * prefix);
212#define DECLARE_BINARY_OPERATOR(__name) \
213 class KVIRC_API __name : public KviKvsTreeNodeExpressionBinaryOperator \
216 __name(const QChar * pLocation); \
220 virtual void contextDescription(QString & szBuffer); \
221 virtual void dump(const char * prefix); \
222 virtual bool evaluateReadOnly(KviKvsRunTimeContext * c, KviKvsVariant * pResult); \
223 virtual int precedence(); \
#define DECLARE_BINARY_OPERATOR(__name)
Definition KviKvsTreeNodeExpression.h:212
Handling of variant data type in KVS.
Helper functions for the QString class.
A class which maps every number.
Definition KviKvsVariant.h:50
Definition KviKvsRunTimeContext.h:104
Definition KviKvsTreeNodeData.h:35
virtual void contextDescription(QString &szBuffer)
Sets the buffer.
Definition KviKvsTreeNodeData.cpp:36
virtual bool evaluateReadOnly(KviKvsRunTimeContext *c, KviKvsVariant *pBuffer)
Definition KviKvsTreeNodeData.cpp:78
virtual void dump(const char *prefix)
Dumps the tree.
Definition KviKvsTreeNodeData.cpp:41
Definition KviKvsTreeNodeExpression.h:186
KviKvsNumber m_nRight
Definition KviKvsTreeNodeExpression.h:195
KviKvsNumber m_nLeft
Definition KviKvsTreeNodeExpression.h:194
KviKvsTreeNodeExpression * m_pLeft
Definition KviKvsTreeNodeExpression.h:192
KviKvsTreeNodeExpression * m_pRight
Definition KviKvsTreeNodeExpression.h:193
Definition KviKvsTreeNodeExpression.h:106
KviKvsVariant * m_pConstant
Definition KviKvsTreeNodeExpression.h:112
Definition KviKvsTreeNodeExpression.h:121
~KviKvsTreeNodeExpressionOperator()
Definition KviKvsTreeNodeExpression.h:160
~KviKvsTreeNodeExpressionUnaryOperatorBitwiseNot()
Definition KviKvsTreeNodeExpression.h:173
~KviKvsTreeNodeExpressionUnaryOperatorLogicalNot()
Definition KviKvsTreeNodeExpression.h:147
~KviKvsTreeNodeExpressionUnaryOperatorNegate()
Definition KviKvsTreeNodeExpression.h:132
KviKvsNumber m_nData
Definition KviKvsTreeNodeExpression.h:139
KviKvsTreeNodeExpression * m_pData
Definition KviKvsTreeNodeExpression.h:138
Definition KviKvsTreeNodeExpression.h:92
KviKvsTreeNodeData * m_pData
Definition KviKvsTreeNodeExpression.h:98
Definition KviKvsTreeNodeExpression.h:68
KviKvsTreeNodeExpression * parentExpression()
Definition KviKvsTreeNodeExpression.h:86
void setParentExpression(KviKvsTreeNodeExpression *pParent)
Definition KviKvsTreeNodeExpression.h:87
~KviKvsTreeNodeExpression()
KviKvsTreeNodeExpression * m_pParentExpression
Definition KviKvsTreeNodeExpression.h:75
This class defines a new data type which contains variant data.
Definition KviKvsVariant.h:352
#define KVIRC_API
Definition kvi_settings.h:127
char szBuffer[4096]
Definition winamp.cpp:77