Language.C can't handle C Block syntax

Benedikt Huber benedikt.huber at
Wed May 19 08:03:56 EDT 2010

Kevin Ballard wrote:
> P.S. I would have filed a ticket but your Trac installation requires login, and I don't see a way to register.
Hello Kevin,
sorry about that, I've added functionality to register, as well as a 
guest login (see wiki start page) for the trac site.
> There is a (relatively) new extension for C called Blocks[1] that Apple introduced in Mac OS X 10.6. Block declarations look similar to function declarations except for using ^ in place of *. Unfortunately Language.C doesn't understand this and ends up triggering a parse error when processing the system header files (even /usr/include/stdlib.h has this issue). Is there any way to work around this issue?
I did not know much about this C extension, only now a little bit more 
after reading your reference and I have 
to say that this is quite a big change to the C language (the implicit 
capturing of variables in closures feels non-ideomatic to me), and it 
seems to be Apple specific (not even in Mac OS X 10.5 without 3rd party 
libraries). That said, if you or someone else believes it is worth it 
and provides a patch, it would be ok to include the parser/AST changes 
in language.c.

As a short time solution, would it be possible to use different header 
files, e.g. the ones from os x 10.5 ?

best regards,

More information about the Language-c mailing list