Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!ucbvax!hplabs!otter!kers From: kers@otter.hpl.hp.com (Chris Dollin) Newsgroups: comp.misc Subject: Re: The "evil" GOTO (Was: 25 Years of BASIC) Message-ID: <1860006@otter.hpl.hp.com> Date: 8 May 89 07:50:08 GMT References: <1814@ubu.warwick.UUCP> Organization: Hewlett-Packard Laboratories, Bristol, UK. Lines: 18 lishka@uwslh.UUCP (a.k.a. Fish-Guts) (also Christopher Lishka) said: [stuff omitted] | So there are the comments, "straight from the horses' mouthes!" | There are times (especially when writing recursive-descent compilers) | when the use of one _goto_ or longjmp() can save many, many additional | tests. Note that the setjmp()/longjmp() functions are just a | _goto_/label equivalent that can jump across functions (by unwinding | the stack). _Goto_ does have its place! Funny, I never found it necessary or convenient to use goto's in a RD parser. Error recovery can be done very-nicely-thank-you by passing the set of permitted symbols to the next-token routine - as both Henry Specer and I have avowed in (I think) comp.compilers recently. Regards, Kers. "If anything anyone lacks, they'll find it all ready in stacks."