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 >> >> > |