2012-03-22 56 views
1

我遇到一个错误显示:期待NEWLINE在ANTLR

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

我输入:

print "hi" 

我基本上新ANTLR,所以我真的没有任何想法这个错误是关于什么的?我知道我应该有一个文件结束,但我应该如何放置它?

回答

6

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

这意味着解析器在文件末尾发st,而期望换行。要修复它,只需在输入结尾放置换行符。

这意味着你必须在你的语法是这样的:

parse : (statement NEWLINE)+ EOF 

使得NEWLINE强制性只是EOF之前。你也可以做这样的事情:

parse : statement (NEWLINE statement)* NEWLINE* EOF 

使NEWLINE可选的结束,但statement S之间强制性的。

+0

它会影响我的声明的输出吗? – marchemike 2012-03-22 09:03:00

+0

对不起,我不确定你的意思。你或者需要在你的输入字符串中放置一个换行符(因为在你的语法中它是这样定义的),或者改变语法本身。 – 2012-03-22 09:04:24