私の bnf 文法をチェックするツールはありますか? 例えば:
<assign>::=<var>=<expr>
<var>::=A|B|C
<expr>::=<expr>+<expr>
|<var>
私のbnf文法によれば、A = B + Cは有効なステートメントですが、A = B * Cはそうではありません。
指定されたステートメントが有効かどうかを確認するツールはありますか?
私のCSクラスでこれを使用したことがありますが、これはあなたが探していること、つまり、与えられた文法でステートメントを検証することをほぼ実行できると思います。