Re: [Tack-devel] Questions about LLgen
Moved to https://github.com/davidgiven/ack
Brought to you by:
dtrg
From: Wild Pi <wi...@pr...> - 2022-02-05 17:17:49
|
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) |