2009-06-15 102 views
4

有誰知道一個好的.NET庫,它允許我解析源代碼文件,但不僅僅是.NET源代碼文件(如java,perl,ruby等)?我需要編程訪問各種源代碼文件(例如類/方法/參數名稱,類型等)的內容。.Net庫解析源代碼文件?

有沒有人遇到過這樣的事情?我知道.NET內部是合理可能的,並且有一些庫,但我需要將它抽象爲更多類型的編程語言。

回答

3

有幾個選項:

  1. 你可以選擇一個解析框架,有很多現有的語法(如Antlr或較新的類似Irony)並使用它。這將提供最忠實的。
  2. 如果您只能使用.NET語言,則可以使用Common Compiler Infrastructure tools從編譯文件中讀取數據。
  3. 你可以做一個啓發式的方法,如SyntaxHighlighter組件使用。
  4. 您可以搭載提供可插入語法高亮文件(如VIM)的現有工具。你必須創建或找到一個理解這些文件的解析器。
+0

反諷看起來更舒服。 。要去做更深入的評估..謝謝傑夫! – 2009-06-20 16:25:30

0

Antlr滿足您的需求?

+0

好的Antlr看起來不錯,但像一個全新的世界去探索/學習和習慣。我或多或少地尋找爲特定語言量身定做的「成品」產品(例如http://www.metaspec.net for c#,但也適用於其他語言)...... – 2009-06-16 13:48:32

0

需要解析的源代碼,建立相應的編譯器的數據結構(樹等)的工具,讓您導航/操縱這些結構,並重新生成有效的源代碼(包括註釋!)是DMS Software Reengineering Toolkit

它有一個完整的C#4.0前端。

它不提供從C#訪問這些結構的權限;相反,它爲程序分析和轉換提供了自己的編碼環境,並且相對比較容易地完成此操作(並且比純C#中的操作更容易)。