使用自行设计的C编译器构建代码

时间:2012-11-23 15:19:01

标签: c compiler-construction

作为我大学项目的一部分,我们应该开发一个C编译器。词法分析器和解析器部分结束 - 工具Flex&野牛使我们的艰巨任务变得更加简单。现在我们陷入困境的是我们无法继续进行该项目。一旦掌握了这三个文件,我们究竟是如何进行的:

  • y.tab.h
  • y.tab.c的
  • lex.yy.c中

我们还设法在DOS提示符下使用以下命令生成可执行文件

  

gcc lex.yy.c y.tab.c -o example1

我得到了可执行的example.exe ... 现在如何继续运行编译器?如何让它构建用户C代码?

1 个答案:

答案 0 :(得分:2)

您应该检查example.exe是否可以读取C程序并报告任何语法错误。

如果不能,请修复您的.y和/或.l文件,然后重试。

如果可以,那么,你有一个有效的解析器。现在把它变成一个有效的编译器。继续向.y文件添加代码(称为语义操作),实现越来越多的编译器功能。首先,确保您可以报告语义错误,例如无效类型或缺少声明。然后实现汇编代码生成。

.y文件变得太大时,将一些代码转换为函数并将它们移动到单独的.c文件中。