私はインターネットを検索して答えを見つけましたが、できませんでした。私を助ける人はいますか?BNFのような文法からJavaまたはC++へ
expr ->term moreterms
moreterms -> +term {print(‘+’)} moreterms
|‐term {print(‘‐’)} moreterms
|ε
term ->factor morefactors
morefactors ->*factor {print(‘*’)} morefactors
|/factor {print(‘/’)} morefactors
|ε
factor ->(expr)
|id {print(id)}
|num {print(num)}
このコードは、非常に基本的な電卓コンパイラとインタプリタに使用します。
この文法をC++またはJavaに変換するにはどうすればよいですか?
驚くべき答え、ありがとう。 –
コンパイラ/パーサーの作成に関する本については、事実上の標準は[Dragon book](https://en.wikipedia.org/wiki/Compilers:Principles,Techniques,__Tools)です。「コンパイラ、原則、テクニック、ツール」(OPがそれを知らない場合には言及する価値があると思う) – UnholySheep