13 byval stk
as FB_CMPSTMTSTK
ptr, _
14 byval sym
as FBSYMBOL
ptr _
30 static as zstring * FB_MAXNAMELEN+1 id
31 dim as zstring ptr palias =
any
32 dim as FBSYMBOL
ptr sym =
any
33 dim as FBSYMCHAIN
ptr chain_ =
any
34 dim as FB_CMPSTMTSTK
ptr stk =
any
35 dim as integer levels =
any
37 if( fbLangOptIsSet( FB_LANG_OPT_NAMESPC ) = FALSE )
then
58 case FB_TK_COMMENT, FB_TK_REM, FB_TK_EOL, FB_TK_EOF, FB_TK_STMTSEP
61 FB_CMPSTMT_MASK_ALL
and (
not FB_CMPSTMT_MASK_CODE) _
62 and (
not FB_CMPSTMT_MASK_EXTERN) _
63 and (
not FB_CMPSTMT_MASK_DATA))
70 if( parser.nspcrec + levels >= FB_MAXNAMESPCRECLEVEL )
then
79 case FB_TKCLASS_IDENTIFIER
81 chain_ = lexGetSymChain( )
83 case FB_TKCLASS_QUIRKWD
85 if( symbIsGlobalNamespc( ) )
then
91 chain_ = lexGetSymChain( )
101 if( chain_ <> NULL )
then
104 if( symbIsNamespace( sym ) = FALSE )
then
111 if( symbGetHashTb( sym ) <> symbGetCurrentHashTb( ) )
then
121 if( id[0] <> 0 )
then
126 if( sym = NULL )
then
127 if( levels = 1 )
then
133 if( sym = NULL )
then
139 FB_CMPSTMT_MASK_ALL
and (
not FB_CMPSTMT_MASK_CODE) _
140 and (
not FB_CMPSTMT_MASK_DATA))
144 if( palias <> NULL )
then
160 stk->nspc.levels = levels
161 parser.nspcrec += levels
166 dim as FB_CMPSTMTSTK
ptr stk =
any
167 dim as integer levels =
any
170 if( stk = NULL )
then
179 levels = stk->nspc.levels
181 parser.nspcrec -= levels
183 do while( levels > 0 )
188 dim as FBSYMBOL
ptr ns = stk->nspc.sym
189 symbGetNamespaceCnt( ns ) += 1
190 if( symbGetNamespaceCnt( ns ) > 1 )
then
193 symbGetNamespaceLastTail( ns ) = symbGetCompSymbTb( ns ).tail
199 if( stk = NULL )
then
209 dim as FBSYMBOL
ptr sym =
any
211 if( fbLangOptIsSet( FB_LANG_OPT_NAMESPC ) = FALSE )
then
223 sym =
cParentId( FB_IDOPT_DONTCHKPERIOD )
224 if( sym = NULL )
then
226 errReport( FB_ERRMSG_EXPECTEDIDENTIFIER )
235 if( symbIsNamespace( sym ) = FALSE )
then
243 loop while(
hMatch( CHAR_COMMA ) )