19 byval tk
as FB_TOKEN _
30 dim as FBSYMBOL
ptr sym = NULL
32 case FB_TKCLASS_IDENTIFIER, FB_TKCLASS_QUIRKWD, FB_TKCLASS_NUMLITERAL
33 dim as FBSYMCHAIN
ptr chain_ =
any
34 dim as FBSYMBOL
ptr base_parent =
any
41 FB_SYMBOPT_MOVETOGLOB
or FB_SYMBOPT_CREATEALIAS )
57 dim as ASTNODE
ptr expr = NULL
60 if( expr = NULL )
then
68 loop while(
hMatch( CHAR_COMMA ) )
75 if( env.clopt.lang <> FB_LANG_QB )
then
83 if( parser.
scope > FB_MAINSCOPE )
then
84 if( fbIsModLevel( ) = FALSE )
then
87 errReport( FB_ERRMSG_ILLEGALINSIDEASCOPE )
95 if( fbIsModLevel( ) = FALSE )
then
104 dim as ASTNODE
ptr expr = NULL
106 if( env.clopt.lang <> FB_LANG_QB )
then
110 hMatchExpressionEx( expr, FB_DATATYPE_INTEGER )
113 dim as integer isconst = astIsCONST( expr )
114 if( isconst = FALSE )
then
115 if( astIsOFFSET( expr ) )
then
119 select case astGetDataType( expr )
120 case FB_DATATYPE_CHAR, FB_DATATYPE_WCHAR
126 if( isconst = FALSE )
then
134 loop while(
hMatch( CHAR_COMMA ) )
138 const LEX_FLAGS = LEXCHECK_NOWHITESPC
or _
139 LEXCHECK_NOSUFFIX
or _
140 LEXCHECK_NODEFINE
or _
141 LEXCHECK_NOQUOTES
or _
146 dim as integer do_exit = FALSE
151 dim as integer tokens = 0
159 case CHAR_SPACE, CHAR_TAB
163 case FB_TK_EOF, FB_TK_EOL, FB_TK_COMMENT, FB_TK_REM, FB_TK_STMTSEP
177 if( tokens = 1 )
then
178 if(
len( text ) > 1 )
then
179 if( text[0] =
asc(
"""" ) )
then
180 if( text[
len( text )-1] =
asc(
"""" ) )
then
181 text =
mid( text, 2,
len( text ) - 2 )
190 loop until( do_exit )