最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【记录】Antlr中的异常处理学习笔记

ANTLR crifan 2489浏览 0评论

【背景

之前已经折腾了一些,关于antlr的异常处理:

【记录】尝试折腾antlr v3的异常处理和错误恢复:VARIABLE的CLASS的值INPUT故意写错为INPUT1

【记录】折腾antlr的异常处理:使得当初错时,输出更详细的错误信息,包含堆栈信息

【整理】antlr的Exception Handling异常处理中的异常Exception的类型

现在,继续去学习:

The Definitive ANTLR Reference.pdf

中的相关内容,并整理如下:

1.antlr中产生出错详细信息,不是用英文写死的,而是从所相关的内部的对象,去生成的。

其意味着:

(1)BaseRecognizer中的报告错误的函数,生成的错误信息,都是本地化(localized)之后的;

(2)你可以去覆写相关的函数,加上你自己,想要的,当某异常时报告某种错误信息;

2.不要指望

getMessage( )

可以返回你需要的所有的(出错信息)

3.当然,是可以在语法grammar文件中,加上对应的action code,收集相关的信息,去提供给出错的时候,显示出来。

这点,之前已经参考教程,照葫芦画瓢的实现了:

【记录】折腾antlr的异常处理:使得当初错时,输出更详细的错误信息,包含堆栈信息

4.此处,去试试那个paraphrase:

【记录】尝试antlr的paraphrase去提供对于用户更好友好的错误信息

5.

转载请注明:在路上 » 【记录】Antlr中的异常处理学习笔记

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
82 queries in 0.180 seconds, using 22.06MB memory