2012-08-31 45 views
2

20多年前,我用yacc/lex和C/C++爲MS-DOS平臺創建了PLC的定製編譯器。現在同一家公司想要一個新版本。目標平臺是Windows,所以我傾向於使用C#。我剛剛花了一天時間用C#來看ANTLR,迄今還沒有能夠創建一個簡單的解析器。我正在使用VS2012,而且我沒有找到來自最新ANTLR下載的.Net 4.0兼容庫。我正在使用Language = CSharp3並沒有找到預建的.NET庫。嘗試從源代碼重建庫會在嘗試使用VS2012構建時出錯。我需要決定在第二天左右ANTLR和C#是否可行。有沒有人在C#中使用ANTLR來生成一個大的編譯器項目?ANTLR可用於C#

的錯誤之一試圖建立antlr3.Runtime的CSHARP版本:

錯誤1次加密失敗而簽署程序集「C:\ ANTLR \運行\ CSharp3的\ Sources \ Antlr3.Runtime \ OBJ \調試\ Antlr3.Runtime.dll' - '讀取密鑰文件'c:\ ANTLR \ runtime \ CSharp3 \ Sources \ Antlr3.Runtime \ Key.snk'時出錯 - 系統找不到指定的文件。 'C:\ ANTLR \ runtime \ CSharp3 \ Sources \ Antlr3.Runtime \ CSC Antlr3.Runtime

回答

2

我相信你必須創建你自己的密鑰文件。

How to: Create a Public/Private Key Pair

使用從Visual Studio命令的SN應用提示

sn –k c:\ANTLR\runtime\CSharp3\Sources\Antlr3.Runtime\Key.snk 
+0

感謝,但那只是眼前的錯誤。我試圖確定ANTLR的C#目標對於大型項目是否足夠穩定。大約一天之後,我發現ANTLR不允許左遞歸,而且我現有的BNF廣泛使用yacc容易處理的左遞歸。所以我選擇了yacc/lex並管理C++ – JonN