我以前使用AntlrWorks 1.4爲C#目標生成解析器和詞法分析器。現在我開始一個新項目,並嘗試使用antlrworks1.5。但是生成的詞法分析器在C#代碼中有很多轉義序列錯誤。我試過1.4版本,它工作正常。目標無法識別的轉義序列錯誤
基本上,錯誤是在1.5生成的代碼中,它在1.4生成的代碼中有「\ 1 \ 2 \ 3」這樣的無效轉義,而它們是「\ x01 \ x02 \ x03」。
有沒有辦法在1.5版本上解決這個問題?或者我必須堅持1.4版本。
我以前使用AntlrWorks 1.4爲C#目標生成解析器和詞法分析器。現在我開始一個新項目,並嘗試使用antlrworks1.5。但是生成的詞法分析器在C#代碼中有很多轉義序列錯誤。我試過1.4版本,它工作正常。目標無法識別的轉義序列錯誤
基本上,錯誤是在1.5生成的代碼中,它在1.4生成的代碼中有「\ 1 \ 2 \ 3」這樣的無效轉義,而它們是「\ x01 \ x02 \ x03」。
有沒有辦法在1.5版本上解決這個問題?或者我必須堅持1.4版本。
ANTLR 3的C#端口未經測試可與ANTLRWorks協同工作或者使用Java版本的工具進行代碼生成。只有使用MSBuild集成和/或Antlr3.exe才能生成代碼。任何暗示ANTLRWorks和/或ANTLR工具的Java版本可用於爲CSharp3或CSharp2目標生成代碼的行爲僅僅是巧合。
您也可以下載C#端口以及文檔在以下網站自動配置C#項目,建立你的語法:
http://www.antlr.org/wiki/display/ANTLR3/Antlr3CSharpReleases
我希望可以有一個常見問題解答,包括上面的ANTLR C#端口信息,因爲我的項目很大程度上依賴於它。但事實證明,我將不得不在自己的博客上保留一份清單。 –
@LexLi我同意這會很好,但考慮到我在ANTLR上的所有工作和C#目標是志願者時間,在這一點上確實是一個金錢限制。我希望V4的文檔比現在的V3文檔要好。 –
你可能會觸發一個錯誤報告(問題)https://開頭的github .com/antlr/antlrworks,但爲什麼您需要在AntlrWorks中生成詞法分析器和分析器,而不是使用命令行工具? –
@LexLi一般來說,在該位置提交錯誤是最好的選擇。這個*特殊*問題將被關閉爲「wontfix」(請參閱下面的答案以獲取詳細信息)。 –