实现C预处理器

时间:2013-02-17 12:04:13

标签: c c-preprocessor

我正在实现一个C预处理器......

在Wiki上,我发现了以下功能......

  • Trigraph replacement
  • 线拼接
  • 标记化
  • 宏扩展和指令处理
  • 文件包含

我的问题:

  • 我错过了任何功能吗?
  • 上述功能的正确执行顺序是什么? (即在今天的实际预处理器之前做了什么?)

如果有人知道任何关于它的标准文档,请同时提及。

2 个答案:

答案 0 :(得分:7)

标准文档是C标准!官方版本不是免费的,但您可以找到足够准确的草稿,例如: C99为http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf

感兴趣的章节是5.1.1.2(翻译阶段)和6.10(预处理指令)。

答案 1 :(得分:2)

您可能需要查看gcc文档,了解它们是如何实现的: http://gcc.gnu.org/onlinedocs/cpp/

您还可以查看gcc的源代码: http://www.gnu.org/software/gcc/releases.html

希望这有帮助