■
というのはどうでもよくて、
pushQCodeDstVal :: A24ZParser a -> A24ZParser ([QCode],a)
pushQCodeDstVal parser = do { save <- getQCodeDst -- 出力先を保存しといて
; setQCodeDst [] -- 出力先を空に
; v<-parser -- 実行
; ret <- getQCodeDst -- 出力したのを取得
; setQCodeDst save -- 保存しといたのを戻す
; return (ret,v) }こういうコードを書いてしまうあたり、僕の脳はもはや副作用にやられすぎだと思った。
ノイマン脳の恐怖
- 全部のデータが32bit整数に見える
と、いうわけで、三番地文は生成できたので、CFG(Control Flow Graph)作ろー。作りかたは今から調べます。いや、その前にfoldConstか?
あー、僕も素人だから、ここらへん、適当なことが書けるよなー、というのもあったりするんですが、そういうときは、Web2.0的文脈で、「素人が参加できるのは素晴らしい」とかいうことにできるんではないですかね、多分。