Формальные грамматики: Как я могу применить рекурсию, чтобы использовать эти терминальные символы в качестве скобок

Привет у меня есть следующий набор нетерминалов: {A,B,C,X} и терминалов: {$,i,m,u}

Правила производства, которые я сделал до сих пор:

  1. Х-> A $
  2. A-> AB
  3. А-> Б
  4. B-> я C u
  5. C-> m A
  6. C-> m C

В этом примере "i, u" должны выступать в качестве скобок, и поэтому должен быть одинаковый баланс с каждой стороны и по крайней мере один m между ними.

I.e. Correct string : imu; iiimuuu; iimmmuiimuuimuu
                      ( )  ((( )))  ((   )(( ))( ))

Что мне нужно добавить в правила производства, чтобы иметь возможность производить желаемые деривации? Спасибо.

0 ответов

Другие вопросы по тегам