期待ANTLR中的NEWLINE

时间:2012-03-22 08:51:44

标签: java antlr eof

我显示错误:

line 1:5 mismatched input '<EOF>' expecting NEWLINE

我的输入:

print "hi"

我基本上是ANTLR的新手,所以我真的不知道这个错误的含义是什么?我知道我应该有一个文件结束,但是我应该如何放置它?

1 个答案:

答案 0 :(得分:6)

  

我基本上是ANTLR的新手,所以我真的不知道这个错误的含义是什么?

这意味着解析器在文件末尾偶然发现,而它期望换行。要修复它,只需在输入的末尾添加换行符。

这意味着你的语法中有这样的东西:

parse : (statement NEWLINE)+ EOF

NEWLINE之前强制要求EOF。你也可以这样做:

parse : statement (NEWLINE statement)* NEWLINE* EOF

最后将NEWLINE作为可选项,但statement之间必须使用{。}}。