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