バッカス・ナウア記法の例を示すために小さな通訳を書いています。いくつかのデータを表すために助けを求めたいと思います。
<statement> : <assignment> | HALT | PRINT(<variable>)
<assignment> : <variable> = <expression>
<expression> : <term> | <term><operator><expression>
<term> : <number> | <variable>
<variable> : x | y | z
<operator> : + | -
<number> : 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
ご覧のとおり、すべてがステートメントにカプセル化されています。その後、割り当てと表現があります。式は、数値と変数をカプセル化する用語をカプセル化します。割り当ては、変数と式をカプセル化します。私の質問は、これらすべてを表すためにどのデータ構造を使用するかです。私はそれがセットであるべきだと思っています、しかしそれから私はネストされたセットを持っているべきかという疑問を提起しますか?