11 dim as integer ptr_cnt = 0
21 case FB_TK_PTR, FB_TK_POINTER
22 if( ptr_cnt >= FB_DT_PTRLEVELS )
then
23 errReport( FB_ERRMSG_TOOMANYPTRINDIRECTIONS )
25 dtype = typeSetIsConst( typeAddrOf( dtype ) )
32 errReport( FB_ERRMSG_EXPECTEDPTRORPOINTER )
37 case FB_TK_PTR, FB_TK_POINTER
38 if( ptr_cnt >= FB_DT_PTRLEVELS )
then
39 errReport( FB_ERRMSG_TOOMANYPTRINDIRECTIONS )
41 dtype = typeAddrOf( dtype )
55 byref dtype
as integer, _
56 byref subtype
as FBSYMBOL
ptr, _
57 byref lgt
as longint _
60 static as zstring * FB_MAXNAMELEN+1 tname
61 dim as zstring ptr pfwdname =
any
65 if(
cSymbolType( dtype, subtype, lgt, FB_SYMBTYPEOPT_NONE ) = FALSE )
then
88 byval pid
as zstring ptr, _
89 byval pfwdname
as zstring ptr, _
90 byref dtype
as integer, _
91 byref subtype
as FBSYMBOL
ptr, _
92 byref lgt
as longint _
95 dim as integer ptrcount = typeGetPtrCnt( dtype )
96 dim as integer constmask = typeGetConstMask( dtype )
99 hUcase( pfwdname, pfwdname )
101 if( *pfwdname = *pid )
then
104 dtype = FB_DATATYPE_VOID
126 dtype = FB_DATATYPE_FWDREF
138 if( subtype = NULL )
then
142 FB_SYMBCLASS_FWDREF, _
146 if( subtype = NULL )
then
155 dtype = typeMultAddrOf( dtype, ptrcount )
or constmask
160 byval pid
as zstring ptr, _
161 byval pfwdname
as zstring ptr, _
162 byval dtype
as integer, _
163 byval subtype
as FBSYMBOL
ptr, _
164 byval lgt
as longint _
168 if( pfwdname <> NULL )
then
172 dim as FBSYMBOL
ptr typedef =
symbAddTypedef( pid, dtype, subtype, lgt )
173 if( typedef = NULL )
then
175 dim as integer isdup = TRUE
176 dim as FBSYMBOL
ptr sym =
any
180 FB_SYMBCLASS_TYPEDEF, _
184 if( sym <> NULL )
then
185 if( symbGetFullType( sym ) = dtype )
then
186 if( symbGetSubType( sym ) = subtype )
then
193 errReport( FB_ERRMSG_DUPDEFINITION, TRUE )
200 static as zstring * FB_MAXNAMELEN+1 id
206 case FB_TKCLASS_IDENTIFIER, FB_TKCLASS_KEYWORD, FB_TKCLASS_QUIRKWD
208 if( fbLangOptIsSet( FB_LANG_OPT_PERIODS ) )
then
210 if( symbIsGlobalNamespc( ) = FALSE )
then
211 if( lexGetPeriodPos( ) > 0 )
then
212 errReport( FB_ERRMSG_CANTINCLUDEPERIODS )
221 errReport( FB_ERRMSG_EXPECTEDIDENTIFIER )
232 dim as zstring ptr pfwdname =
any, pid =
any
233 dim as integer dtype =
any
234 dim as longint lgt =
any
235 dim as FBSYMBOL
ptr subtype =
any
246 pfwdname =
hReadType( dtype, subtype, lgt )
272 dim as zstring ptr pfwdname =
any
273 dim as integer dtype =
any
274 dim as longint lgt =
any
275 dim as FBSYMBOL
ptr subtype =
any
286 pfwdname =
hReadType( dtype, subtype, lgt )