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