Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C++ > Re: [OT, welcome msg] Yacc/G++ parser probs.

Reply
Thread Tools

Re: [OT, welcome msg] Yacc/G++ parser probs.

 
 
Mike Wahler
Guest
Posts: n/a
 
      07-08-2003
Peter Gregory <> wrote in message
news:beerpd$v3k$...
> Having just upgraded to Mandrake9.1 (hence G++3.2.2) some yacc
> parsing code that used to work now doesn't. I didn't write the
> parser and it isn't my code to just put on the web so I can't
> list it, sorry. I was really just wondering if this is a common
> problem that has an obvious solution that I'm not seeing.


Yes, "it worked before, but now it doesn't" is indeed
a very common scenario in software development.

Did you have a particular question about the C++ language?

http://www.slack.net/~shiva/welcome.txt

-Mike



 
Reply With Quote
 
 
 
 
Stuart Golodetz
Guest
Posts: n/a
 
      07-08-2003
"Mike Wahler" <> wrote in message
news:bef4t3$rr3$...
> Peter Gregory <> wrote in message
> news:beerpd$v3k$...
> > Having just upgraded to Mandrake9.1 (hence G++3.2.2) some yacc
> > parsing code that used to work now doesn't. I didn't write the
> > parser and it isn't my code to just put on the web so I can't
> > list it, sorry. I was really just wondering if this is a common
> > problem that has an obvious solution that I'm not seeing.


To the OP:

1) Use the old compiler instead of g++ 3.2.2 (the easy option).
2) Run it through the debugger (probably your best bet).
3) Rewrite the parser from scratch (sounds like fun).

> Yes, "it worked before, but now it doesn't" is indeed
> a very common scenario in software development.


As is, incidentally, "it didn't work before, and it still doesn't". In fact,
that's even more common, if anything... If we were going to make a
comprehensive list:

(in order of ascending rarity)
1) "it didn't work before, and it still doesn't" (the so-called "oh dear,
rewrite time..." scenario)
2) "it worked before, but now it doesn't" (the "one of the compilers is
messed up, but which?" scenario)
3) "it worked before, and it still does" (the "this code must be trivial"
scenario)
4) "it didn't work before, but now it does" (the "4am debugging session paid
off" scenario (very rare))

In general, the chances of having serious problems when something
inadvertently breaks can be minimised by writing good test code - then when
things do go wrong, it's easier to find out why. Of course, the more
complicated the code, the less this seems to help... Writing good test code
for a parser would probably not be particularly easy to do.

Cheers,

Stuart.

> Did you have a particular question about the C++ language?
>
> http://www.slack.net/~shiva/welcome.txt
>
> -Mike



 
Reply With Quote
 
 
 
 
John Harrison
Guest
Posts: n/a
 
      07-08-2003
>
> To the OP:
>
> 1) Use the old compiler instead of g++ 3.2.2 (the easy option).
> 2) Run it through the debugger (probably your best bet).
> 3) Rewrite the parser from scratch (sounds like fun).
>


4) Switch to another parser generator that is more or less compatible with
yacc, flex/bison for instance.

john


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Welcome screen not welcome mona@Ve.com Computer Support 4 12-14-2007 03:12 AM
mailing list welcome welcome msg in wiki suggestion Brian van den Broek Python 0 12-12-2004 09:11 PM
XML Parser VS HTML Parser ZOCOR Java 11 10-05-2004 01:58 PM
XMLparser: Difference between parser.setErrorHandler() vs. parser.setContentHandler() Bernd Oninger Java 0 06-09-2004 01:26 AM
XMLparser: Difference between parser.setErrorHandler() vs. parser.setContentHandler() Bernd Oninger XML 0 06-09-2004 01:26 AM



Advertisments
 



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57