2011-09-23 39 views
0

我需要解析一些代碼並將其轉換爲組件,因爲我想對代碼的一些統計信息(如代碼行數,條件語句位置等)進行一些統計。將代碼解析爲組件

有什麼工具可以用來實現嗎?

+1

這有點模糊,國際海事組織。你能解釋一下你要解析的語言嗎?你能告訴你要用什麼語言進行解析?你能否更多地瞭解你想要獲得的「統計數據」?什麼是代碼行(是否以'\ n'或以';'結尾)?什麼是「條件陳述的位置」_? –

+0

如果他只想得到一些粗略的統計數據,那麼讀取/計數行(「條件語句的位置」)和一些醜陋的正則表達式的Perl腳本應該接近。 –

+0

我不確定在問題中什麼不明確? 我有代碼,我需要解析它,將其轉換爲XML結構,然後我可以對它做一些統計,這就是全部! –

回答

1

Antlr是一個很好的工具,可以與多種語言一起工作,具有良好的文檔和包含語言的許多示例語法。

你也可以去老派並使用Yacc和Lex(或者GNU版本的Bison和Flex),它在生成解析器方面有很好的book,以及經典的dragon book

然而,這可能是矯枉過正,你可能只想使用Ruby甚至Javascript

+0

非常感謝,Antlr就是我正在尋找的:) –

0

你提到兩個不同的任務:

  • 重構代碼爲模塊化組件
  • 運行靜態代碼分析,得到代碼度量。

我建議:

  • ReSharper的,作爲頂級代碼重構工具,在那裏(假設你是一個.NET傢伙)
  • NCover和NDepend的靜態代碼分析。你會得到#代碼,圈複雜性,抽​​象與不穩定圖..所有的酷東西。
+0

看着OP的發帖歷史,他不是一個NET傢伙。 –

+0

是的,我明白了。不幸的是,並非每個機構都明確界定了他們問題的參數因此,一些答案肯定會被取消。 –

+0

同意。這就是爲什麼國際海事組織最好在提出澄清問題之前回答一個太過於開放的猜測問題。 –