22 case FB_TKCLASS_IDENTIFIER, FB_TKCLASS_KEYWORD, FB_TKCLASS_QUIRKWD
46 if( parser.stmt.
with.sym <> NULL )
then
51 if( (options
and FB_IDOPT_ISDECL) <> 0 )
then
53 if( symbIsGlobalNamespc( ) = FALSE )
then
63 case FB_TKCLASS_IDENTIFIER, FB_TKCLASS_QUIRKWD
90 if( (options
and FB_IDOPT_ISDECL) <> 0 )
then
93 if( symbGetParent(
base_parent ) <> symbGetCurrentNamespc( ) )
then
104 if(
chain_->
next <> NULL )
then
106 if(
chain_->isimport )
then
107 dim as FBSYMBOL
ptr ns = symbGetNamespace(
chain_->sym ), ns2 = symbGetNamespace(
chain_->
next->sym )
111 errReport( FB_ERRMSG_AMBIGUOUSSYMBOLACCESS )
124 byval sym
as FBSYMBOL
ptr,
_
125 byval options
as FB_IDOPT
_
128 if( (options
and FB_IDOPT_ALLOWSTRUCT) = 0 )
then
134 if( symbGetIsUnique( sym ) = FALSE )
then
141 if( options
and FB_IDOPT_ISVAR )
then
142 return symbGetUdtHasStaticVar( sym )
155 byval options
as FB_IDOPT
_
158 assert((options
and FB_IDOPT_DONTCHKPERIOD) = 0)
160 dim as FBSYMCHAIN
ptr chain_ =
any
161 dim as FBSYMBOL
ptr parent =
any
165 chain_ = lexGetSymChain( )
167 if( fbLangOptIsSet( FB_LANG_OPT_NAMESPC ) = FALSE )
then
193 dim as FBSYMBOL
ptr sym =
chain_->sym
195 select case as const symbGetClass( sym )
196 case FB_SYMBCLASS_NAMESPACE, FB_SYMBCLASS_CLASS, FB_SYMBCLASS_ENUM
198 case FB_SYMBCLASS_STRUCT
203 case FB_SYMBCLASS_TYPEDEF
205 select case( symbGetType( sym ) )
206 case FB_DATATYPE_STRUCT
207 sym = symbGetSubtype( sym )
213 case FB_DATATYPE_ENUM
214 sym = symbGetSubtype( sym )
230 errReport( FB_ERRMSG_ILLEGALMEMBERACCESS )
244 if( symbGetClass( sym ) = FB_SYMBCLASS_NAMESPACE )
then
269 case FB_TKCLASS_IDENTIFIER, FB_TKCLASS_QUIRKWD
271 case FB_TKCLASS_OPERATOR, FB_TKCLASS_KEYWORD
272 if( (options
and FB_IDOPT_ISOPERATOR ) <> 0 )
then
277 errReport( FB_ERRMSG_EXPECTEDIDENTIFIER )
286 if( (options
and FB_IDOPT_ISOPERATOR ) <> 0 )
then
292 errReport( FB_ERRMSG_EXPECTEDIDENTIFIER )
311 if( (options
and FB_IDOPT_CHECKSTATIC) <> 0 )
then
313 select case symbGetClass(
parent )
314 case FB_SYMBCLASS_STRUCT, FB_SYMBCLASS_CLASS
316 dim as FBSYMCHAIN
ptr iter =
chain_
318 dim as FBSYMBOL
ptr sym = iter->sym
321 if( symbGetClass( sym ) = FB_SYMBCLASS_FIELD )
then
322 errReport( FB_ERRMSG_ACCESSTONONSTATICMEMBER )
327 loop while( sym <> NULL )
329 iter = symbChainGetNext( iter )
330 loop while( iter <> NULL )
347 byval options
as FB_IDOPT
_
350 dim as FBSYMCHAIN
ptr chain_ =
any
353 if( fbLangOptIsSet( FB_LANG_OPT_NAMESPC ) = FALSE )
then
357 chain_ = lexGetSymChain( )
369 do while(
chain_ <> NULL )
372 select case as const symbGetClass( sym )
373 case FB_SYMBCLASS_NAMESPACE, FB_SYMBCLASS_CLASS, FB_SYMBCLASS_ENUM
375 case FB_SYMBCLASS_STRUCT
381 case FB_SYMBCLASS_TYPEDEF
383 select case( symbGetType( sym ) )
384 case FB_DATATYPE_STRUCT
385 sym = symbGetSubtype( sym )
392 case FB_DATATYPE_ENUM
393 sym = symbGetSubtype( sym )
408 errReport( FB_ERRMSG_ILLEGALMEMBERACCESS )
417 if( (options
and FB_IDOPT_DONTCHKPERIOD) <> 0 )
then
439 case FB_TKCLASS_IDENTIFIER, FB_TKCLASS_QUIRKWD
441 case FB_TKCLASS_OPERATOR, FB_TKCLASS_KEYWORD
442 if( (options
and FB_IDOPT_ISOPERATOR ) <> 0 )
then
446 errReport( FB_ERRMSG_EXPECTEDIDENTIFIER )
453 if( (options
and FB_IDOPT_ISOPERATOR ) <> 0 )
then
458 errReport( FB_ERRMSG_EXPECTEDIDENTIFIER )
483 select case symbGetClass( s )
484 case FB_SYMBCLASS_NAMESPACE
485 if( s <> symbGetCurrentNamespc( ) )
then
486 errReport( FB_ERRMSG_DECLOUTSIDENAMESPC )
489 case FB_SYMBCLASS_CLASS
490 if( s <> symbGetCurrentNamespc( ) )
then