运行时Antlr 4.5解析器错误

运行时Antlr 4.5解析器错误,第1张

运行时Antlr 4.5解析器错误

错误消息表示包含值“ void”的预期令牌类型与通过使用输入中的字符串
void”产生的实际令牌类型不匹配。查看您的词法分析器规则,表明IDENTIFIER规则正在使用输入字符串’void’,从而生成IDENTIFIER类型的令牌,而不是VOID。

通常,与最长输入字符串匹配的词法分析器规则会获胜。对于两个(或更多)具有相同比赛时间的规则,第一个列出的获胜。将所有关键字规则移到IDENTIFIER规则上方。

有用的单元测试表单将转储lex标记,并显示匹配的实际标记类型。就像是:

CommonTokenStream tokens = ...tokens.fill();StringBuilder sb = new StringBuilder();for (Token token : tokens.getTokens()) {    sb.append(((YourCustomTokenType) token).toString());}System.out.print(sb.toString());

Token.toString()方法通常足够好。覆盖您的令牌子类以适合您自己的需求。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5478412.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存