次の文法を EBNF に変換する必要があります。
<assign> -> <id> = <expr>
<id> -> A|B|C
<expr> -> <expr> + <expr>
|<expr> * <expr>
|<expr> * <expr>
|( <expr> )
|<id>
私が現在行った進捗状況は以下のとおりです。
<assign> -> <id> = <expr>
<id> = (A | B | C)
<expr> -> <id> {(+ | * ) <expr>} | ‘(‘ <expr> ‘)’
EBNF を使用している場合、すべての再帰を排除するのが最善ですか? <id>
のみを使用してそれを達成する方法さえあり<expr>
ますか?