В чем разница между определением токена в блоке маркеров и определением токена в качестве индекса лексера?Разница между определением токена и токенами лексера
1
A
ответ
3
лексер маркеры являются маркерами, которые ANTLR генерирует через разбор определенной комбинации символов, например:
fragment
F_W : (' '|'\t'|'\r'|'\n'|'\f')*
;
Однако маркеры в маркере блока являются визуальными маркерами, которые пользователи создают для преимуществ синтаксический анализ; они не имеют прямых отображений для набора символов. Например,
tokens { BLOCK; }
дает визуальный маркер блока, который вы можете поместить впереди или на верхней части запрещающее, чтобы отметить subsequest сессии, правила блока, как это:
block:
'{' expression* '}' ->
BLOCK^ expression*
;