我正在使用带有c#目标的Antlr4。下面是我的语法的一个子集:
/*
* Parser Rules
*/
text : term+ EOF;
term : a1 a2 a3;
a1: ....
...
...我想接受有效数据块作为(术语)s,当存在错误时,我想搜索下一个有效术语,并打印出导致错误的整个文本,供用户手动分析。
如何将输入同步到下一个有效项?如何获取被忽略的文本?
发布于 2013-09-01 07:18:46
您需要为此创建自己的IAntlrErrorStrategy实现,然后将Parser.ErrorHandler属性设置为您的错误策略的一个实例。ANTLRErrorStrategy接口的Java版本和缺省实现DefaultErrorStrategy的文档可能会为实现错误策略提供有用的信息,但我必须警告您,创建自定义错误策略是一个高级功能,文档有限。预计实现者已经是ANTLR 4实现自适应LL(*)解析算法的专家(我们说的是研究人员级别的理解)。
https://stackoverflow.com/questions/18550031
复制相似问题