Re: [Cpip-develop] #line and #pragma issues
Status: Alpha
Brought to you by:
cpip
|
From: cpip c. <cp...@gm...> - 2015-02-27 08:46:11
|
Hi Bengt,
The fix for emitting line/file information is now in on the tip. Just
create the PpLexer with an additional flag "annotateLineFile" set to True,
thus:
myLexer = PpLexer.PpLexer(..., annotateLineFile=True)
Regards,
Paul Ross.
On Thu, Feb 26, 2015 at 1:31 PM, cpip cpip <cp...@gm...> wrote:
> Hi Bengt,
>
> Sorry for the delay, I have been snowed under recently and neglecting CPIP!
>
> These are great ideas, I have already implemented the Pragma one in the SF
> main branch. You now construct a PpLexer with a (just added)
> PragmaHandler.PragmaHandlerEcho() like this:
>
> myLexer = PpLexer.PpLexer(
> 'hello.c',
> CppIncludeStringIO([], [], myStr, {}),
> pragmaHandler=PragmaHandler.PragmaHandlerEcho(),
> )
>
> All pragma statments are now preserved in the output.
>
> As for the line number/file idea, I have partially implemented and should
> finish it tonight. or at the weekend.
>
> I hope CPIP is being useful!
>
> Thanks,
>
> Paul.
>
>
>
>
> On Thu, Jan 15, 2015 at 3:50 PM, Bengt Gustafsson <
> Ben...@co...> wrote:
>
>> Hi!
>>
>>
>>
>> I am using the cpip module in a situation where I need to first
>> preprocess, then massage the preprocessed code a bit and finally send the
>> resulting source code off to the “real” compiler.
>>
>>
>>
>> The cpip module was really easy to get working but I have two problems,
>> listed below.
>>
>>
>>
>> One is that the original source code contains #pragma directives. I want
>> these to go right through the preprocessing. While it is possible to
>> install a pragma handler it does not seem to be possible to avoid an
>> endless loop if
>>
>> I just send the pragma back to the source stream. I would like a
>> possibility to block further preprocessing of whatever the pragma()
>> function returns. Alternatively and simpler in my case another callback,
>> say keep() which if it exists and returns true moves the entire pragma line
>> to the output stream automatically.
>>
>>
>>
>> Another problem is that if I get an error in the final compilation step I
>> won’t know what the original line number is or which include file a
>> particular line comes from. With other preprocessors the output stream is
>> usually filled with #line directives which the compiler uses to make sure
>> error messages are appointed to the right line in the original source even
>> if the preprocessor is run as a separate step. I would like an option to
>> generate #line directives in the output file!
>>
>>
>>
>> Best Regards,
>>
>> Bengt Gustafsson
>>
>>
>>
>>
>> ------------------------------------------------------------------------------
>> New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
>> GigeNET is offering a free month of service with a new server in Ashburn.
>> Choose from 2 high performing configs, both with 100TB of bandwidth.
>> Higher redundancy.Lower latency.Increased capacity.Completely compliant.
>> http://p.sf.net/sfu/gigenet
>> _______________________________________________
>> Cpip-develop mailing list
>> Cpi...@li...
>> https://lists.sourceforge.net/lists/listinfo/cpip-develop
>>
>>
>
|