私はかなり複雑なインターフェースを持つネイティブ ライブラリの haskell バインディングに取り組んでいます。hsc2hs
インターフェイスの一部として多くの構造体があり、構造体バインディングの自動化を支援するbindings-DSL
パッケージと、それらへのインターフェイスの構築に取り組んできました。
ただし、私が遭遇した 1 つの問題は、多次元配列を含む構造体に関するものです。bindings-DSL
ドキュメントでは、次のような構造にバインドするためのマクロについて説明しています
struct with_array {
char v[5];
struct test *array_pointer;
struct test proper_array[10];
};
のようなマクロで
#starttype struct with_array
#array_field v , CChar
#field array_pointer , Ptr <test>
#array_field proper_array , <test>
#stoptype
しかし、このライブラリには、フィールドとして多次元配列を持つ多くの構造体があります。
struct with_multidimensional_array {
int whatever;
struct something big_array[10][25][500];
};
#array_field
マクロは、配列の最初の次元のみを処理するようです。多次元配列を扱うためのマクロがないbindings-DSL
だけですか?
StorableArray
(おそらく多次元の) 配列を任意のインデックスにバインドするためのマクロが本当に欲しいです。必要な情報はマクロbindings-DSL
が提供しているように見えます-これにはマクロがありません。
にマクロを追加した人はいますbindings-DSL
か? これにマクロを追加した人はいbindings-DSL
ますか?でやるべきことをhsc2hs
はるかに超えていますか?もっと簡潔な方法でやりたいことをするのに役立つツールが他にありますか?