3

Are there any libs out there that can parse C syntax?

For example I would like to write my own code/scripts that will analyze c files given the c syntax. Number of "if" statements per function/file, lines of comments per lines of code in a function and so on.....

I have no problem writing all this custom code just wanted to make the job easier if there was already some lib that I can use to jump start instead of starting with the parser.

Thanks!

4

4 回答 4

2

除了clang已经提出的建议,考虑pycparserBoost.Wave

于 2012-10-15T03:19:19.220 回答
2

尽管它们更针对语义分析而不是句法分析,但您可能对基于它的CILFrama-C感兴趣(都在 OCaml 中)。另一个感兴趣的工具(OCaml 和 Python 绑定)是Coccinelle

于 2012-10-15T08:40:23.670 回答
0

就个人而言,我会首先寻找一个现有的工具来做你想做的事。这听起来工作量很大,而且有很多很好的免费工具可用于代码度量(你在SourceForge 上看过吗?)。

如果你坚持要继续你的项目,你可以在谷歌上搜索 C 的 Lex/Yacc 语法。

然而,几年前我从 Lex/Yacc 切换到Antlr。我特别喜欢它允许您直观地逐步完成解析的方式。

一个很棒的工具,而且是免费的。也有完整的 C 语法可用,因此您可以修改它以满足您的需要。

希望这可以帮助。祝你好运

于 2012-10-15T03:29:16.397 回答
-1

您也可以考虑尝试使用代码覆盖率工具。尽管代码覆盖率旨在向您显示执行了多少百分比的源代码,但其中一些还显示了在进行代码覆盖时遇到了多少条件语句或循环。我可以根据我的经验分享一个例子是 windriver 工作台代码覆盖工具

于 2015-09-02T18:22:04.777 回答