TinyCのインタプリタを作りかけた
概要
TinyCというCのサブセットのインタプリタを作ったので公開します。
とっても未完成で、しかもたくさんバグがあるのであまり意味はないんだけど、
lexとyaccをC++で使ったので、参考になればいいなあと思います。
講義の課題として提出したものです。どんな評価を受けたのかは知りません。
講義ではTinyCの話ばかりしていたのに、試験ではS式をParseする話が出てくるという面白い授業でした。
こんな授業なんか取ってないで、もっと真面目にやるべき授業が色々あるんだけどね。だがそれがいい。
このインタプリタの特徴
よくも悪くも特徴がいっぱいあります。Cではエラーになるような表現を普通に実行してしまうので、TinyCとしては不完全なのかもしれません。
変数の定義
プログラムは全て実行時に評価されるので、C++みたいに、どこでも変数が定義できる。
関数定義
見てのとおり、定義が一文なら中括弧がいらない。
int func() return 0;
関数内関数
プログラムは全て実行時に評価されるので、どこでも関数が定義できる。
int main(int x) { int func( int x) return x * 2; println( func( 2)); }
printfがない
代わりにprintlnという関数を用意しました。