哪种语言对于为有效的C程序创建报告很有用
谁能给我建议一种有用的编程语言,该语言可用于创建一个工具,该工具将分析给定的C程序并生成包含有关给定程序信息(功能列表,变量列表等)的txt报告或者html报告。
我打算构建的程序类似于doxygen,但我想将其用于个人用途。
解决方案
回答
查看脚本语言。我建议使用Python或者Perl。
回答
也许?
Ctags generates an index (or tag) file of language objects found in source files that allows these items to be quickly and easily located by a text editor or other utility. A tag signifies a language object for which an index entry is available (or, alternatively, the index entry created for that object).
回答
如果我们要使用的是编程语言,那么我想说一句以字符串处理能力而著称的东西,那就意味着perl。
但是,由于我们需要"了解"语言,因此我们所需的任务可能会相当复杂,因此我们将需要遵循编译器执行的相同步骤,对语言进行词法和语法分析(想想灵活,认为yacc),以便真正地"知道"这些字符串的含义。
也许最好的出发点是看一下doxygen并尝试重用尽可能多的工作
回答
Haskell有一个相对较新的language-c项目http://www.sivity.net/projects/language.c,它可以分析C代码。
如果我们熟悉Haskell,那么可能值得一看。即使我们不是,尝试一下也可能很有趣。
回答
我们正在打开一大罐蠕虫,这不是对时间的有效利用,等等等等。
继续回答问题,如果我们正在谈论除琐碎分析之外的任何事情并且需要准确性,则需要解析C源代码。我们可以使用任何语言来执行此操作,但是几乎可以肯定,我们希望从高级语法生成解析器。有许多用于此的工具。 ANTLR是一种现代且功能特别强大的解析器生成器。 C有许多ANTLR语法,包括易于使用的子集。
回答
Lex / yacc适用于构建解析器。
回答
Python和Perl都具有出色的字符串处理功能。
我建议使用诸如ctags之类的东西来解析程序,并只创建一个脚本来读取ctags文件并以txt / html格式输出。
ctags使用的文件格式定义明确,以便其他程序可以读取它。有关ctags本身及其使用的文件的更多信息,请参见http://ctags.sourceforge.net。
回答
pycparser是使用纯Python编写的ANSI C89 / C90的完整解析器。它被广泛用于分析C源代码以满足各种需求。它带有一些示例代码,例如列出文件中的所有函数定义等。