Antlr 坚持认为丢失了一个令牌,尽管它似乎没有丢失
Antlr insists a token is missing although it appears to not be missing
只是尝试了一下 Antlr,我 运行 遇到了一个我不太明白的错误
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'
我很不明白为什么我会收到这条消息,我一直在阅读有关最大词法分析器匹配规则的文档,但我似乎无法在这里发现我的问题。欢迎任何意见。
您已使用 skip
标记 DASH
规则,因此 DASH
令牌不会出现在令牌流中。如果你想在你的语法中使用 DASH
,你不应该跳过它。
只是尝试了一下 Antlr,我 运行 遇到了一个我不太明白的错误
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'
我很不明白为什么我会收到这条消息,我一直在阅读有关最大词法分析器匹配规则的文档,但我似乎无法在这里发现我的问题。欢迎任何意见。
您已使用 skip
标记 DASH
规则,因此 DASH
令牌不会出现在令牌流中。如果你想在你的语法中使用 DASH
,你不应该跳过它。