a24z_struct

なんとなく a24z (http://d.hatena.ne.jp/w_o/20060202#p1) に struct をつけてみた。というかそんなことしてる暇はほげほげ。 VM とかそのへんのコードを見てみたかったんだけどパーザとコード生成ばっか見てた気がするというか op*_ARRAY で実装できてしまって新しいオプコード増やしたりしなかったというかそんな。まぁでもとても勉強になりました。

こんな感じのがたぶんできるっぽいらしい。

struct S:
    hoge: int
    hage: int
    hige: int

field s: S
field ret: int

def start() -> int :
     s.hoge = s.hoge * 2
     ret = s.hoge + s.hage + s.hige
     return ret

構造体が欲しいかなと思った理由はたしか getHogehoge を定義していくのが面倒な気がするからだった気がしますけど、フィールドのオフセット指定とかサイズが4以外のフィールド定義とかができないとたぶん実用にはならん気がします。

それ以前に素人がちょっと遊びでいじってみただけなのでわかってないで書いた部分もあるしたぶんどっかきっとおかしいしそんなこんな。とりあえず作ったものは適当にかためて置いておきました。

http://shinh.skr.jp/dat_dir/a24z-0.91_struct.tgz

なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h