
tiger compiler
文章平均质量分 59
lhfl911
这个作者很懒,什么都没留下…
展开
-
tiger 语法分析实现(无语义)
用bison实现tiger语言的语法分析,只判断语法是否出错,无语义动作。shift/reduce conflict: 按照书上给的语法规则完成tiger.y文件,出现了三类shift/reduce conflict一、else悬挂 exp : IF exp THEN exp . | IF exp THEN exp . ELSE exp可以通过给else赋比then高的优先级消原创 2017-02-27 17:57:50 · 1855 阅读 · 2 评论 -
tiger 词法分析实现
用lex实现一个tiger语言的词法分析器.tiger语言词法规范:标识符 以字母开头,由字母、数字和下划线组成的序列。区分大小写字母。注释 可以出现在任意两个单词之间。以/*开始,以*/结束,并且可以嵌套。整型常量 由十进制数字组成的一个序列。没有负整型,对于带负号的整型需返回两个单词字符串常量 由括在双引号之间的零至多个可打印字符、空白符或转义序列组成的序列。 tiger允原创 2017-02-20 11:50:09 · 3254 阅读 · 3 评论 -
tiger 抽象语法树生成
在语法分析基础上添加语义动作,生成tiger语言抽象语法树。官网给出框架和构造函数代码,仅仅需要在tiger.y添加相应语义动作,实现比较容易。文法: 文法稍作改变,增加了tydecs和fundecs来对应书中要求的nametylist和functionlist。由此产生了两个新shift/reduce conflict。 tydecs: tydec . | tydec原创 2017-03-02 17:59:32 · 1730 阅读 · 0 评论 -
tiger 语义分析(类型检查)
为编译器实现类型检查。 在语法分析的基础上,对抽象语法树进行类型检查,并生成相关报错信息。完成语法分析的基础上,还需: types.[ch]: 已给出,描述了tiger语言的数据类型 env.[ch]: 实现值环境、类型环境 semant.[ch]:实现类型检查函数SEM_transProg(A_exp exp) semtest.c: 测试平台,main入口 修改makefi原创 2017-03-10 20:15:33 · 2175 阅读 · 0 评论