我正在编写一个ANTLR解析器,它试图识别来自给定输入字符串的GDB回溯输出。
我忽略了使用以下词法分析器语法的新行:
RETURN : ('\r' | '\n' | '\r\n') { skip(); };
但是,当我针对某些输入运行解析器时,ANTLR会出现以下词法分析器错误:
line 20:21 no viable alternative at character '\n'
line 23:14 no viable alternative at character '\n'
line 30:21 no viable alternative at character '\n'
line 33:31 no viable alternative at character '\n'
我不确定为什么会发生这种情况,因为我已经在词法分析器中指定了'\ n'。
有人有什么想法吗?感谢。
答案 0 :(得分:2)
看起来这个问题在你的语法的其他地方:它仍然是一个尚未结束的不同元素,并且在它仍然期望完成当前元素时意外地遇到了行尾。