[antlr-interest] C runtime, VS2005 barfs at generated Initializers for double!!

Vamsi Juvvi juvvij at gmail.com
Fri Nov 14 10:23:57 PST 2008


I just checked. Extensions are turned on in my C++/Language options. If I
turn them off, I get a boatload of errors in windows headers themselves. So
VS2005 doesn't handle this even with Extensions turned on.

 Is there some other extension that needs to be turned on ? I just used the
default options when I created a new sln.

thanks for looking into this.

-vamsi

On Thu, Nov 13, 2008 at 4:02 PM, Jim Idle <jimi at temporal-wave.com> wrote:

> On Thu, 2008-11-13 at 15:28 -0800, Jim Idle wrote:
> > On Wed, 2008-11-12 at 19:57 -0800, Vamsi Juvvi wrote:
> > > Hi list/the-not-so-idle-idle:
> > >
>
> Just a thought here though - have you done something like turn off
> extensions in your project? I don't have VS2005 loaded anymore so can't
> try this easilly.
>
> Jim
>
> > >    While preparing a small antlr presentation for my colleagues I
> > > managed to generate code that VS 2005 simply refuses to compile.
> > >
> > >    in my tree parser for a simple calculator example. I have
> > >
> > > atom returns [double val]
> > >     : (
> > >             a=DECIMAL_LITERAL
> > >         | a=HEX_LITERAL
> > >         | a=OCTAL_LITERAL
> > >        )
> > >        { val = parseInt($a.text);}
> > >
> > >     | a=FLOATING_POINT_LITERAL
> > >       {val = parseDouble($a.text);}
> > >     ;
> > >
> > > The generated code for the atom method does this to initialize val
> > >
> > > double val = 0.0D;
> > >
> > > It does not compile unless I remove the D suffix on the 0.0. 0.0D is
> > > not a legal double literal for Visual studio C/C++.
> >
> > Works fine with VS2008. Perhaps your best bet is to compile with
> > the .Net C compiler.
> >
> > > Is there any way I can turn this automatic initialization off ? Or is
> > > this a bug that'll need to be fixed in the C templates ? I can
> > > workaround this using a struct to wrap my double but that would be
> > > perverse.
> >
> > It is auto-intialized in the templates. However, I suspect that I
> > probably changed it to use D for C++ or some other compiler. I will have
> > to retest it all to change that.
> >
> > Jim
> >
> > >
> > > thanks much for reading.
> > >
> > > -vamsi
> > >
> > > --
> > > Between impulse and reaction lies man's greatest strength: The freedom
> > > to create a choice, to create his universe, to choose - Victor Frankl
> > > (adapted)
> > > List: http://www.antlr.org/mailman/listinfo/antlr-interest
> > > Unsubscribe:
> http://www.antlr.org/mailman/options/antlr-interest/your-email-address
> > >
> >
> >
> > List: http://www.antlr.org/mailman/listinfo/antlr-interest
> > Unsubscribe:
> http://www.antlr.org/mailman/options/antlr-interest/your-email-address
> >
>
>


-- 
Between impulse and reaction lies man's greatest strength: The freedom to
create a choice, to create his universe, to choose - Victor Frankl (adapted)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.antlr.org/pipermail/antlr-interest/attachments/20081114/3066881a/attachment.html 


More information about the antlr-interest mailing list