benedikt.huber at gmail.com
Sun Jan 25 09:41:24 EST 2009
I've done a rollback of yesterday's patch introducing the change to
Are you fine now ?
As I said, the representation used at the moment isn't ideal either,
and the documentation
needs some updates.
I've also decided to create a mailing list on projects.haskell.org
right now, and will
cc discussions and release announcement there.
On 25.01.2009, at 14:41, Joe Thornber wrote:
> Hi Benedikt,
> I've been playing with the Haskell language-c library ,which is great,
> and was wondering if I could ask your advice on how to approach a
> problem I'm working on ?
> I'm writing a little program that will apply my employers archaic
> naming conventions to exiting C source code. So the plan was to parse
> the C files including pre-processing. Walk the AST generating a list
> of rename operations. Finally re-read the source and then apply the
> renaming ops.
> Of course there are complications applying the rename ops if a macro
> has been expanded on the line in question. But in general the
> 'posColumn' field of the identifier being renamed gave very useful
> information - even if it was just used as a starting point for a
> This worked pretty well with the Cabal version of language-c. I've
> just grabbed your latest and greatest via Darcs, and find that the
> posColumn now refers to the fileOffset, rather than offset within a
> So I guess there are a couple of questions ?
> i) In you comments in Position.hs you say the column field is
> meaningless because of #line directives. I don't quite understand
> this. True the column position refers to the pre-processed code - but
> why is it wrong? Surely #line directives don't make any difference ?
> ii) I think lineOffset is still useful information, so could we put an
> extra field into the Position for the fileOffset rather than stomping
> on the column field ? (I'm quite happy to do the coding for this).
> - Joe
More information about the Language-c