C解析器在C#或一般.Net

时间:2011-05-13 12:48:29

标签: c# c parsing

对于我的毕业论文,我需要实现某些静态C代码分析,我正在拼命寻找一个框架/库,它允许我解析C源代码,将其拆分为单个函数,每个函数确定哪些变量是在函数体中更改并自动为代码派生某些注释。 为了这个目的,是否有用C#或一般用.Net类编写的好框架?

4 个答案:

答案 0 :(得分:8)

谷歌搜索“用C#编写的C解析器”怎么样?

我将此作为第一个链接:http://code.google.com/p/cpp-ripper/

另外,我认为C语法可以在很多地方找到,所以你可能只想打开.NET variant of lex/yacc并从那里开始?

答案 1 :(得分:2)

您可能想查看ANTLR。它附带了几个版本的版本,包括C和C#。 ANTLR web site上有一些免费的语法,包括C.

答案 2 :(得分:1)

我有一个类似的问题并且已经针对C#做了YACC工具的研究我选择了带有语义引擎的Gold Parsing System。我的项目是解析SQL查询并生成逻辑查询计划(来自T-SQL语法子集)。

我真的推荐它。这两个库使解析内容无痛,并允许将语法映射到代码中的对象模型。感觉非常直观,使我的项目成功:)但是,它可能缺少一些先进的ANTLR功能,因此请仔细识别您的需求。

黄金项目http://www.devincook.com/goldparser/

语义引擎库http://code.google.com/p/bsn-goldparser

答案 3 :(得分:0)

如果您对使用GPL代码感到满意,可能需要查看GCC源代码。如果您需要在.Net中执行此操作,您始终可以使用p/invoke来调用GCC库中的代码。