我正在实现一个 C 预处理器...
在 Wiki 上,我发现了它的以下功能......
- 三元组替换
- 线拼接
- 代币化
- 宏扩展和指令处理
- 文件包含
我的问题:
- 我缺少任何功能吗?
- 上述功能的正确执行顺序是什么?(即在今天的实际预处理器中做什么之前做了什么?)
如果有人知道任何关于它的标准文档,也请提及。
我正在实现一个 C 预处理器...
在 Wiki 上,我发现了它的以下功能......
我的问题:
如果有人知道任何关于它的标准文档,也请提及。
标准文档是 C 标准!官方版本是非免费的,但您可以找到足够准确的草稿,例如http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf for C99。
感兴趣的章节是 5.1.1.2(翻译阶段)和 6.10(预处理指令)。
您可能想查看 gcc 文档以了解他们如何实现它: http: //gcc.gnu.org/onlinedocs/cpp/
您还可以查看 gcc 的源代码: http ://www.gnu.org/software/gcc/releases.html
希望这可以帮助