2012-12-12 27 views
1

我使用所谓的定义了一个名为“信息”处理“ n”,噩梦终端..

message : '"'.* '"'; 

定义,代表每一件小事里“”是的消息,终端 它运作良好“lkjaldjfa kajf”普通的东西 但是当我遇到“\ n”时,它变成了一场噩梦 - 这引起了不定式的循环,吃掉了我的记忆。

我不知道为什么..谢谢

+1

嗨!为了回答你的问题,需要查看其他Lexer规则。 – Andremoniy

回答

1

...它变成一场噩梦 - 这导致不定式循环,吃了我的记忆。

很难评论,不能重现它。

然而,解析器规则:

message : '"' .* '"'; 

匹配令牌'"'后跟零个或多个其他令牌令牌'"'结束。

除非你有一个很好的理由,以保持它作为一个解析器规则(我很想听听然后),将其更改为词法规则:

Message : '"' .* '"'; 

其中字符匹配'"'后面跟零个或多个其他个字符字符结尾'"'


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