1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
\hypertarget{xbexpnode_8h_source}{}\doxysection{xbexpnode.\+h}
\label{xbexpnode_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbexpnode.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbexpnode.h}}
\mbox{\hyperlink{xbexpnode_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{comment}{/* xbexpnode.h}}
\DoxyCodeLine{2 \textcolor{comment}{}}
\DoxyCodeLine{3 \textcolor{comment}{XBase64 Software Library}}
\DoxyCodeLine{4 \textcolor{comment}{}}
\DoxyCodeLine{5 \textcolor{comment}{Copyright (c) 1997,2003,2014,2022 Gary A Kunkel}}
\DoxyCodeLine{6 \textcolor{comment}{}}
\DoxyCodeLine{7 \textcolor{comment}{The xb64 software library is covered under the terms of the GPL Version 3, 2007 license.}}
\DoxyCodeLine{8 \textcolor{comment}{}}
\DoxyCodeLine{9 \textcolor{comment}{Email Contact:}}
\DoxyCodeLine{10 \textcolor{comment}{}}
\DoxyCodeLine{11 \textcolor{comment}{ XDB-\/devel@lists.sourceforge.net}}
\DoxyCodeLine{12 \textcolor{comment}{ XDB-\/users@lists.sourceforge.net}}
\DoxyCodeLine{13 \textcolor{comment}{}}
\DoxyCodeLine{14 \textcolor{comment}{*/}}
\DoxyCodeLine{15 }
\DoxyCodeLine{16 }
\DoxyCodeLine{17 \textcolor{preprocessor}{\#ifndef \_\_XB\_EXPNODE\_H\_\_}}
\DoxyCodeLine{18 \textcolor{preprocessor}{\#define \_\_XB\_EXPNODE\_H\_\_}}
\DoxyCodeLine{19 }
\DoxyCodeLine{20 \textcolor{comment}{// \#ifdef CMAKE\_COMPILER\_IS\_GNUCC}}
\DoxyCodeLine{21 \textcolor{comment}{// \#pragma interface}}
\DoxyCodeLine{22 \textcolor{comment}{// \#endif}}
\DoxyCodeLine{23 }
\DoxyCodeLine{24 \textcolor{preprocessor}{\#ifdef XB\_EXPRESSION\_SUPPORT}}
\DoxyCodeLine{25 }
\DoxyCodeLine{26 }
\DoxyCodeLine{27 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespacexb}{xb}}\{}
\DoxyCodeLine{28 }
\DoxyCodeLine{29 \textcolor{comment}{//class XBDLLEXPORT xbDbf;}}
\DoxyCodeLine{30 }
\DoxyCodeLine{31 \textcolor{comment}{/************************************************************************/}}
\DoxyCodeLine{33 }
\DoxyCodeLine{46 \textcolor{keyword}{class }XBDLLEXPORT xbExpNode \{}
\DoxyCodeLine{47 \textcolor{keyword}{public}:}
\DoxyCodeLine{48 xbExpNode();}
\DoxyCodeLine{49 xbExpNode( xbString \&sNodeText, \textcolor{keywordtype}{char} cReturnType, \textcolor{keywordtype}{char} cNodeType );}
\DoxyCodeLine{50 xbExpNode( xbString \&sNodeText, \textcolor{keywordtype}{char} cNodeType );}
\DoxyCodeLine{51 xbExpNode( \textcolor{keywordtype}{char} cNodeType );}
\DoxyCodeLine{52 }
\DoxyCodeLine{53 \textcolor{keyword}{virtual} \string~xbExpNode();}
\DoxyCodeLine{54 xbInt16 AddChild( xbExpNode *n );}
\DoxyCodeLine{55 xbExpNode *GetChild( xbUInt32 ulChildNo ) \textcolor{keyword}{const};}
\DoxyCodeLine{56 xbUInt32 GetChildCnt() \textcolor{keyword}{const};}
\DoxyCodeLine{57 xbUInt32 GetChildNo() \textcolor{keyword}{const};}
\DoxyCodeLine{58 \mbox{\hyperlink{namespacexb_ab2eae4b4732466698a7fdd89d77ba53b}{xbDbf}} *GetDbf() \textcolor{keyword}{const};}
\DoxyCodeLine{59 xbInt16 GetFieldNo() \textcolor{keyword}{const};}
\DoxyCodeLine{60 xbExpNode *GetFirstNode();}
\DoxyCodeLine{61 xbExpNode *GetNextNode() \textcolor{keyword}{const};}
\DoxyCodeLine{62 \textcolor{keywordtype}{void} GetNodeText( xbString \&sNodeText ) \textcolor{keyword}{const};}
\DoxyCodeLine{63 \textcolor{keywordtype}{char} GetNodeType() \textcolor{keyword}{const};}
\DoxyCodeLine{64 xbExpNode *GetParent() \textcolor{keyword}{const};}
\DoxyCodeLine{65 xbString \&GetStringResult();}
\DoxyCodeLine{66 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} GetBoolResult() \textcolor{keyword}{const};}
\DoxyCodeLine{67 \mbox{\hyperlink{namespacexb_a25f47b226ce924a5c78f97989b0744a2}{xbDouble}} GetNumericResult() \textcolor{keyword}{const};}
\DoxyCodeLine{68 xbUInt32 GetResultLen() \textcolor{keyword}{const};}
\DoxyCodeLine{69 xbExpNode *GetRightSibling() \textcolor{keyword}{const};}
\DoxyCodeLine{70 \textcolor{keywordtype}{char} GetReturnType() \textcolor{keyword}{const};}
\DoxyCodeLine{71 xbInt16 GetWeight() \textcolor{keyword}{const};}
\DoxyCodeLine{72 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} HasRightSibling() \textcolor{keyword}{const};}
\DoxyCodeLine{73 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} IsOperator() \textcolor{keyword}{const};}
\DoxyCodeLine{74 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} IsUnaryOperator() \textcolor{keyword}{const};}
\DoxyCodeLine{75 \textcolor{keywordtype}{void} RemoveLastChild();}
\DoxyCodeLine{76 \textcolor{keywordtype}{void} SetResultLen( xbUInt32 ulResultLen );}
\DoxyCodeLine{77 \textcolor{keywordtype}{void} SetDbfInfo( \mbox{\hyperlink{namespacexb_ab2eae4b4732466698a7fdd89d77ba53b}{xbDbf}} *dbf );}
\DoxyCodeLine{78 \textcolor{keywordtype}{void} SetDbfInfo( \mbox{\hyperlink{namespacexb_ab2eae4b4732466698a7fdd89d77ba53b}{xbDbf}} *dbf, xbInt16 iFieldNo );}
\DoxyCodeLine{79 \textcolor{keywordtype}{void} SetNodeText( xbString \&sNodeText );}
\DoxyCodeLine{80 \textcolor{keywordtype}{void} SetNodeType( \textcolor{keywordtype}{char} cNodeType );}
\DoxyCodeLine{81 \textcolor{keywordtype}{void} SetParent( xbExpNode *n );}
\DoxyCodeLine{82 \textcolor{keywordtype}{void} SetResult( xbString \&sResult );}
\DoxyCodeLine{83 \textcolor{keywordtype}{void} SetResult( xbDate \&dtResult );}
\DoxyCodeLine{84 \textcolor{keywordtype}{void} SetResult( \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bResult );}
\DoxyCodeLine{85 \textcolor{keywordtype}{void} SetResult( \mbox{\hyperlink{namespacexb_a25f47b226ce924a5c78f97989b0744a2}{xbDouble}} dResult );}
\DoxyCodeLine{86 \textcolor{keywordtype}{void} SetReturnType( \textcolor{keywordtype}{char} cReturnType );}
\DoxyCodeLine{87 \textcolor{keywordtype}{void} SetWeight( xbInt16 iWeight );}
\DoxyCodeLine{88 }
\DoxyCodeLine{89 \textcolor{preprocessor}{ \#ifdef XB\_DEBUG\_SUPPORT}}
\DoxyCodeLine{90 \textcolor{keywordtype}{void} DumpNode( xbInt16 iOption ) \textcolor{keyword}{const}; \textcolor{comment}{// 0 = no children, 1 = and children}}
\DoxyCodeLine{91 \textcolor{preprocessor}{ \#endif}}
\DoxyCodeLine{92 }
\DoxyCodeLine{93 \textcolor{keyword}{private}:}
\DoxyCodeLine{94 xbString sNodeText; \textcolor{comment}{// expression text}}
\DoxyCodeLine{95 \textcolor{keywordtype}{char} cReturnType; \textcolor{comment}{// one of: XB\_EXP\_CHAR, XB\_EXP\_DATE, XB\_EXP\_LOGICAL, XB\_EXP\_NUMERIC}}
\DoxyCodeLine{96 \textcolor{keywordtype}{char} cNodeType; \textcolor{comment}{// one of: XB\_EXP\_CONSTANT, XB\_EXP\_FUNCTION, XB\_EXP\_FIELD, XB\_EXP\_OPERATOR}}
\DoxyCodeLine{97 xbString sResult; \textcolor{comment}{// char result, and operator}}
\DoxyCodeLine{98 \mbox{\hyperlink{namespacexb_a25f47b226ce924a5c78f97989b0744a2}{xbDouble}} dResult; \textcolor{comment}{// numeric and bool results}}
\DoxyCodeLine{99 xbExpNode * nParent; \textcolor{comment}{// pointer to parent}}
\DoxyCodeLine{100 xbLinkList<xbExpNode *> llChildren; \textcolor{comment}{// linked list of descendent nodes}}
\DoxyCodeLine{101 \mbox{\hyperlink{namespacexb_ab2eae4b4732466698a7fdd89d77ba53b}{xbDbf}} *dbf; \textcolor{comment}{// pointer to dbf, used for field, RECNO() and RECCOUNT()}}
\DoxyCodeLine{102 xbInt16 iFieldNo; \textcolor{comment}{// field no if DBF field}}
\DoxyCodeLine{103 xbUInt32 ulResultLen; \textcolor{comment}{// for string results, accumulated length of character operations}}
\DoxyCodeLine{104 \textcolor{comment}{// includes the sum of all nodes under this + this}}
\DoxyCodeLine{105 \textcolor{comment}{// date = 8, numeric = 4, logical = 1}}
\DoxyCodeLine{106 xbInt16 iWeight; \textcolor{comment}{// used for buildign the tree of nodes, assigned to operators}}
\DoxyCodeLine{107 \textcolor{comment}{// the higher the number, the lower it goes on the tree}}
\DoxyCodeLine{108 }
\DoxyCodeLine{109 \};}
\DoxyCodeLine{110 }
\DoxyCodeLine{111 \textcolor{comment}{/************************************************************************/}}
\DoxyCodeLine{112 }
\DoxyCodeLine{113 \textcolor{comment}{/* Expression handler */}}
\DoxyCodeLine{114 }
\DoxyCodeLine{115 }
\DoxyCodeLine{116 \};}
\DoxyCodeLine{117 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// XB\_EXPRESSION\_SUPPORT}}
\DoxyCodeLine{118 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// \_\_XB\_EXP\_H\_\_}}
\DoxyCodeLine{119 }
\DoxyCodeLine{120 }
\end{DoxyCode}
|