Clover2開発日誌

Clover2というJavaのように静的な型を持つRubyのようなコンパイラ+仮想マシンの開発日誌です。LLVMでJITもします。https://github.com/ab25cqにて開発しています。

if文が戻り値を返すようになってます。

if文が戻り値を返すようになってます。JIT対応。

 

> a := if(true) { 1 } else { 2 }

> a

1

となります。JITでも対応しています。

もちろん、インタプリタでは

> if(true) { "ABC" } else { "DEF" }.[TAB]

でString型のメソッド補完も行います。

 

次はブロックでの引数の省略を入れたいと思います。itってやつですね。ブロックの引数が複数あったら、it, it2, it3とかできれば良いなと思います。ただ、Clover2はブロックの引数の型が決まっていないとメソッド探索ができないかもしれないので、ちょっとむずかしいかもしれません。もちろん探せるように修正はできるので、なんとか、Kotlinのようにブロックの引数が省略できるようにしたいです。

 

それとreturn文が省略できるようにすればかなり、メソッドチェインでKotlinのような記述ができるようになると思います。

型推論辺りも強化しないとList.mapはKotlinのようにはならないと思いますが。

まあ、ぼちぼちKotlinのような簡略化した記述ができるように修正していきたいと思います。

 

しかし、今日は夜更かししてしまいました。

明日仕事中、眠いと思います。がくり。仕事に支障が無いようにぼちぼちコーディングしたいと思います。バグが出るとついムキになっちゃいますね。

反省。

明日は早く寝ると思います。

おやすみなさい。

 

それでは。