[C2hs] enum define hooks

Manuel M T Chakravarty chak at cse.unsw.edu.au
Sun Mar 2 19:02:01 EST 2008


Gour:
> I'm on the verge of my 1st Haskell project where I want to use c2hs to
> produce bindings for C library.
>
> There are not (yet) "enum define" hooks implemented, so I wonder  
> what's
> convenient way to bind library with quite a lot of #defines like:
>
> #define SE_SUN          0
> #define SE_MOON         1
> #define SE_MERCURY      2
> #define SE_VENUS        3
> #define SE_MARS         4
> #define SE_JUPITER      5
> #define SE_SATURN       6
>
> and some in the form of:
>
> #define SE_FNAME_DE200  "de200.eph"
> #define SE_FNAME_DE403  "de403.eph"
> #define SE_STARFILE     "fixstars.cat"

I'd recommend to use inline C in the .chs file, where you define  
suitable enum with something like

   enum SE_ENUM {
     SE_ENUM_SUN = SE_SUN,
     <and so on>
   }

and then let c2hs marshal SE_ENUM.

Manuel



More information about the C2hs mailing list