Antlr坚持认为一个令牌丢失了,尽管它似乎没有丢失
只是尝试一下Antlr,我遇到了一个我不太理解的错误Antlr坚持认为一个令牌丢失了,尽管它似乎没有丢失,antlr,Antlr,只是尝试一下Antlr,我遇到了一个我不太理解的错误 grammar Input; start : cityLink*; cityLink : CityName DASH CityName (NEWLINE | EOF); CityName : [A-Z] Word?; Word : [a-z]+; DASH : WS '-' WS -> skip; WS : ' '+ ->
grammar Input;
start : cityLink*;
cityLink : CityName DASH CityName (NEWLINE | EOF);
CityName : [A-Z] Word?;
Word : [a-z]+;
DASH : WS '-' WS -> skip;
WS : ' '+ -> skip;
NEWLINE : '\r'? '\n' -> skip;
我在试着分析
Chicago - Naperville
这似乎应该可以工作,输出是正确的,并显示错误消息:
line 1:10 missing DASH at 'Naperville'
我一直在阅读关于最大词法匹配规则的文档,但我似乎无法在这里发现我的问题。欢迎任何输入。您已将
破折号
规则标记为跳过
,因此破折号
令牌不会显示在令牌流中。如果您希望能够在语法中使用破折号,则不应跳过它。您已将破折号
规则标记为跳过
,因此破折号
令牌不会显示在令牌流中。如果你想在语法中使用破折号,你不应该跳过它。就是这样,我想我只是在抑制破折号,因为它是毫无价值的数据。非常感谢你。就是这样,我以为我只是在抑制我的城市链接中的破折号,因为它是一个毫无价值的数据。非常感谢你。