15 byval expr
as ASTNODE
ptr, _
16 byval isgoto
as integer _
19 dim as integer l =
any
20 dim as FBSYMBOL
ptr sym =
any, exitlabel =
any
21 dim as ulongint values(0
to FB_MAXGOTBITEMS-1) =
any
22 dim as FBSYMBOL
ptr labels(0
to FB_MAXGOTBITEMS-1) =
any
23 dim as FBSYMCHAIN
ptr chain_ =
any
24 dim as FBSYMBOL
ptr base_parent =
any
42 if( astGetDataType( expr ) <> FB_DATATYPE_UINT )
then
43 expr =
astNewCONV( FB_DATATYPE_UINT, NULL, expr )
49 if( expr = NULL )
then
59 case FB_TKCLASS_NUMLITERAL, FB_TKCLASS_IDENTIFIER
63 if( l < FB_MAXGOTBITEMS )
then
65 if( labels(l) = NULL )
then
68 elseif( l = FB_MAXGOTBITEMS )
then
78 if( l < FB_MAXGOTBITEMS )
then
85 loop while(
hMatch( CHAR_COMMA ) )
88 if( l >= FB_MAXGOTBITEMS )
then
89 l = FB_MAXGOTBITEMS - 1
95 for i
as integer = 0
to l - 1
100 expr =
astBuildJMPTB( sym, @values(0), @labels(0), l, exitlabel, 1, l )
122 dim as ASTNODE
ptr expr =
any
123 dim as integer isgoto =
any, islocal =
any, isrestore =
any
124 dim as FBSYMBOL
ptr label =
any
125 dim as FBSYMCHAIN
ptr chain_ =
any
126 dim as FBSYMBOL
ptr base_parent =
any
134 if(
hMatch( FB_TK_LOCAL ) )
then
135 if( fbIsModLevel( ) )
then
149 hMatchExpressionEx( expr, FB_DATATYPE_INTEGER )
160 if( expr = NULL )
then
166 if( fbLangOptIsSet( FB_LANG_OPT_GOSUB ) = FALSE )
then
173 if( env.opt.
gosub )
then
191 if( expr = NULL )
then
201 if( isrestore = FALSE )
then
206 if( label = NULL )
then