注:工作环境如无说明,则和前面提到相同。
本篇博客介绍工作三的步骤。
首先,修改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)加入到工程中,编译即可。