2010-09-30 108 views
2

我正在編寫一個編譯器,將編譯特定於項目的DSL(具有基本腳本語言的特性)編譯爲特定於項目的彙編語言。該平臺是用C#編寫的,所以一個本地的.NET編譯器將是完美的解決方案。使用ANTLR和Antlr CSharp目標構建DSL的編譯器

我已經做了很多的研究,似乎ANTLR將適合在建設編譯器的工作,萬一我瞭解以下正確的事情:

我寫的語法文件和「模板「它發出彙編程序。 ANTLR框架(java)從語法文件生成一個編譯器。編譯器本身是純粹的C#(通過使用Antlr 3 CSharp目標),並且可以在編譯爲.NET程序集後,將「我的」DSL編譯爲我們的定製彙編程序。

我明白了嗎?並且在運行時是否確實不需要Java/ANTLR-Java-API(=何時「使用」編譯器)? (我也打開其他解決方案/框架,只要生成的編譯器是一個.NET組件)。

THX :)

回答

2

有關於使用CSHARP目標ANTLR

總結的詳細信息:

所有你需要的是ANTLR產生除了C#的語法/詞法分析器代碼參考ntlr3.Runtime.dll。

該dll是建模在Java版本之後,但不使用或調用任何Java。

+0

我知道關於CSharp目標的信息頁面,但是由於我(還)對ANTLR知之甚少,所以我不願意確保正確理解所有內容。謝謝! – 2010-09-30 12:06:45

+0

我寫了一些關於如何在C#/ .NET上使用ANTLR的文章,http://lextm.com/search/label/ANTLR – 2012-07-11 05:33:36