私は、変数を使用して式のパーサーを作成し、それらを二次式の形式に単純化しようとしています。
これは私のパーサー文法です:
Exercise : Expr '=' Expr
Expr : Term [+-] Expr | Term
Term : Factor [*/] Term | Factor
Factor: Atom [^] Factor | Atom
Atom: Number | Identified | [- sqrt] Atom | '(' Expr ')'
解析には、再帰降下パーサーを使用しています。これを解析したいとしましょう:
「2 - 1 + 1 = 0」
結果が 0 の場合、パーサーは間違ったツリーを作成します:
-
/ \
2 +
/ \
1 1
この文法を左結合にするにはどうすればよいですか? 私はこれが初心者です。より多くの情報を見つけることができるソースを教えてください。再帰降下パーサーでこれを達成できますか?