【发布时间】:2013-06-09 21:23:26
【问题描述】:
我正在尝试编写一个状态机,它可以读取源文件并将其拆分为编译器业务或预处理器业务的部分。不是深度遍历,我只是在寻找 cmets 或预处理器指令的部分。 (没有宏,没有条件编译的块等)
注释很简单,但我不能 100% 确定在哪里指定预处理器指令是合法的。例如,下面这行是否合法?
int i; #include <derp.h>
是否存在允许某些指令而其他指令不允许的特殊情况?
我已经搜索了 google 和 SO,但没有找到可以回答这个问题的问题。
请同时回答 C 和 C++,我有意和有意地都标记了。
【问题讨论】:
-
如果你想制作一个解析器,你真的应该使用该语言的权威语法(即标准),而不是依赖于 SO !
-
你试过谷歌吗?
-
是的,我试过谷歌。它是这样说的,就在问题中。
-
... that slurps a source file- 这样的图像。 BTW#includes files不应该以挂 cmets、双引号、单引号等结尾,但无效的会。也许一个有趣的#include正在尝试这种行为。
标签: c++ c c-preprocessor preprocessor-directive