Обратите внимание, что для каждого x
и для каждого y
вам необходимо сгенерировать два z
из-за 2 ( a + b ). Также обратите внимание, что каждую строку можно рассматривать как «внутреннюю» часть y
и z
и «внешнюю» часть x
и z
.
Поскольку для каждого y
вам нужны два z
, внутренняя часть может быть описана с помощью (с использованием заглавных букв для обозначения нетерминальных символов и []
для пустой строки):
I --> []
I --> y I z z
Теперь напишите грамматику для внешней части таким же образом, но со ссылкой на I
в базовом случае.