2012-12-12 33 views
1

我使用所謂的定義了一個名爲「信息」處理「 n」,噩夢終端..

message : '"'.* '"'; 

定義,代表每一件小事裏「」是的消息,終端 它運作良好「lkjaldjfa kajf」普通的東西 但是當我遇到「\ n」時,它變成了一場噩夢 - 這引起了不定式的循環,吃掉了我的記憶。

我不知道爲什麼..謝謝

+1

嗨!爲了回答你的問題,需要查看其他Lexer規則。 – Andremoniy

回答

1

...它變成一場噩夢 - 這導致不定式循環,吃了我的記憶。

很難評論,不能重現它。

然而,解析器規則:

message : '"' .* '"'; 

匹配令牌'"'後跟零個或多個其他令牌令牌'"'結束。

除非你有一個很好的理由,以保持它作爲一個解析器規則(我很想聽聽然後),將其更改爲詞法規則:

Message : '"' .* '"'; 

其中字符匹配'"'後面跟零個或多個其他個字符字符結尾'"'


另見:Practical difference between parser rules and lexer rules in ANTLR?