1

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

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

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

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

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

4

1 回答 1

2

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

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

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

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

于 2012-11-23T15:55:26.563 回答