23 dim as ASTNODE
ptr expr =
any
25 dim as integer eqinparensonly = fbGetEqInParensOnly( )
26 fbSetEqInParensOnly( TRUE )
30 fbSetEqInParensOnly( eqinparensonly )
42 dim as ASTNODE
ptr expr =
any
44 dim as integer gtinparensonly = fbGetGtInParensOnly( )
45 fbSetGtInParensOnly( TRUE )
49 fbSetGtInParensOnly( gtinparensonly )
63 dim as ASTNODE
ptr parexpr =
any
64 dim as integer eqinparensonly =
any, gtinparensonly =
any
76 dim as integer is_opt = fbGetPrntOptional( )
77 fbSetPrntOptional( FALSE )
80 eqinparensonly = fbGetEqInParensOnly( )
81 gtinparensonly = fbGetGtInParensOnly( )
82 fbSetEqInParensOnly( FALSE )
83 fbSetGtInParensOnly( FALSE )
87 fbSetEqInParensOnly( eqinparensonly )
88 fbSetGtInParensOnly( gtinparensonly )
90 if( parexpr = NULL )
then
110 if( (is_opt = FALSE)
or (parser.prntcnt = 0) )
then
125 byval chain_ as FBSYMCHAIN
ptr _
129 dim as integer suffix = lexGetType( )
133 dim as FBSYMBOL
ptr sym =
chain_->sym
134 dim as FBSYMBOL
ptr var_sym = NULL
137 if( suffix = FB_DATATYPE_INVALID )
then
140 dim as integer is_match = TRUE
142 if( symbIsSuffixed( sym ) )
then
145 if( symbGetClass( sym ) = FB_SYMBCLASS_VAR )
then
146 if( defdtype = FB_DATATYPE_STRING )
then
147 select case as const symbGetType( sym )
148 case FB_DATATYPE_STRING, FB_DATATYPE_FIXSTR, FB_DATATYPE_CHAR
154 is_match = (symbGetType( sym ) = defdtype)
160 select case as const symbGetClass( sym )
161 case FB_SYMBCLASS_CONST
164 case FB_SYMBCLASS_PROC
166 if( symbGetIsRTL( sym ) )
then
167 is_match = (symbIsSuffixed( sym ) = FALSE)
174 case FB_SYMBCLASS_VAR
175 if( var_sym = NULL )
then
181 case FB_SYMBCLASS_KEYWORD
183 if( symbIsSuffixed( sym ) = FALSE )
then
191 loop while( sym <> NULL )
196 dim as integer is_match =
any
197 if( suffix = FB_DATATYPE_STRING )
then
198 select case as const symbGetType( sym )
199 case FB_DATATYPE_STRING, FB_DATATYPE_FIXSTR, FB_DATATYPE_CHAR
206 is_match = (symbGetType( sym ) = suffix)
211 select case as const symbGetClass( sym )
212 case FB_SYMBCLASS_CONST
215 case FB_SYMBCLASS_PROC
218 case FB_SYMBCLASS_VAR
219 if( var_sym = NULL )
then
225 case FB_SYMBCLASS_KEYWORD
233 if( symbGetClass( sym ) = FB_SYMBCLASS_KEYWORD )
then
234 if( sym->key.id = FB_TK_INPUT )
then
236 if( suffix = FB_DATATYPE_STRING )
then
247 loop while( sym <> NULL )
251 if( var_sym <> NULL )
then
256 loop while(
chain_ <> NULL )
266 byval chain_ as FBSYMCHAIN
ptr, _
267 byval options
as FB_PARSEROPT = 0 _
271 if( env.clopt.lang = FB_LANG_QB )
then
276 dim as FBSYMBOL
ptr sym =
chain_->sym
278 select case as const symbGetClass( sym )
279 case FB_SYMBCLASS_CONST
282 case FB_SYMBCLASS_PROC
285 case FB_SYMBCLASS_VAR
288 case FB_SYMBCLASS_FIELD
292 case FB_SYMBCLASS_KEYWORD
300 case FB_SYMBCLASS_STRUCT, FB_SYMBCLASS_CLASS
307 case FB_SYMBCLASS_TYPEDEF
312 return cCtorCall( symbGetSubtype( sym ) )
318 loop while( sym <> NULL )
321 loop while(
chain_ <> NULL )
336 var proc = parser.currproc
339 if( symbIsMethod( proc ) = FALSE )
then
340 errReport( FB_ERRMSG_ILLEGALOUTSIDEAMETHOD )
346 var parent = symbGetNamespace( proc )
349 var base_ = parent->udt.
base
352 if( base_ = NULL )
then
378 base_ = symbGetSubtype( base_ )->udt.
base
381 dim as FBSYMCHAIN
chain_ = (base_, NULL, FALSE)
382 function =
hFindId( symbGetSubtype( base_ ), @
chain_, FB_PARSEROPT_EXPLICITBASE )
388 byval chain_ as FBSYMCHAIN
ptr _
391 dim as ASTNODE
ptr expr =
any
403 if( fbGetIsPP( ) )
then
410 if( env.clopt.lang <> FB_LANG_QB )
then
416 if( fbLangOptIsSet( FB_LANG_OPT_IMPLICIT = FALSE ) )
then
418 FB_ERRMSG_IMPLICITVARSONLYVALIDINLANG )
422 return cVariableEx(
cast( FBSYMCHAIN
ptr, NULL ), fbGetCheckArray( ) )
429 byval chain_ as FBSYMCHAIN
ptr _
432 dim as integer tk_class =
any
437 tk_class = FB_TKCLASS_IDENTIFIER
440 select case as const tk_class
441 case FB_TKCLASS_IDENTIFIER, FB_TKCLASS_QUIRKWD, FB_TKCLASS_KEYWORD
448 case FB_TKCLASS_OPERATOR
450 if( env.clopt.lang = FB_LANG_QB )
then
454 case FB_TKCLASS_NUMLITERAL
457 case FB_TKCLASS_STRLITERAL
460 case FB_TKCLASS_DELIMITER
467 if( parser.stmt.
with.sym <> NULL )
then