0

我需要解析一些 c++ 文件以从中获取一些信息。一个用户案例是我有一个枚举值“ID_XYZ”,我想知道它在源文件中出现了多少次。所以我的问题是 C++ 中的分隔符分隔符号是什么?

4

1 回答 1

2

您不能真正仅基于分隔符对 C 或 C++ 源代码进行标记——您几乎需要一次读取一个字符,并确定该字符是否可以成为当前标记的一部分。

仅举几个例子,当您看到 C 风格的开始注释标记时,您需要查看字符,直到遇到关闭注释标记。同样,字符串和预处理器指令(例如,#if 0 .... #endif序列)。要真正正确地做到这一点,您还需要正确处理三元组。例如,考虑这样的事情:

// Why doesn't this work??/
ID_XYZ = 1;

如果词法分析器没有正确处理三元组,它可能会将其识别为您的实例ID_XYZ——但实际上,它不是——??/上一行的末尾实际上是一个解析为的三元组\,这意味着“ single-line" 注释实际上延伸到下一行的末尾,并且明显的实例ID_XYZ实际上是注释的一部分。

于 2013-07-17T05:09:31.043 回答