我们有以下 Antlr 语法的子部分:
signed_int
: SIGN? INT
;
INT : '0'..'9'+
;
当有人输入一个数值时,一切都很好,但如果他们错误地输入了 1O(一个和大写 o)之类的东西,我们会收到一条神秘的错误消息,例如:
error 1 : Missing token at offset 14
near [Index: 0 (Start: 0-Stop: 0) ='<missing COLON>' type<24> Line: 26 LinePos:14]
: syntax error...
处理此类错误的好方法是什么?我想定义包罗万象的 SYMBOL 令牌类型,但这会导致太多的解析器构建错误。我将继续研究 Antlr 错误处理,但我想我会在这里发布这个以寻找一些见解。