换行数不足或太多时出现ANTLR错误

换行数不足或太多时出现ANTLR错误,antlr,Antlr,当输入文件在EOF处没有换行符或有多个换行符时,ANTLR会给出以下错误 第0行:-1个不匹配的输入“”,需要换行 如何考虑在输入文件末尾有多个或没有换行符的可能性。最好我能在语法中解释一下 规则: parse : (Token LineBreak)+ EOF ; 仅解析由一个换行符分隔的令牌流,以一个换行符结束 而规则: parse : Token (LineBreak+ Token)* LineBreak* EOF ; 解析由一个或多个换行符分隔的令牌流,以零、一个或

当输入文件在EOF处没有换行符或有多个换行符时,ANTLR会给出以下错误

第0行:-1个不匹配的输入“”,需要换行

如何考虑在输入文件末尾有多个或没有换行符的可能性。最好我能在语法中解释一下

规则:

parse
  :  (Token LineBreak)+ EOF
  ;
仅解析由一个换行符分隔的令牌流,以一个换行符结束

而规则:

parse
  :  Token (LineBreak+ Token)* LineBreak* EOF
  ;
解析由一个或多个换行符分隔的令牌流,以零、一个或多个换行符结尾

但是,您真的需要使换行符在解析器中可见吗?你不能把它们放在“隐藏频道”上吗

如果这不能回答你的问题,你就必须发布你的语法(你可以编辑你原来的问题)