質問:
数式文字列が与えられた場合、どのように解析木を構築できますか?式を表すには?
解決策:
1.シャントヤード アルゴリズム:
シャンティング ヤード アルゴリズムは、中置式を後置 (逆ポーランド記法) に変換してから解析ツリーを構築する 2 パスのアプローチです。
後置への挿入:
解析ツリーへの接尾辞:
2.形式文法:
または、数式の形式文法を定義し、解析ツールを使用してパーサーを生成することもできます。数式の一般的な解析式文法 (PEG) は次のようになります。
Expr: Term '+' Expr | Term '-' Expr | Term; Term: Factor '*' Term | Factor '/' Term | Factor; Factor: Number | '(' Expr ')';
次のようないくつかの C/C ライブラリは PEG 解析をサポートしています。
以上が記事の内容に適した質問ベースのタイトルをいくつか示します。 シンプルかつ直接的: * C で数式を解析する方法 : シャントヤード アルゴリズムと形式文法 * 解析マットの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。