我工作的非程序員領域特定語言(DSL)。非程序員犯了很多語法錯誤:他們拼錯了關鍵字,他們不關閉括號,他們不終止塊等。提高ANTLR DSL解析錯誤消息
我正在使用ANTLR來生成我的解析器;它爲處理RecognitionExceptions提供了一個漂亮的機制來改進錯誤處理。但是我發現爲我的DSL開發出色的錯誤處理代碼非常困難。
在這一點上,我正在考慮簡化語言的方法,使我更容易爲用戶提供高質量的錯誤消息,但我不確定如何去解決這個問題。我覺得我要減少錯誤的模糊性莫名其妙,但我不知道如何實現在語法這一想法。
有什麼辦法,我可以簡化我的語言,提高解析錯誤消息爲我的用戶?
編輯:更新以澄清我對簡化語言的方法感興趣,而不僅僅是ANTLR錯誤處理提示。 (雖然,感謝那些!)
你能給我們提供一些關於語法的更多信息嗎?你的DSL有什麼好處,它有什麼功能? – 2010-02-24 15:52:02
http://www.choiceofgames.com/blog/choicescript-intro/我會馬上指出,它不是沒有上下文無關的... – 2010-02-25 00:49:53
如果您的用戶犯了常見錯誤,您可以擁有語法令牌規則匹配常見錯誤,然後使這些規則輸出錯誤消息。 – 2010-02-25 11:18:44