我需要实现一些静态C代码分析,因为我的学位论文需要。我急需一个能够解析C源代码、将其拆分为单个函数、确定每个函数中哪些变量被更改以及自动推导代码某些注释的框架/库。
有没有一个使用C#编写的好框架或通用的.Net类可用于此目的?
我需要实现一些静态C代码分析,因为我的学位论文需要。我急需一个能够解析C源代码、将其拆分为单个函数、确定每个函数中哪些变量被更改以及自动推导代码某些注释的框架/库。
有没有一个使用C#编写的好框架或通用的.Net类可用于此目的?
你可以尝试在谷歌上搜索“用C#编写的C解析器”。
我找到了第一个链接:http://code.google.com/p/cpp-ripper/
此外,我认为C语法可以在很多地方找到,所以你可以打开.NET中的lex/yacc变体然后开始。
您可能想要查看ANTLR。它附带了几个版本,包括C和C#。在ANTLR网站上有一些免费的语法,其中包括C。
我曾经遇到过类似的问题,经过对C#中YACC工具的研究,我选择了Gold Parsing System with Semantic Engine。我的项目是解析SQL查询并生成逻辑查询计划(从T-SQL语法子集开始)。
我真的很推荐它。这两个库使解析变得轻松,并允许将语法映射到您代码中的对象模型中。它感觉非常直观,使我的项目成功 :) 但是,它可能缺少一些高级的ANTLR功能,因此请仔细识别您的需求。
Gold Project http://www.devincook.com/goldparser/
Semantic Engine Lib http://code.google.com/p/bsn-goldparser