我使用了一个名为
的定义message : '"'.* '"';
表示“”里面的每一个小东西的是消息,终端 它适用于“lkjaldjfa kajf”一些常见的东西 但当我遇到“\ n”时,它变成了一场噩梦 - 这会导致不确定的循环,让我的记忆消耗殆尽。
我不知道为什么..谢谢
答案 0 :(得分:1)
......它变成了一场噩梦 - 导致不确定的循环,吞噬了我的记忆。
很难对其进行评论而无法重现它。
然而,解析器规则:
message : '"' .* '"';
匹配令牌 '"'
,后跟零个或多个其他令牌,以令牌 '"'
结尾。< / p>
除非您有充分的理由将其保留为解析器规则(我当时希望听到),否则请将其更改为 lexer 规则:
Message : '"' .* '"';
匹配字符 '"'
,后跟零个或多个其他字符,以字符 '"'
结尾。
另见:Practical difference between parser rules and lexer rules in ANTLR?