我正在開發一個逆向工程學校項目,該項目需要翻譯編譯C#項目的操作AST。 我在「將C#代碼翻譯成AST?」中看到過這篇文章。在這個網站上,但它看起來不像我正在尋找的那個。根據我所知道的,目前C#沒有提供像Java一樣的庫類:http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.cdt.doc.isv/reference/api/org/eclipse/cdt/core/dom/ast/ASTVisitor.html 如果C#中有這樣的庫類,這裏的所有東西都解決了。如何操作C#AST?
我已經諮詢過某人,這裏有可能的解決方案。 但我在解決方案上也遇到了問題。 1)找到另一個編譯器,該編譯器提供了一個允許其AST被暴露以進行操作的庫。但是我找不到這樣的編譯器。 2)使用ANTLR解析器生成器與我自己的編譯器一起出來,這樣做(tt將是一個更加困難和更長的過程)。該下載爲不同的語言提供了示例語法,但不提供C#(它具有用C#編寫的各種語言的語法,但不生成C#語法)。因此問題是我無法找到C#語法。
什麼是最短和最快的方法來解決這個問題?如果我真的願意採取上述的一種選擇,我該如何解決我面臨的這些問題。
非常感謝你,如果你能幫我解決我的問題!
我對你是否想用C#操縱C#的AST,或者只是操縱使用任何工具,在所有的AST不清楚。我對你在ANTLR的評論感到困惑:我認爲ANTLR可以處理C#3.0語法來解析和構建C#樹。 – 2009-08-21 01:27:27