- 618 名前:デフォルトの名無しさん mailto:sage [2005/12/01(木) 07:51:33 ]
- >>612
素直に再帰下降で書かれているから、仕掛けが判れば改造も難しくないと思う 1、常に1句 sym {numVar/str} を先読みする GetSym が1句の読み出し 考え方としては、 「その句が自分の担当でなければ知らん顔をして何もせずに帰る」 という手続きを順に呼び出す事で処理させてゆく 2、計算以外の句は、1句毎に処理させてゆく 計算部は再帰下降を使う 3、四則演算は、 左数字 演算子 右数字 という格好をしているので 演算子を確認したら、 左数字を保存し、 右の式を再帰を使って計算させてから、帰って来た結果と演算させる という方式で計算する。この時、演算子の優先順位を付ける方法として 優先順位毎に関数を作り、 各処理関数で、自分より一つ高い優先順位の処理を先に実行させる という簡単な方法で対応させる 一番高い優先順位は括弧 一番低いのは加減算
|

|