C语法分析器

时间:2012-10-15 03:03:21

标签: c compiler-construction code-analysis static-analysis static-code-analysis

那里有哪些lib可以解析C语法?

例如,我想编写自己的代码/脚本,根据c语法分析c文件。每个函数/文件的“if”语句数,函数中每行代码的注释行数等等.....

编写所有这些自定义代码时,如果已经有一些lib可以用来跳转而不是从解析器开始,那么我就可以更轻松地完成工作了。

谢谢!

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

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

答案 2 :(得分:0)

就个人而言,我会先找一个现有工具来做你想做的事。这听起来像是一项非常多的工作,并且有很多很好的免费工具可用于代码指标(你看过SourceForge吗?)。

如果你坚持继续你的项目,你可能会谷歌为Lex / Yacc语法进行C语言。

但是,几年前我从Lex / Yacc转到Antlr。我特别喜欢它允许你visually step through your parsing的方式。

一个很棒的工具,而且是免费的。还有complete grammar for C可用,因此您可以根据需要进行修改。

希望这会有所帮助。祝你好运

答案 3 :(得分:-1)

您可能还会考虑尝试使用代码覆盖率工具。虽然代码覆盖率旨在向您显示执行源代码的百分比,但其中一些还显示了在执行代码覆盖时遇到的条件语句或循环的数量。根据我的经验,我可以分享的一个例子是windriver workbench代码覆盖工具