*** empty log message ***
This commit is contained in:
29
lang/basic/lib/return.c
Normal file
29
lang/basic/lib/return.c
Normal file
@@ -0,0 +1,29 @@
|
||||
/* $Header $ */
|
||||
|
||||
#define MAXNESTING 1000
|
||||
|
||||
int _gotable[MAXNESTING];
|
||||
int topstk=0;
|
||||
|
||||
_gosub(x)
|
||||
int x;
|
||||
{
|
||||
/* administer gosub */
|
||||
#ifdef DEBUG
|
||||
printf("store %d in %d\n",x,topstk);
|
||||
#endif
|
||||
if( topstk== MAXNESTING) error(26);
|
||||
_gotable[topstk]= x;
|
||||
topstk++;
|
||||
}
|
||||
_retstmt()
|
||||
{
|
||||
/* make sure that a return label index is on top
|
||||
of the stack */
|
||||
#ifdef DEBUG
|
||||
printf("return to %d %d\n",_gotable[topstk-1],topstk-1);
|
||||
#endif
|
||||
if( topstk==0 || topstk==MAXNESTING)
|
||||
error(1);
|
||||
return( _gotable[--topstk]);
|
||||
}
|
||||
Reference in New Issue
Block a user