TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
这是一个用java编写的简单的BASIC语言解释器,只能解释以下关键字:
PRINT INPUT IF THEN FOR NEXT TO GOTO GOSUB RETURN END
支持数字、变量(A~Z)、运算符(+-*/^=()<>>=<=<>),请看演示程序:
class SBDemo {
public static void main(String args[])
{
if(args.length != 1) {
System.out.println("Usage: sbasic <filename>");
return;
}
try {
//从命令行输入BASIC语言源程序的
SBasic ob = new SBasic(args[0]);
文件名
ob.run(); //解释运行
} catch(InterpreterException exc) {
System.out.println(exc);
}
}
}
运行:
C:java>java SBDemo TEST2.BAS
This program demonstrates nested GOSUBs.
enter a number: 9
9.0 18.0 27.0 36.0 45.0 54.0 63.0 72.0 81.0
C:java>
下面是BASIC语言源程序:TEST2.BAS
PRINT "This program demonstrates nested GOSUBs."
INPUT "enter a number: ", I
GOSUB 100
END
100 FOR T = 1 TO I
X = X + I
GOSUB 150
NEXT
RETURN
150 PRINT X;
RETURN
源码下载:http://file.javaxxz.com/2014/10/1/085536688.zip |
|