Antlr настаивает на том, что токен отсутствует, хотя, похоже, его нет - PullRequest
0 голосов
/ 03 октября 2018

Просто попробую 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'

Я застрял на том, почему я получаю это сообщение, я продолжаю читать документы о правилах максимального сопоставления лексеров, ноЯ просто не могу определить свою проблему здесь.Любой вклад будет приветствоваться.

1 Ответ

0 голосов
/ 03 октября 2018

Вы пометили правило DASH как skip, поэтому токены DASH не будут отображаться в потоке токенов.Если вы хотите иметь возможность использовать DASH в своей грамматике, вам не следует ее пропускать.

...