1 /***************************************************************************
2 * Copyright (C) 2007 by www.databasecache.com *
3 * Contact: praba_tuty@databasecache.com *
5 * This program is free software; you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation; either version 2 of the License, or *
8 * (at your option) any later version. *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
15 ***************************************************************************/
32 class DllExport Expression
34 char fldName
[IDENTIFIER_LENGTH
];
47 table
=NULL
; arOp
= unKnownOperator
; lhs
=NULL
; rhs
=NULL
;
48 tuple
=NULL
; constVal
=NULL
;
51 fType
= UNKNOWN_FUNCTION
;
55 if(lhs
){ delete lhs
; lhs
=NULL
;}
56 if(rhs
){ delete rhs
; rhs
=NULL
;}
58 void setTable(Table
*tbl
);
59 void setTuple(void *tpl
);
61 void setDataType(DataType type
){dType
= type
;};
62 DataType
getDataType(){ return dType
;};
63 void setFunctionType(FunctionType type
);
64 FunctionType
getFunctionType() {return fType
;}
65 void copyFunctionVal(void *dest
,void *src
, FunctionType type
, int length
);
66 void *evaluateAndGetValPtr(void *lhsResult
, void *rhsResult
);
67 void setExpr(Expression
* exp1
, FunctionType type
,Expression
* exp2
);
68 void setExpr(char const *name
,ArithOperator op
,void *cVal
);
69 void setExpr(char const *name
);
70 void setExpr(Expression
*exp1
, ArithOperator op
, Expression
*exp2
);
71 void setExpr(void *cVal
,bool flag
);
72 void *evaluate(DataType type
,bool &result
);
73 void *evaluateForFunction(DataType type
);
74 void solve(void *opand1
, void *opand2
, DataType type
, ArithOperator arOp
);
75 void convertStrToVal(DataType type
);