2008-09-17 21 views
2

任何人都可以爲我推薦一種有用的編程語言,它可以用來創建一個工具來分析給定的C程序並生成一個txt報告或包含有關信息的html報告給定的程序(函數列表,變量列表等)。 我打算構建的程序與doxygen類似,但我希望它可以供我個人使用。哪種語言對創建有效C程序的報告有用

回答

3

Python和Perl都具有出色的字符串處理能力。

我建議使用類似ctags的東西來解析程序,並創建一個腳本來讀取ctags文件並在txt/html中輸出。

ctags使用的文件格式已定義好,以便其他程序可以讀取它。有關ctags本身及其使用的文件的更多信息,請參閱http://ctags.sourceforge.net

1

研究腳本語言。我會推薦Python或Perl。

4

ctags,也許?

C標籤生成源文件,使這些項目是通過文本編輯器或其他實用程序快速,輕鬆地找到位於語言對象的索引(或標籤)文件。標記表示可用索引條目的語言對象(或者,爲該對象創建的索引條目)。

0

如果它是你想要的編程語言,那麼我會說一些已知的字符串處理能力,這將意味着perl。

然而,由於您需要'知道'語言,因此您需要的任務可能相當複雜,因此您需要遵循編譯器所做的相同步驟,對語言進行詞彙和語法分析(think flex,think yacc ),以便真正「知道」這些字符串的含義。

也許最好的出發點是爲了看一看的doxygen並嘗試重新使用盡可能多的方面所做的工作儘可能工作

2

你打開蠕蟲的大罐,這不是一個有效的利用你的時間,等等等等等等等等

移動到一個答案,如果你談論的是超越平凡的事情分析和你需要的準確性,你將需要解析C源代碼。你可以用任何語言來做到這一點,但你幾乎肯定希望從高級語法中生成解析器。有任何數量的工具。一個現代和特別強大的解析器生成器是ANTLR; C語言有許多ANTLR語法,其中包括易於使用的子集。

0

pycparser是用純Python編寫的ANSI C89/C90的完整解析器。它被廣泛用於分析C源代碼以滿足各種需求。它帶有一些示例代碼,例如列出文件中的所有函數定義等。