基于JAVA的TPL解释器

基于JAVA的TPL解释器编写一个Java程序,该程序读取一个文件中的TPL指令(见下文),并执行这些指令。该语言编写的程序每一行都必须以这些单词中的一个开头,不区分大小写。具体说明可参考链接//download.csdn.net/download/qq_43372640/12016782关于TPL关键字解释1、# 是注释符,所以任何以#字符开头的行都被完全忽略。2、INTEGER 可以声明一个整...
摘要由CSDN通过智能技术生成

基于JAVA的TPL解释器

编写一个Java程序,该程序读取一个文件中的TPL指令(见下文),并执行这些指令。该语言编写的程序每一行都必须以这些单词中的一个开头,不区分大小写。具体代码可参考链接 https://download.csdn.net/download/qq_43372640/12016782
(ps:原意只是为了让大家参考,所以文件只包括代码说明和源代码(图片形式),没有java文件,如果想要做出效果,需要自己写进软件里生成java文件,请谨慎考虑是否下载)

关于TPL

TPL(Tiny Programming Language)是为本次练习所设计的一种非常简易的编程语言。该语言是完全线性的,它没有分支或循环,每个语句都是按顺序执行。TPL能够处理文本和简单的算法,它具有整型和字符串型两个变量类型。它有8个保留字,具体如下表所示。

保留字名称 描述
# 注释符
INTEGER 声明整型变量
STRING 声明字符串型变量
LET 分配一个变量
CALCULATE 执行算术运算
PRINT 写入数据到控制台
PRINTLN 在PRINT执行基础上附带一个空行
END 终止程序

关键字解释

1、# 是注释符,所以任何以#字符开头的行都被完全忽略。

例:

#ignore this line!
2、INTEGER 可以声明一个整型变量,默认值为0。

例:

 INTEGER myInt

这等同于JAVA中的表达“int myInt=0;”

3、STRING 可以声明一个字符串型变量,默认值为空串。

例:

STRING myString

这等同于JAVA中的表达“String myString;”

4、LET 将值分配给变量(整数或双引号括起来的字符串)。

例:

LET myInt=42
LET myString="Hello World!"
5、CALCULATE 对数值或变量执行数值计算,并将结果赋值给变量(必须提前声明)。支持四个运算符:+, -, *和/(分别为加法、减法,乘法和整数除法)。

例:

CALCULATE myInt=2*2
CALCULATE myInt=myInt+24
CALCULATE myInt=intA/intB
6、PRINT 和 PRINTLN 可以将内容打印到控制台上,唯一的区别是PRINTLN打印完后追加一个新的行(类似Java中的Systme.out.println)。它们可以打印作为参数的文本或变量(字符串或整数)。

例:

PRINTLN "Hello World!"
PRINT myString
PRINTLN myInt
7、END将终止程序。

TPL完整程序样例

下面是一个示例TPL输入文件,用于计算5的阶乘。这个文件放在.txt文件中,方便程序调用
#A TPL Program   to calculate the factorial of 5
INTEGER myInt
INTEGER   factorial
STRING myString
LET   mystring="Factorial Program"
LET myInt=5
CALCULATE   factorial=myInt*4
CALCULATE   factorial=factorial*3
CALCULATE   factorial=factorial*2
PRINTLN   mystring
PRINTLN
PRINT "The   factorial of "
PRINT myInt
PRINT " is   "
PRINTLN   factorial
END

程序打印出来的结果如下:

Factorial Calculation
 
The factorial of 10 is 3628800

程序实现思路

由于本人能力有限,使用的方法比较傻,就是一行一行去检验,通过对应的关键字来实现相应功能。

  • 首先,先取到文件每行的内容,这里我是通过while语句一行一行读取,并通过hanghao++来进行行号的记录。
BufferedReader br;  	//BufferedReader()函数,作用:将字符流放入缓存里
br = new BufferedReader(new FileReader("G:\\2019-2020\\java\\TheFactorialOf5.txt"));
//读取文件路径的文件
 while((str = br.readLine()) != null){
   
  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值