Updated
authorceriel <none@none>
Fri, 21 Feb 1997 12:23:04 +0000 (12:23 +0000)
committerceriel <none@none>
Fri, 21 Feb 1997 12:23:04 +0000 (12:23 +0000)
util/LLgen/LLgen.1
util/LLgen/Makefile
util/LLgen/proto.make
util/LLgen/src/proto.make

index 4cd288a..3289967 100644 (file)
@@ -4,7 +4,7 @@
 .SH NAME
 LLgen, an extended LL(1) parser generator
 .SH SYNOPSIS
-LLgen [ \-vxwa ] [ \-j[\fInum\fP] ] [ \-l\fInum\fP ] [ \-h\fInum\fP ] file ...
+LLgen [ \-vxwans ] [ \-j[\fInum\fP] ] [ \-l\fInum\fP ] [ \-h\fInum\fP ] file ...
 .SH DESCRIPTION
 \fILLgen\fP
 converts a context-free grammar into a set of
@@ -36,7 +36,14 @@ to access the token-codes by
 using the token-names.
 \fILpars.c\fP
 contains the error recovery routines and tables. It must also
-be compiled by the C-compiler.
+be compiled by the C-compiler. When the generated parser uses non-correcting
+error recovery (
+\fB\-n\fP 
+option) 
+\fILLgen\fP
+also generates a file 
+\fILncor.c\fP
+that contains the non-correcting recovery mechanism.
 .PP
 \fILLgen\fP
 will only update those output files that differ from their previous
@@ -78,6 +85,12 @@ file.
 no warnings are given.
 .IP \fB\-a\fP
 Produce ANSI C function headers and prototypes.
+.IP \fB\-n\fP
+Produce a parser with non-correcting error recovery.
+.IP \fB\-s\fP
+Simulate the calling of all defined subparsers in all semantic actions. When 
+using non-correcting error recovery, subparsers that are called in semantic
+actions may cause problems; this flag provides a `brute-force' solution. 
 .IP \fB\-j\fP[\fInum\fP]
 when this flag is given, \fILLgen\fP will generate dense switches,
 so that the compiler can generate a jump table for it. This will only be
@@ -109,6 +122,9 @@ Lpars.h                   defines for token names
 .br
 \fILLgen, an Extended LL(1) Parser Generator\fP
 by C.J.H. Jacobs.
+.br
+\fITop-down Non-Correcting Error Recovery in LLgen\fP
+by A.W van Deudekom and P.J. Kooiman
 .SH DIAGNOSTICS
 Are intended to be self-explanatory. They are reported
 on standard error. A more detailed report is found in the
@@ -116,3 +132,6 @@ on standard error. A more detailed report is found in the
 file.
 .SH AUTHOR
 Ceriel J. H. Jacobs
+.br
+The non-correcting error recovery mechanism is written by
+A.W van Deudekom and P.J. Kooiman.
index cafecdf..858da64 100644 (file)
@@ -15,6 +15,8 @@ install:
        cp src/LLgen $(INSTALLDIR)/LLgen
        cp lib/rec $(LIBDIR)/rec
        cp lib/incl $(LIBDIR)/incl
+       cp lib/nc_rec $(LIBDIR)/nc_rec
+       cp lib/nc_incl $(LIBDIR)/nc_incl
        cp LLgen.1 $(MANDIR)/LLgen.1
 
 firstinstall:
@@ -24,6 +26,8 @@ firstinstall:
        -mkdir $(LIBDIR)
        cp lib/rec $(LIBDIR)/rec
        cp lib/incl $(LIBDIR)/incl
+       cp lib/nc_rec $(LIBDIR)/nc_rec
+       cp lib/nc_incl $(LIBDIR)/nc_incl
        cp LLgen.1 $(MANDIR)/LLgen.1
 
 cmp:
@@ -31,6 +35,8 @@ cmp:
        -cmp src/LLgen $(INSTALLDIR)/LLgen
        -cmp lib/rec $(LIBDIR)/rec
        -cmp lib/incl $(LIBDIR)/incl
+       -cmp lib/nc_rec $(LIBDIR)/nc_rec
+       -cmp lib/nc_incl $(LIBDIR)/nc_incl
        -cmp LLgen.1 $(MANDIR)/LLgen.1
 
 distr:
index 2e74739..d7fa271 100644 (file)
@@ -17,6 +17,8 @@ install:
        if [ $(DO_MACHINE_INDEP) = y ] ; \
        then    cp $(SRC_HOME)/util/LLgen/lib/rec $(LIBDIR)/rec ; \
                cp $(SRC_HOME)/util/LLgen/lib/incl $(LIBDIR)/incl ; \
+               cp $(SRC_HOME)/util/LLgen/lib/nc_incl $(LIBDIR)/nc_incl ; \
+               cp $(SRC_HOME)/util/LLgen/lib/nc_rec $(LIBDIR)/nc_rec ; \
                mk_manpage $(SRC_HOME)/util/LLgen/LLgen.1 $(TARGET_HOME) ; \
        fi
 
@@ -27,6 +29,8 @@ firstinstall:
        then    if [ -d $(LIBDIR) ] ; then : ; else mkdir $(LIBDIR) ; fi ; \
                cp $(SRC_HOME)/util/LLgen/lib/rec $(LIBDIR)/rec ; \
                cp $(SRC_HOME)/util/LLgen/lib/incl $(LIBDIR)/incl ; \
+               cp $(SRC_HOME)/util/LLgen/lib/nc_incl $(LIBDIR)/nc_incl ; \
+               cp $(SRC_HOME)/util/LLgen/lib/nc_rec $(LIBDIR)/nc_rec ; \
                mk_manpage $(SRC_HOME)/util/LLgen/LLgen.1 $(TARGET_HOME) ; \
        fi
 
@@ -35,6 +39,8 @@ cmp:
        -cmp src/LLgen $(INSTALLDIR)/LLgen
        -cmp $(SRC_HOME)/util/LLgen/lib/rec $(LIBDIR)/rec
        -cmp $(SRC_HOME)/util/LLgen/lib/incl $(LIBDIR)/incl
+       -cmp $(SRC_HOME)/util/LLgen/lib/nc_rec $(LIBDIR)/nc_rec
+       -cmp $(SRC_HOME)/util/LLgen/lib/nc_incl $(LIBDIR)/nc_incl
 
 distr:
        cd src; make distr
index 841a3ad..12def49 100644 (file)
@@ -148,3 +148,10 @@ tokens.$(SUF):     $(SRC_DIR)/cclass.h
 tokens.$(SUF): $(SRC_DIR)/extern.h
 tokens.$(SUF): $(SRC_DIR)/io.h
 tokens.$(SUF): $(SRC_DIR)/types.h
+
+savegram.$(SUF):       $(SRC_DIR)/savegram.c
+               $(CC) -c $(CFLAGS) $(SRC_DIR)/savegram.c
+savegram.$(SUF):       $(SRC_DIR)/types.h
+savegram.$(SUF):       $(SRC_DIR)/extern.h
+savegram.$(SUF):       $(SRC_DIR)/io.h
+savegram.$(SUF):       $(SRC_DIR)/sets.h