TEST语言编译器
Sadsongs
这个作者很懒,什么都没留下…
展开
-
TEST语言编译器--语法分析
TEST语言编译器 目录 语法分析 语法分析程序的功能是:对词法分析的结果,根据语法规则,将一个个单词符号组成语言的各种语言类。分析时发现有不合语法规则的符号,要将错误符号和性质报告给程序员(错误检测)。 TEST语言语法规则 详细规则参照原书附录 A.2 规则变动: 大部分语法规则和C语言相似,其中write语句定义为向变量输入值,read语句定义为读取表达式的值。 for语句正则文法...原创 2019-10-14 18:45:07 · 2432 阅读 · 0 评论 -
TEST语言编译器程序--说明
说明 最近在上编译原理,理论性的东西有点枯燥,想搞点实践。加上学期末本来就要上编译原理实验,就兴起想提前把程序写完。 TEST语言 TEST语言是一种仿C语言,实现了一些简单的语法功能的编程语言,详细语法参照孙悦红编著的《编译原理及实现(第二版)》中关于TEST语言的介绍。 原书中使用C语言编写了TEST语言的编译器以及TEST抽象机模拟器。笔者由于最近在学习Python,便使用Python编写...原创 2019-09-29 11:48:22 · 1478 阅读 · 0 评论 -
TEST语言编译器--错误检测
错误检测 由于所有过程都要有错误检测,所以把错误检测放到了最前面来编写 分析 原书中使用了标志位es来表示错误类型:标志位为0时没有错误,大于0时产生错误,并用es的值来表示不同错误。 笔者最初使用类似方法,但是是通过返回字符串的形式,但这样显得很繁琐。这在词法分析中不明显,但语法分析时就比较明显了。 例如: def declaration_list(): ... d = dec...原创 2019-09-29 12:18:07 · 417 阅读 · 0 评论 -
TEST语言编译器--词法分析
词法分析 词法分析时,依次读入源程序中的每个字符,依据语言的构词规则,识别出一个个具有独立意义的最小语法单位,即“单词”,并用某个单词符号来表示每个单词的词性是标识符、分界符还是数。 TEST语言词法规则 详细规则参照原书附录 A.1 TEST语言的单词符号如下: 标识符(identifier):字母打头,后接字母数字,用ID标识 保留字(keyword) :if、while、for等, ...原创 2019-10-08 16:54:20 · 1814 阅读 · 0 评论