有哪些好工具可以快速开始解析和分析C/C++代码?
具体地说,我正在寻找处理C/C++预处理器和语言的开源工具.这些工具最好使用lex/yacc(或flex/bison)作为语法,并且不要太复杂.它们应该处理最新的ANSI C/C++定义.
以下是我到目前为止的发现,但还没有详细研究( idea ?):
- CScope台老式C分析仪.不过,似乎没有做完整的解析.描述为用于查找C函数的美化的"grep".
- GCC-大家最喜欢的开源编译器.非常复杂,但似乎都能做到.有一个创建GCC扩展名为GEM的相关项目,但自GCC 4.1(2006)以来一直没有更新过.
- PUMA-纯机械手.(摘自页面:"本项目的目的是
- 各种C/C++原始语法.你可以拿到c-c++-grammars-1.2.tar.gz美元,但这从1997年起就没有维护过了.稍微在Google上搜索一下,就会调出其他基本的lex/yacc语法,可以作为起点.
- 还有别的吗?
我希望以此为起点,将C/C++源代码翻译成一种新的玩具语言.
谢谢! -哑光
(增加了2/9):我只是想澄清一下:除了C/C++代码本身之外,我还想从预处理器中提取语义信息.我不希望"#定义foo42"消失在整数"42"中,而是保持与"foo"这个名称的关联.不幸的是,这排除了几个首先运行预处理器并且只提供C/C++解析树的解决方案)