2016-04-15 28 views
1

我有其中我寫的詞法標記爲一要求:是否有可能得到一個默認的令牌,它不會覆蓋ANTLR3中已經存在的令牌?

IF_LEXER_TOKEN: 'IF' (.)* 'END_IF' 
ANY :(options {greedy=true;}: .)* ; 

但如果輸入給定爲:

IF a>b then a=b END_IF 
IF c>d then c=d 

在這種情況下,預期的行爲是它應該使用令牌第一行爲IF_LEXER_TOKEN,第二行爲ANY標記,但相反,它考慮了兩行的ANY標記。請幫助。注意:由於一些限制,我無法爲上述場景創建解析器規則。

+0

FYI,'( 'E')( 'N')( 'd')( '_')( 'I')( 'F')'和''END_IF''是等價的。 –

+0

是的我知道,但問題是在上面的輸入 – shruti

+0

調用的令牌這就是爲什麼我添加了評論,而不是答案。如果你知道它們是相同的,爲什麼把它寫成'('E')('N')('D')('_')('I')('F')'?這樣寫就與你的實際問題無關。 –

回答

相關問題