Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site mit-eddie.UUCP Path: utzoo!linus!vaxine!wjh12!genrad!mit-eddie!nessus From: nessus@mit-eddie.UUCP (Doug Alan) Newsgroups: net.micro.apple Subject: Re: LL(1) parser for an apple. (are you - (nf) Message-ID: <2055@mit-eddie.UUCP> Date: Wed, 6-Jun-84 05:39:36 EDT Article-I.D.: mit-eddi.2055 Posted: Wed Jun 6 05:39:36 1984 Date-Received: Thu, 7-Jun-84 00:50:56 EDT References: <3321@fortune.UUCP> <3863@utzoo.UUCP> Organization: MIT, Cambridge, MA Lines: 25 > From: henry@utzoo.UUCP > This is actually an understatement. Error-handling is much > easier in recursive-descent/LL(1) than in LALR systems like > yacc. I find this extremely hard to believe. It is amazingly easy to write a very good error recovery system for an LALR parser. In fact, I was able to write an error recovery system for an LALR Modula 2 parser in less than a day. And not only that, it worked much better than the error recovery in any other compiler I've ever seen. How much easier can you get? What makes it so easy to do good and easy error recovery systems for LALR parsers is that you have the parse stack directly available to you and you can copy it and fiddle with it until you get something that works. You can't do this with a recursive decent parser. Though, of course, there are ways of doing error recovery with a recursive decent parser, I can't imagine that any of them are easier. -- -Doug Alan mit-eddie!nessus Nessus@MIT-MC "What does 'I' mean"?