2012-12-03 37 views
0

我在寫一個ANTLR分析器,它嘗試從給定輸入字符串識別GDB回溯輸出。ANTLR詞法分析器錯誤:在字符' n'處沒有可行的替代方法

我忽略了新的生產線具有以下詞法語法:

RETURN : ('\r' | '\n' | '\r\n') { skip(); }; 

然而,當我運行對一些輸入解析器,ANTLR提供了以下詞法錯誤:

line 20:21 no viable alternative at character '\n' 
line 23:14 no viable alternative at character '\n' 
line 30:21 no viable alternative at character '\n' 
line 33:31 no viable alternative at character '\n' 

我不知道爲什麼會這樣,因爲我已經在詞法分析器中指定了'\ n'。

有人有什麼想法嗎?謝謝。

回答

2

看起來問題出在你的語法的其他地方:它仍然是一個尚未結束的不同元素,並意外地遇到了行結束,而它仍然期望完成當前元素。

+0

謝謝,我認爲這是原因。我有一個詞法分析規則:「FILE_NAME:(ALPHA | NUMBER | UNDERSCORE | SLASH | DOT)+ DOT(ALPHA | NUMBER)+;」,對於「A行」這樣的行,出現錯誤消息。有沒有什麼辦法解決這一問題? –

+1

FILE_NAME應該可能(可能)是解析器規則而不是詞法分析器規則。不過,我是一個新手。 – Martijn

+0

謝謝,我會重寫那些。 –

相關問題