当我的输入文件在EOF中没有换行符或多个换行符时,ANTLR会出现以下错误。
line 0:-1 mismatched input '' expecting NEWLINE
我如何考虑输入文件末尾有多个或没有换行符的可能性。我希望在语法中考虑到这一点。
答案 0 :(得分:1)
规则:
parse
: (Token LineBreak)+ EOF
;
仅解析一个标记流,仅由一个换行符分隔,以一个换行符结束。
虽然规则:
parse
: Token (LineBreak+ Token)* LineBreak* EOF
;
解析由一个或多个换行符分隔的标记流,以零,一个或多个换行符结束。
但是你真的需要在解析器中看到换行符吗?难道你不能把它们放在“隐藏通道”上吗?
如果这不能回答你的问题,你必须发表你的语法(你可以编辑原来的问题)。
HTH