3
下面是一個簡單的詞法語法:ANTLR詞法分析器 - 可以選擇較短的匹配嗎?
lexer grammar TextLexer;
@members
{
protected const int EOF = Eof;
protected const int HIDDEN = Hidden;
}
COMMENT: 'comment' .*? 'end' -> channel(HIDDEN);
WORD: [a-z]+ ;
WS
: ' ' -> channel(HIDDEN)
;
在大多數情況下,它的表現不如預期,抓出來的話流,而忽略任何通過評論界。 。 。結束。但不總是。例如,如果輸入如下:
quick brown fox commentandending
它會看到單詞「commentandending」比評價「commentandend」更長的時間。所以它出現了一個令牌「評論和指示」而不是一個令牌「ing」。
有沒有辦法改變這種行爲?