是否有 cpp 文件的标记器
我有一个带有巨大类实现的 cpp 文件。现在我必须修改源文件本身。
为此,是否有一个库/api/工具可以为我标记该文件,并在每次请求时给我一个标记。
我的要求如下。
OpenCPPFile()
While (!EOF)
token = GetNextToken();
process something based on this token
EndWhile
I am happy now
问候, 阿杰
I have a cpp file with a huge class implementation. Now I have to modify the source file itself.
For this, is there a library/api/tool that will tokenize this file for me and give me one token each time i request.
My requirement is as below.
OpenCPPFile()
While (!EOF)
token = GetNextToken();
process something based on this token
EndWhile
I am happy now
Regards,
AJ
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Boost.Wave
提供了标准 C++ 词法分析器以及许多其他工具,例如构建在Boost.Spirit
之上的标准预处理器。检查 boost 目录中的以下示例:例如,如果您有以下名为
main.cpp
的文件:您应用我命名为
cpp_lex
的词法分析器(假设它们位于同一目录中):您得到:
这是代码,有关更多信息,请检查 Boost.Wave 手册:
Boost.Wave
offers a standard C++ lexer among many other tools like a standard preprocessor which are built on top ofBoost.Spirit
. Check the following sample in the boost directory:For example, if you have the following file which is called
main.cpp
:You apply the lexer which I named
cpp_lex
(assuming they are in the same directory):You get:
Here is the code, for more information check Boost.Wave manual:
也可以看看 clang\llvm 中的 liblex 。它只支持正向词法分析,但它应该可以。
Have a look at liblex from clang\llvm too. It only supports forward lexing but it should do.