2012-03-22 73 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