[cfe-dev] Source rewrite

Douglas Gregor dgregor at apple.com
Thu Dec 17 07:57:44 PST 2009


On Dec 17, 2009, at 5:23 AM, steve naroff wrote:

> 
> On Dec 17, 2009, at 7:05 AM, Abramo Bagnara wrote:
> 
>> In an application that uses clang libraries we need to transform some
>> specially written comments in C construct.
>> 
>> e.g:
>> int p() {
>> 	int a = 3;
>> 	/* #instrument(a)# */
>> }
>> 
>> should be parsed as
>> int p() {
>> 	int a = 3;
>> 	instrument(a);
>> }
>> 
>> I've added a CommentHandler to Preprocessor to catch comments and I
>> thought to use Rewriter class to manipulate the input buffer inserting
>> after the comment the text to be parsed, but then I've realized that
>> Rewriter class is not designed to rewrite lexer input buffers, but to
>> build a separate object where original text and changes live together.
>> 
>> Now I'm a bit confused: what's the proper way to cope with the need
>> described above?
>> 
> 
> Hi Abramo,
> 
> The ASTContext class has a 'Comments' member that contains all the  
> SourceRanges's for all comments in the source file.
> 
> This assumes you've told the preprocessor to keep comments.

You actually don't have to tell the preprocessor to keep comments; it keeps the source ranges for the comments regardless, and you can go back to the source to get the content of the comments.

	- Doug

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20091217/e115b633/attachment.html>


More information about the cfe-dev mailing list