Тупое, конечно, формальное решение, но решение.
Это не формальное решение, потому что язык дан какой дан, его нельзя сужать.
-- Пт май 04, 2018 17:28:17 --Кстати, кажется, такие задачи бывают особо трудными, когда пытаешься написать в некотором смысле минимальную грамматику (в худшем случае однозначную). Этого, понятное дело, не нужно пытаться — вопрос об однозначности встаёт обычно для более «осмысленных» языков (типа современных языков программирования), и там эта задача нередко бывает тривиальной, чем для произвольного языка (притом есть КС-языки, не допускающие однозначной грамматики, так что иногда это вообще невозможно).