Article
基于YACC的TINY语法分析器的构建
00 分钟
2020-2-24
2023-5-21
type
status
category
date
slug
summary
tags
icon
Last edited time
May 21, 2023 07:57 AM

源文件地址

实验要求

运用YACC,针对TINY语言,构造一个语法分析器

实验原理

查找资料可知yacc产生的子程序在申请读入下一个单词时会调用yylex()。yylex()返回一 个单词符号,并将相关的属性值存入全局量yylval 为了联用 lex 和 yacc,需要在运行 yacc 程序时加选项-d,以产生文件 y. tab. h,其中 会包含在 yacc 描述文件中(由% tokens 定义)的所有单词种别。文件 y. tab. h将被包 含在 lex 描述文件中。

输入设计

输出设计

完成效果

notion image

过程步骤

一、附录中所给的源文件

notion image

二、去掉tiny.y中yylex方法

notion image

三、输入bison -v tiny.y

生成tiny.output文件
LR分析表
notion image

四、输入命令

lex tiny.l
yacc -d tiny.y
生成
notion image

五、修改y.tab.c将yychar=yylex()修改成yychar=getToken()

notion image
notion image

六、输入make命令进行构建

生成tiny.out可执行文件

七、将sample.tny作为输入执行tiny.out文件

notion image

实验报告

 

评论