
On 02.04.2009, at 11:34, Duncan Coutts wrote:
It was pointed out to me yesterday that it would be rather useful if c2hs could automatically work out if the ffi import for a {# call/ fun #} hook should be ccall or stdcall calling convention ... So the first job would be for Language.C to keep the __attribute__'s in the abstract syntax tree. They already get parsed, but at least last time I looked they were not entered into the AST. Hi Duncan,
language.c records attributes already :) (implemented during SoC last year). See: http://hackage.haskell.org/packages/archive/language-c/0.3.1.1/doc/html/Lang... examples $ cat test.i __attribute__((__stdcall__)) int f(); examples $ ./ParseAndPrint test.i __attribute__((__stdcall__)) int f(); In the AST, this kind of attribute is recorded like this: * CDecl * declspecs-list + CTypeQual + CAttrQual * CAttr "__stdcall__" [] nodeinfo * declr-list * nodeinfo
The attribute syntax is pretty uniform so a generic representation in the AST would be fine. Any code that interpreted the attributes would just have to match on known string values. Right, it is easy to check whether the "stdcall" attribute is present. Is the current language.c support sufficient for implementing this request ?
benedikt