16 byref dtype
as integer, _
17 byref subtype
as FBSYMBOL
ptr _
20 dim as ASTNODE
ptr expr =
any
23 if( expr = NULL )
then
28 case FB_DATATYPE_VOID, FB_DATATYPE_FIXSTR
29 errReport( FB_ERRMSG_INVALIDDATATYPES, TRUE )
31 dtype = FB_DATATYPE_UBYTE
40 if( expr = NULL )
then
47 dtype = FB_DATATYPE_UBYTE
58 dim as ASTNODE
ptr expr1 =
any, expr2 =
any
59 dim as integer poketype =
any
60 dim as FBSYMBOL
ptr subtype =
any
73 hMatchExpressionEx( expr2, FB_DATATYPE_INTEGER )
75 select case astGetDataClass( expr1 )
76 case FB_DATACLASS_STRING
82 case FB_DATACLASS_FPOINT
83 expr1 =
astNewCONV( FB_DATATYPE_UINT, NULL, expr1 )
86 if( typeGetSize( astGetDataType( expr1 ) ) <> env.pointersize )
then
97 if( expr1 = NULL )
then
111 dim as ASTNODE
ptr expr =
any
112 dim as integer dtype =
any
113 dim as FBSYMBOL
ptr subtype =
any
129 select case astGetDataClass( expr )
130 case FB_DATACLASS_STRING
136 case FB_DATACLASS_FPOINT
137 expr =
astNewCONV( FB_DATATYPE_UINT, NULL, expr )
140 if( typeGetSize( astGetDataType( expr ) ) <> env.pointersize )
then
148 if( expr = NULL )
then
155 case FB_DATATYPE_STRUCT
164 function =
cUdtMember( dtype, subtype, expr, TRUE )