Re: [Tack-devel] Questions about LLgen
Moved to https://github.com/davidgiven/ack
Brought to you by:
dtrg
From: David G. <dg...@co...> - 2022-02-05 21:57:50
|
I don't know what platform you're on, but grap's in Debian (that's where I got mine). I've updated the docs on the website. The LLgen PDF should now be readable, and I've added the LLgen_NCER docs, both in PDF and HTML, as that seems to be the bit you're most interested in. http://tack.sourceforge.net/olddocs.html On Sat, 5 Feb 2022 at 18:08, Wild Pi <wi...@pr...> wrote: > > On Saturday, February 5th, 2022 at 2:33 AM, David Given <dg...@co...> > wrote: > > That's beyond my knowledge --- I haven't done much with error recovery in > parser generators. (Lemon's error recovery is the same as yacc's. I quote: > "After extensive experimentation over several years, it has been discovered > that the error recovery strategy used by yacc is about as good as it gets. > And so that is what Lemon uses.") > > > Yes, I saw this shortly after sent out my last email. I find one of the > main challenges to develop a usable parser is error recovery. > > I'd be interested to hear how you get on with LLgen. > > > I have a copy of this book. I find it more practical/useful than many > other well-known compiler books. Love it. It's a long journey from the book > to ACK. It don't remember any references to ACK in the book. > > https://www.amazon.com/Modern-Compiler-Design-Dick-Grune/dp/1461446988 > > I installed the full groff package, but make still fails with following > error. I cannot find anything about this "grap" tool. > > groff -R -G -e -g -p -ms -Tpdf doc/LLgen_NCER.n > .obj/LLgen_NCER.pdf > groff: couldn't exec grap: No such file or directory > > You could produce those PDF documents and commit them directly. However, > this is not urgent at least for me. It seems LLgen.n is identical to this > paper: http://tack.sourceforge.net/olddocs/LLgen.html. LLgen_NCER.n is > the original paper about error recovery, most of which I believe is already > explained in the above book. It's not clear what LLgen.1 is about, but I > guess it's OK. I know how LLgen works. > > Although the make process exits when it fails to produces the PDF files, > LLgen is already built successfully. It could be partially installed > without those documents. No big deal though. > > diff --git a/util/LLgen/Makefile b/util/LLgen/Makefile > index 8833dbbd2..6e9554500 100644 > --- a/util/LLgen/Makefile > +++ b/util/LLgen/Makefile > @@ -50,10 +50,10 @@ clean: > > install: LLgen doc/LLgen.1 $(PDFS) $(wildcard lib/*) > install -D -s LLgen -t $(PREFIX)/bin > + install -D $(wildcard lib/*) -t $(PREFIX)/share/LLgen > install -D doc/LLgen.1 -t $(PREFIX)/man/man1 > install -D $(OBJDIR)/LLgen.pdf -t $(PREFIX)/doc/LLgen > install -D $(OBJDIR)/LLgen_NCER.pdf -t $(PREFIX)/doc/LLgen > - install -D $(wildcard lib/*) -t $(PREFIX)/share/LLgen > > -include $(DEPS) > > |