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);
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);
155 virtual void dump(
const char * prefix);
168 virtual void dump(
const char * prefix);
181 virtual void dump(
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
KviKvsTreeNodeData(const QChar *pLocation)
Definition KviKvsTreeNodeData.cpp:28
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
bool evaluateOperands(KviKvsRunTimeContext *c)
Definition KviKvsTreeNodeExpression.cpp:335
KviKvsNumber m_nRight
Definition KviKvsTreeNodeExpression.h:195
virtual KviKvsTreeNodeExpression * left()
Definition KviKvsTreeNodeExpression.cpp:356
void setLeft(KviKvsTreeNodeExpression *pLeft)
Definition KviKvsTreeNodeExpression.cpp:371
KviKvsNumber m_nLeft
Definition KviKvsTreeNodeExpression.h:194
void dumpOperands(const char *prefix)
Definition KviKvsTreeNodeExpression.cpp:385
KviKvsTreeNodeExpression * m_pLeft
Definition KviKvsTreeNodeExpression.h:192
virtual KviKvsTreeNodeExpression * right()
Definition KviKvsTreeNodeExpression.cpp:361
void setRight(KviKvsTreeNodeExpression *pRight)
Definition KviKvsTreeNodeExpression.cpp:378
KviKvsTreeNodeExpression * m_pRight
Definition KviKvsTreeNodeExpression.h:193
virtual int firstBinaryOperator()
Definition KviKvsTreeNodeExpression.cpp:366
KviKvsTreeNodeExpressionBinaryOperator(const QChar *pLocation)
Definition KviKvsTreeNodeExpression.cpp:320
KviKvsTreeNodeExpressionConstantOperand(const QChar *pLocation, KviKvsVariant *pConstant)
Definition KviKvsTreeNodeExpression.cpp:122
KviKvsVariant * m_pConstant
Definition KviKvsTreeNodeExpression.h:112
KviKvsTreeNodeExpressionOperator(const QChar *pLocation)
Definition KviKvsTreeNodeExpression.cpp:152
~KviKvsTreeNodeExpressionOperator()
KviKvsTreeNodeExpressionUnaryOperatorBitwiseNot(const QChar *pLocation, KviKvsTreeNodeExpression *pData)
Definition KviKvsTreeNodeExpression.cpp:247
~KviKvsTreeNodeExpressionUnaryOperatorBitwiseNot()
virtual int precedence()
Definition KviKvsTreeNodeExpression.cpp:268
KviKvsTreeNodeExpressionUnaryOperatorLogicalNot(const QChar *pLocation, KviKvsTreeNodeExpression *pData)
Definition KviKvsTreeNodeExpression.cpp:284
virtual int precedence()
Definition KviKvsTreeNodeExpression.cpp:305
~KviKvsTreeNodeExpressionUnaryOperatorLogicalNot()
KviKvsTreeNodeExpressionUnaryOperatorNegate(const QChar *pLocation, KviKvsTreeNodeExpression *pData)
Definition KviKvsTreeNodeExpression.cpp:210
~KviKvsTreeNodeExpressionUnaryOperatorNegate()
virtual int precedence()
Definition KviKvsTreeNodeExpression.cpp:231
KviKvsNumber m_nData
Definition KviKvsTreeNodeExpression.h:139
KviKvsTreeNodeExpression * m_pData
Definition KviKvsTreeNodeExpression.h:138
bool evaluateOperand(KviKvsRunTimeContext *c)
Definition KviKvsTreeNodeExpression.cpp:196
KviKvsTreeNodeExpressionUnaryOperator(const QChar *pLocation, KviKvsTreeNodeExpression *pData)
Definition KviKvsTreeNodeExpression.cpp:170
KviKvsTreeNodeData * m_pData
Definition KviKvsTreeNodeExpression.h:98
KviKvsTreeNodeExpressionVariableOperand(const QChar *pLocation, KviKvsTreeNodeData *pData)
Definition KviKvsTreeNodeExpression.cpp:92
Definition KviKvsTreeNodeExpression.h:68
virtual void setLeft(KviKvsTreeNodeExpression *pLeft)
Definition KviKvsTreeNodeExpression.cpp:66
KviKvsTreeNodeExpression * parentExpression()
Definition KviKvsTreeNodeExpression.h:86
virtual KviKvsTreeNodeExpression * left()
Definition KviKvsTreeNodeExpression.cpp:54
virtual int firstBinaryOperator()
Definition KviKvsTreeNodeExpression.cpp:85
virtual void setRight(KviKvsTreeNodeExpression *pRight)
Definition KviKvsTreeNodeExpression.cpp:71
void setParentExpression(KviKvsTreeNodeExpression *pParent)
Definition KviKvsTreeNodeExpression.h:87
virtual int precedence()
Definition KviKvsTreeNodeExpression.cpp:49
~KviKvsTreeNodeExpression()
KviKvsTreeNodeExpression(const QChar *pLocation)
Definition KviKvsTreeNodeExpression.cpp:30
KviKvsTreeNodeExpression * m_pParentExpression
Definition KviKvsTreeNodeExpression.h:75
virtual KviKvsTreeNodeExpression * right()
Definition KviKvsTreeNodeExpression.cpp:60
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