2009-01-22から1日間の記事一覧

null とオーバーロード(2)

null 自身に型を持たせる方法はお蔵入りすることにしてみた。型持ち null がプログラム内の各所に散らばると挙動が不明になりすぎて困ってしまいます。 その代わり、KzJavaFunction に select メソッドを取り付ける方向で調整します。ある特定のメソッドを取…

null とオーバーロード

kuzha スクリプト内から null を引数に java のメソッドを呼び出すと、そのメソッドがオーバーロードされていたときにどのメソッドが呼び出されるかわからなくなっちゃうので、それを解決しようとあれこれ思案中だったりします。 現在考え中なのが、 null に…

RE: メソッドオーバーロードの動的束縛

cf: メソッドオーバーロードの動的束縛とか - しげるメモ さくっと解決してみた。 import javax.script.*; public class ScriptingDispatch { public static void main(String[] args) throws Exception { ScriptingDispatch obj = new ScriptingDispatch();…

try 〜 finally でちょっと引っかかったところ

try 〜 finally を実装していたら、ベリファイアが Inconsistent stack height を出してきた。何が起きたのかと思ってよく見てみると…… TRY: // try 本体 TRY_END: JSR FINALLY GOTO END CATCH: JSR FINALLY ATHROW FINALLY: ASTORE $EX // finally 本体 RET…

kuzha の後置制御構文

後置制御構文が実装し終わりました。/if /while /for /let /catch /finally /lock /case の7種類があります。 kz> "hi" puts /if 123 == 123; > hi kz> (x = "hi") puts /while x == void; > hi kz> i puts /for i in 0..3; > 0 1 2 3 kz> i puts /let i = …

だいたい変更完了

後置制御構文の文法をちょっと見直し。ついでに /for キーワード追加。あとで /catch, /finally, /lock, /let とかも追加するかも。 kz> i puts /for i in 0..5; > 0 1 2 3 4 5null と void に関係する比較演算子まわりを修正。けど > を ROOT に追加したか…

TODO

未了 case 文のコンテキスト分離 関数周りの整備 KzJavaFunction に select メソッドと callSelect メソッドを新設 無名 KzStruct を許容させる(インデックス演算子とのバッティングをどうするか) KzBigNumber まわりの整備 トレイトをどうするか Converter …