PythonでBNF(Backus-Naur Form)文法に関連している疑いのある疑問がいくつかあることは知っていますが、PythonでBackus-Naur Formを実装する方法
私はコードを書くために必要な複数のBNFを持っています。コードは、BNF文法を使用して正当な文字列を生成して認識できる必要があります。
私が扱っている最初のBNFは、Pythonのすべての実数です。
<real number> ::= <sign><natural number> |
<sign><natural number>'.'<digit sequence> |
<sign>'.'<digit><digit sequence> |
<sign><real number>'e'<natural number>
<sign> ::= ‘’ | ‘+’ | ‘-‘
<natural number> ::= ‘0’ | <nonzero digit><digit sequence>
<nonzero digit> ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<digit sequence> ::= ‘’ | <digit><digit sequence>
<digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
私がPythonで見つけたBNFパーサーは、非常に複雑で、ライブラリの外で使用しています。 PythonでBNF文法を使ってチェックして生成する簡単な方法はありますか?
BNF ==バッカス正規形からパーサを生成するgrakoでEBNFパーサーにBNFを、書くことは簡単で合理的であると思いますか?毎日文法パーサーで遊んでいない私たちのために。 – Ben
@Benはい、あなたは正しいです。申し訳ありませんが、投稿を編集します。 – Jakemmarsh
BNFファイルを解析して文法/レクサーや、BNFに相当するものを記述するPythonで作成できるものを探していますか? –