1) Атрибут more
накапливает сопоставленный текст в первый токен, выданный не приписанным правилом more
.
Для:
STRING: '"' -> more, pushMode(STRING_MODE);
mode STRING_MODE;
STRING_CONTENTS: ~('"'|'\n'|'\r')+ -> more ;
END_STRING: '"' -> type(STRING), popMode;
текст, соответствующий правилам STRING
и STRING_CONTENTS
, добавляется к правилу END_STRING
, в результате чего получается токен типа STRING
, содержащийполный текст строки.
2) «Конец» оператора mode подразумевается при первом последующем обращении
- правила синтаксического анализатора
- другогооператор режима
- правило фрагмента
- EOF