16 @FB_RTL_DATARESTORE, NULL, _
17 FB_DATATYPE_VOID, FB_FUNCMODE_FBCALL, _
18 NULL, FB_RTL_OPT_NONE, _
21 ( typeAddrOf( FB_DATATYPE_VOID ), FB_PARAMMODE_BYVAL, FALSE ) _
31 @FB_RTL_DATAREADSTR, NULL, _
32 FB_DATATYPE_VOID, FB_FUNCMODE_FBCALL, _
33 NULL, FB_RTL_OPT_NONE, _
36 ( FB_DATATYPE_VOID, FB_PARAMMODE_BYREF, FALSE ), _
37 ( FB_DATATYPE_INTEGER, FB_PARAMMODE_BYVAL, FALSE ), _
38 ( FB_DATATYPE_LONG, FB_PARAMMODE_BYVAL, TRUE, 1 ) _
43 @FB_RTL_DATAREADWSTR, NULL, _
44 FB_DATATYPE_VOID, FB_FUNCMODE_FBCALL, _
45 NULL, FB_RTL_OPT_NONE, _
48 ( typeAddrOf( FB_DATATYPE_WCHAR ),FB_PARAMMODE_BYVAL, FALSE ), _
49 ( FB_DATATYPE_INTEGER,FB_PARAMMODE_BYVAL, FALSE ) _
54 @FB_RTL_DATAREADBYTE, NULL, _
55 FB_DATATYPE_VOID, FB_FUNCMODE_FBCALL, _
56 NULL, FB_RTL_OPT_NONE, _
59 ( FB_DATATYPE_BYTE, FB_PARAMMODE_BYREF, FALSE ) _
64 @FB_RTL_DATAREADSHORT, NULL, _
65 FB_DATATYPE_VOID, FB_FUNCMODE_FBCALL, _
66 NULL, FB_RTL_OPT_NONE, _
69 ( FB_DATATYPE_SHORT, FB_PARAMMODE_BYREF, FALSE ) _
74 @FB_RTL_DATAREADINT, NULL, _
75 FB_DATATYPE_VOID, FB_FUNCMODE_FBCALL, _
76 NULL, FB_RTL_OPT_NONE, _
79 ( FB_DATATYPE_LONG, FB_PARAMMODE_BYREF, FALSE ) _
84 @FB_RTL_DATAREADLONGINT, NULL, _
85 FB_DATATYPE_VOID, FB_FUNCMODE_FBCALL, _
86 NULL, FB_RTL_OPT_NONE, _
89 ( FB_DATATYPE_LONGINT, FB_PARAMMODE_BYREF, FALSE ) _
94 @FB_RTL_DATAREADUBYTE, NULL, _
95 FB_DATATYPE_VOID, FB_FUNCMODE_FBCALL, _
96 NULL, FB_RTL_OPT_NONE, _
99 ( FB_DATATYPE_UBYTE, FB_PARAMMODE_BYREF, FALSE ) _
104 @FB_RTL_DATAREADUSHORT, NULL, _
105 FB_DATATYPE_VOID, FB_FUNCMODE_FBCALL, _
106 NULL, FB_RTL_OPT_NONE, _
109 ( FB_DATATYPE_USHORT, FB_PARAMMODE_BYREF, FALSE ) _
114 @FB_RTL_DATAREADUINT, NULL, _
115 FB_DATATYPE_VOID, FB_FUNCMODE_FBCALL, _
116 NULL, FB_RTL_OPT_NONE, _
119 ( FB_DATATYPE_ULONG, FB_PARAMMODE_BYREF, FALSE ) _
124 @FB_RTL_DATAREADULONGINT, NULL, _
125 FB_DATATYPE_VOID, FB_FUNCMODE_FBCALL, _
126 NULL, FB_RTL_OPT_NONE, _
129 ( FB_DATATYPE_ULONGINT, FB_PARAMMODE_BYREF, FALSE ) _
134 @FB_RTL_DATAREADSINGLE, NULL, _
135 FB_DATATYPE_VOID, FB_FUNCMODE_FBCALL, _
136 NULL, FB_RTL_OPT_NONE, _
139 ( FB_DATATYPE_SINGLE, FB_PARAMMODE_BYREF, FALSE ) _
144 @FB_RTL_DATAREADDOUBLE, NULL, _
145 FB_DATATYPE_VOID, FB_FUNCMODE_FBCALL, _
146 NULL, FB_RTL_OPT_NONE, _
149 ( FB_DATATYPE_DOUBLE, FB_PARAMMODE_BYREF, FALSE ) _
175 byval varexpr
as ASTNODE
ptr _
178 dim as ASTNODE
ptr proc =
any
179 dim as FBSYMBOL
ptr f =
any
180 dim as integer args =
any, dtype =
any
181 dim as longint lgt =
any
187 dtype = astGetDataType( varexpr )
189 select case as const typeGet( dtype )
190 case FB_DATATYPE_STRING, FB_DATATYPE_FIXSTR, FB_DATATYPE_CHAR
191 f = PROCLOOKUP( DATAREADSTR )
194 case FB_DATATYPE_WCHAR
195 f = PROCLOOKUP( DATAREADWSTR )
198 case FB_DATATYPE_BYTE, FB_DATATYPE_UBYTE, _
199 FB_DATATYPE_SHORT, FB_DATATYPE_USHORT, _
200 FB_DATATYPE_INTEGER, FB_DATATYPE_ENUM, FB_DATATYPE_UINT, _
201 FB_DATATYPE_LONG, FB_DATATYPE_ULONG, FB_DATATYPE_POINTER, _
202 FB_DATATYPE_LONGINT, FB_DATATYPE_ULONGINT
204 select case as const( typeGetSizeType( dtype ) )
205 case FB_SIZETYPE_INT8 : f = PROCLOOKUP( DATAREADBYTE )
206 case FB_SIZETYPE_UINT8 : f = PROCLOOKUP( DATAREADUBYTE )
207 case FB_SIZETYPE_INT16 : f = PROCLOOKUP( DATAREADSHORT )
208 case FB_SIZETYPE_UINT16 : f = PROCLOOKUP( DATAREADUSHORT )
209 case FB_SIZETYPE_INT32 : f = PROCLOOKUP( DATAREADINT )
210 case FB_SIZETYPE_UINT32 : f = PROCLOOKUP( DATAREADUINT )
211 case FB_SIZETYPE_INT64 : f = PROCLOOKUP( DATAREADLONGINT )
212 case FB_SIZETYPE_UINT64 : f = PROCLOOKUP( DATAREADULONGINT )
215 case FB_DATATYPE_SINGLE
216 f = PROCLOOKUP( DATAREADSINGLE )
218 case FB_DATATYPE_DOUBLE
219 f = PROCLOOKUP( DATAREADDOUBLE )
221 case FB_DATATYPE_STRUCT
242 if(
astNewARG( proc, varexpr ) = NULL )
then
269 byval label
as FBSYMBOL
ptr, _
270 byval afternode
as ASTNODE
ptr _
273 dim as ASTNODE
ptr proc =
any, expr =
any
274 dim as FBSYMBOL
ptr sym =
any
278 proc =
astNewCALL( PROCLOOKUP( DATARESTORE ), NULL )
281 if( label = NULL )
then
283 sym = astGetFirstDataStmtSymbol( )
286 if( sym = NULL )
then
292 sym = astGetFirstDataStmtSymbol( )
302 if( afternode = NULL )
then