У меня есть следующая грамматика ANTLR:
grammar mygrammar;
ASSIGNMENT
: ID '=' INT
;
ID : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')*
;
INT : '0'..'9'+
;
WS : ( ' '
| '\t'
| '\r'
| '\n'
) {$channel=HIDDEN;}
;
На самом деле только правило ASSIGNMENT принадлежит мне, остальные значения по умолчанию добавлены ANTLRWorks 1.4.3.
Когда я прихожу попробовать грамматику в интерпретаторе, строки, такие как "a = 5", успешно выполняются, но строки, такие как "b [space] = [space] 6", терпят неудачу: я получаю исключение MismatchedTokenException из-за пробелов:
![Picture of the interface with a MismatchedTokenException](https://i.stack.imgur.com/cCtmq.png)
Из прочтения веб-сайта ANTLR и правила для текста / грамматики
Ignore rules: WS
и
{$channel=HIDDEN}
кажется, что пробел следует игнорировать, однако это не тот случай.
Что я делаю не так?