1

我使用所谓的定义

message : '"'.* '"';

代表“”中的每一个小东西都是消息,终端它与“lkjaldjfa kajf”很常见,但是当我遇到“\n”时,它变成了一场噩梦——这导致了不定式循环,吞噬了我的记忆。

我不知道为什么..谢谢

4

1 回答 1

1

...它变成了一场噩梦——导致不定式循环,吞噬我的记忆。

很难在无法复制的情况下对此发表评论。

但是,解析器规则:

message : '"' .* '"';

匹配token '"'后跟零个或多个以token结尾的其他标记 '"'

除非您有充分的理由将其保留为解析器规则(那时我想听听),否则将其更改为词法分析器规则:

Message : '"' .* '"';

匹配该字符 '"'后跟零个或多个以该字符结尾的其他字符 '"'


另请参阅:ANTLR 中解析器规则和词法分析器规则之间的实际区别?

于 2012-12-13T07:34:41.190 回答