我需要<
在 C/C++ 代码文件中编码所有出现的字符。为防止冲突,我需要知道 C/C++ 标准中未保留哪些字符。例如,如果$
没有保留,我可以暂时编码<
并$
在以后恢复原始 C/C++ 代码。
我需要使用类似 XML 的中间语言对我的 C/C++ 代码进行这种编码。
提前致谢。
而不是列出未保留的字符(有无限),这里是标准 2.3.1 中的保留字符:
空格、水平制表符、垂直制表符、换页、换行 a 到 z A 到 Z 0 到 9 _ { } [ ] # ( ) % : ; . ? * + - / ^ & | ~ != , \" '
如果将所有<
字符转换为$
,您将如何保留$
原始文件中的任何实例?
既然你说你的目标是一种类似 XML 的中间语言,为什么不使用 XML 转义和转换<
为<
呢?(在这种情况下,您还需要进行转换&
,比如说&
。)有很多开源库可以帮助您做到这一点。如果您找不到任何独立模块,这里是我编写的代码,可以提取其 XML(非)转义功能。
这取决于您所说的“保留”是什么意思。一个实现只需要理解输入中非常有限数量的字符,所有其他字符都是通过通用字符名称输入的。允许(我什至会说鼓励)实现更多支持,请参见第 2.2 节,第 1 点。实际上,注释中以及字符串和字符文字(至少宽字符形式,在 C++11 中为 Unicode 形式)。您最好的选择可能是引用的可打印内容。