Я работаю над программой, которая должна решить, принадлежит ли строка "(пример + другой) * другой" к определенной грамматике.
Start = Expr endline
Expr = Term Expr2
Expr2 = + Term Expr2 | - Term Expr2 | e
Term = Factor Term2
Term2 = * Factor Term2 | / Factor Term2 | e
Factor= id | ( Expr ) | num
Например, я пытаюсь реализовать что-то похожее на грамматику выше в Java. Пока у меня есть заявления о переключении с отговором, но я чувствую, что это не способ сделать это.
Существуют ли более простые способы представления продукции?
Любые советы будут оценены.
Спасибо