编译原理课设——《TINY编译器》,用yacc生成语法扫描实现编译器

来源:互联网 发布:c程序员网站 编辑:程序博客网 时间:2024/05/17 22:02

        注:工作环境如无说明,则和前面提到相同。

        本篇博客介绍工作三的步骤。

        首先,修改TINY.Y文件,将其最后的 static int yylex(void)的staitc去掉。这个函数的作用便是为了给yyparse提供token序列。因为yacc一般需要和lex合作,而lex生成的词法扫描源码会默认提供token序列的函数为yylex(),而现在我们使用scan.c中的getToken()函数提供token,但是yyparse()只会调用yylex()获得token,因此需要我们自己实现yylex()函数。

      然后,使用yacc生成语法分析源码:

                yacc -d TINY.Y

      最后,便是新建工程阶段,将生成的y.tab.c、y.tab.h和其他源码(不包含parse.c)加入到工程中,编译即可。

0 0
原创粉丝点击