2016-07-27 7 views
0

コードのパースツリーを作成するの使用は何ですか?これは愚かな音かもしれないが、私はちょうどそれがどのように動作するのかわからない。私は、それが優先順位を取るために算術演算に役立つことができると理解しています。しかし、なぜコードをツリーに変換するのですか?その後、何が起こるのですか?私はパーズツリーを使って何ができるのか分からないようです。私はarithmaticの操作及び条件であれば、単純な処理を行い、非常に小さな通訳を記述しようとしています。私は小さな文法を書いています。私は解析木を持っています。しかし、それをどうするか分からない。解析木を作成する目的は何ですか?

+1

[パースツリーはどのように使用されていますか?](0120-338-333) – rici

+0

RPN計算機の使い方を理解するのが最も簡単です働くRPNは平坦化されたparsetreeのようなものです(少なくとも単純な数式の場合) –

答えて

3

あなたが解析木を持っていて、通訳者をやりたいのであれば、という再帰的に評価されます。

コードのブロックを評価するには、その文、一つ一つのそれぞれを評価します。

ifステートメントを評価するには、条件式を評価し、結果に応じてthenブランチまたはelseブランチ(存在する場合)を評価します。

が加算を評価するには、各オペランドを評価して、それらを一緒に追加します。構文木を持つ

は、操作のこれらの種類は自然であり、それらは通常、現在のノードの子ノードを(の一部)を評価伴い、次いで、おそらく一緒に結果を結合します。

関連する問題