- 论坛徽章:
- 1
|
case ']':
if( register_space[ *dp ] )
{
level = 1 ;
while(1)
{
(*ip)--;
if( *( source + (*ip) ) == ']' )
level++;
if( *( source + (*ip) ) == '[' )
{
level--;
if( level == 0 )
{
(*ip)++;
break;
}
}
}
}
else
{
(*ip)++;
}
break;
default:
(*ip)++;
break;
}
}
return 0;
}
int main( int argc , char *argv[] )
{
unsigned char *source;
long sourcesize;
long ip,dp;
int ret;
/* 有参数 */
if( argc > 1 )
{
ip = 0 ;
dp = 0 ;
if( argc == 3 && STRCMP( argv[1] , == , "-s" ) )
{
/* 命令行字符串作为源代码导入 */
source = argv[2] ;
ret = interpret( source , &ip , &dp );
if( ret != 0 )
{
printf( "ERROR : %d" , ret );
return ret;
}
}
else if( argc == 3 && STRCMP( argv[1] , == , "-f" ) )
{
/* 文件内容作为源代码导入 */
source = NULL ;
sourcesize = 0 ;
source = ReadEntireFileSafely( argv[2] , source , &sourcesize ) ;
if( source == NULL )
{
printf( "file '%s' can't be opened\n" , argv[2] );
return -21;
}
ret = interpret( source , &ip , &dp );
if( ret != 0 )
{
printf( "ERROR : %d" , ret );
return ret;
}
}
else
{
help();
return -1;
}
}
else
{
help();
return -1;
}
return 0;
}
|
|
|