2011-08-24 19 views

回答

6

在詞法規則的末尾使用.*.+是違法的ANTLR:

ID : .*;  // illegal 
ID : 'bar' .*; // illegal 
ID : .* 'bar'; // legal 

在語法規則,這種情況並非如此。

+0

謝謝! 這似乎也適用於「。+」。 ANTLR中有這個限制嗎?如果是這樣,ANTLR文件中提到了哪些地方?或者,這只是一個普通的詞法分析練習? 這同樣似乎不適用於解析器規則? – user869081

+1

@ user869081,true'。+'也是非法的,在解析器規則中可以使用'。*'和'。+'_can_(編輯我的答案以包含此內容)。無論這是ANTLR特有的(與其他解析器生成器相反),還是一般的詞法分析器特定的事情,我都不知道。 AFAIK,它在帕爾的「定義ANTLR參考」中提到過(我稍後會看看是否可以找到該頁面)。 –

+0

再次感謝!我也在通讀這本書。但我看不出Parr在說什麼?順便說一句,取代「。」與「('\ u0001'..'\ uffff')」不會導致任何錯誤。 -Xdbgconversion標誌似乎給出了一些信息,但我不確定它的含義。 – user869081