木谷 洋
ryute****@mac*****
2005年 6月 17日 (金) 16:55:49 JST
木谷です。 以前書いたObjective-Cブリッジのコア部分がほぼ完成し、 syntaxを詰めているところなんですが、二点ほど参考意見を頂けないで しょうか。 1. ブリッジのメソッド呼び出し部のC側インターフェースは (objc-send receiver selector-string (args ...)) となっており、それを使ってObjective-Cのこういう [[obj msg] msg1: arg1 msg2: arg2] 入れ子の文法をマクロでエミュレートするものとします。つまり (objc-send (objc-send obj "msg" '()) "msg1:msg2:" (list arg1 arg2)) のように展開されるものとします。 これは性質上相互再帰で引数解釈とフォーム構築をいったりきたりする のが自然だと考えられます。で、letrec-syntaxの場合なら二つ ルールを導入して (letrec-syntax ((objc-arg ...) (objc-form ...)) (objc-form FORM)) のようにできるんですが、これをdefine-syntaxでうまく扱う方 法はあるでしょうか。現状の実装はletrec-syntaxをdefine- macroでラップするという怪しい設計でして、まあ動いてはいるんです がどうにも不満が残ります(quote埋め込みですし) 2. R6RSで単なる括弧扱いされるらしい、という[]は Gauche的にはどうなるんでしょうか。ObjC部だけ[]で記述 すると埋め込みらしくて見栄えがするんで、今は気にせず使ってるんで すが。 --- 木谷 洋