作为我大学项目的一部分,我们应该开发一个C编译器。词法分析器和解析器部分结束 - 工具Flex&野牛使我们的艰巨任务变得更加简单。现在我们陷入困境的是我们无法继续进行该项目。一旦掌握了这三个文件,我们究竟是如何进行的:
我们还设法在DOS提示符下使用以下命令生成可执行文件
gcc lex.yy.c y.tab.c -o example1
我得到了可执行的example.exe ... 现在如何继续运行编译器?如何让它构建用户C代码?
答案 0 :(得分:2)
您应该检查example.exe
是否可以读取C程序并报告任何语法错误。
如果不能,请修复您的.y
和/或.l
文件,然后重试。
如果可以,那么,你有一个有效的解析器。现在把它变成一个有效的编译器。继续向.y
文件添加代码(称为语义操作),实现越来越多的编译器功能。首先,确保您可以报告语义错误,例如无效类型或缺少声明。然后实现汇编代码生成。
当.y
文件变得太大时,将一些代码转换为函数并将它们移动到单独的.c
文件中。