Строка A(B|(BC+))*C
обычно является регулярным выражением. В вашем случае:
| means OR
+ means one or more occurrence of previous symbol
* means zero or more occurrence of previous symbol
Базовое преобразование:
AB --> {q0, A, q1}, {q1, B, q2}
A|B --> {q0, A, q1}, {q0, B, q1}
A+ --> {q0, A, q1}, {q1, A, q1}
A* --> {q0, A, q0}
{q0, s, q1}
означает переход из состояния q0
в q1
путем чтения символа s
Вы можете сначала попробовать это сами для своего случая. Если вы обнаружите затруднения, дайте комментарий.