From chak at cse.unsw.edu.au Sun Mar 2 19:02:01 2008 From: chak at cse.unsw.edu.au (Manuel M T Chakravarty) Date: Sun Mar 2 18:59:41 2008 Subject: [C2hs] enum define hooks In-Reply-To: <87hcfrvg2k.fsf@gaura-nitai.dyndns.org> References: <87hcfrvg2k.fsf@gaura-nitai.dyndns.org> Message-ID: 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 then let c2hs marshal SE_ENUM. Manuel From gour at mail.inet.hr Mon Mar 3 02:17:36 2008 From: gour at mail.inet.hr (Gour) Date: Mon Mar 3 04:47:39 2008 Subject: [C2hs] Re: enum define hooks References: <87hcfrvg2k.fsf@gaura-nitai.dyndns.org> Message-ID: <8763w4p97z.fsf@gaura-nitai.dyndns.org> >>>>> "Manuel" == Manuel M T Chakravarty writes: Hi Manuel, Thank you for reply. Manuel> I'd recommend to use inline C in the .chs file, where you define Manuel> suitable enum with something like Manuel> enum SE_ENUM { SE_ENUM_SUN = SE_SUN, Manuel> } Manuel> and then let c2hs marshal SE_ENUM. I was looking at examples and came up with the same solution: #c enum PlanetNumbers { SeSun = SE_SUN, ... }; #endc {#enum PlanetNumbers {}#} It seems as very good workaround in the absence of "enum define" hooks. Thank you for c2hs. I'm happy to use it... Sincerely, Gour -- Gour | Zagreb, Croatia | GPG key: C6E7162D ---------------------------------------------------------------- -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 196 bytes Desc: not available Url : http://www.haskell.org/pipermail/c2hs/attachments/20080303/b3a54170/attachment.bin