我工作的非程序员领域特定语言(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