質問

次の文法を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>?

正しい解決策はありません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top