飛行機で隣に座った外人のオッサンがうるさくて寝れなかったのでなんか進んだ。
http://shinh.skr.jp/tmp/shi_null.tar.bz2
- Boost.Spirit && Xbyak
- Linux と MacOSX で JIT して動作は確認 (./shi sample/fizz.shi)
- Linux では ELF バイナリを直接吐く (./shic sample/fizz.shi && ./sample/fizz)
- # と // と /* */ がコメント
- 型は int だけ
- C の関数は型無視して呼ぶ
- 制御構文は while と if と else だけ
- 演算子は四則演算と比較だけ
- スタックの位置が明らかにおかしい
- 実行体から fopen が呼べない (たぶん __libc_start_main 呼んでないからかな)
- 最適化全くしない
elf_os.tab とかあるように FreeBSD とかは動くようにしようかと思ったんだけど、 Linux ほどヌルくは無いみたいだ。
TODO: