132 lines
		
	
	
	
		
			3.4 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			132 lines
		
	
	
	
		
			3.4 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
| .\" $Header$
 | |
| .TH LLGEN 1ACK
 | |
| .ad
 | |
| .SH NAME
 | |
| LLgen, an extended LL(1) parser generator
 | |
| .SH SYNOPSIS
 | |
| \fBLLgen\fP
 | |
| [
 | |
| \fB\-vxjw\fP
 | |
| ]
 | |
| [
 | |
| \fB\-m\fP\fInum\fP
 | |
| ]
 | |
| [
 | |
| \fB\-l\fP\fInum\fP
 | |
| ]
 | |
| [
 | |
| \fB\-h\fP\fInum\fP
 | |
| ]
 | |
| file ...
 | |
| .SH DESCRIPTION
 | |
| \fILLgen\fP
 | |
| converts a context-free grammar into a set of
 | |
| functions which form a recursive descent parser with no backtrack.
 | |
| The grammar may be ambiguous;
 | |
| ambiguities can be broken by user specifications.
 | |
| .PP
 | |
| \fILLgen\fP
 | |
| reads each
 | |
| \fIfile\fP
 | |
| in sequence.
 | |
| Together, these files must constitute a context-free grammar.
 | |
| For each file,
 | |
| \fILLgen\fP
 | |
| generates an output file, which must be compiled by the
 | |
| C-compiler.
 | |
| In addition, it generates the files
 | |
| \fILpars.c\fP
 | |
| and
 | |
| \fILpars.h.\fP
 | |
| \fILpars.h\fP
 | |
| contains the
 | |
| \fIdefine\fP
 | |
| statements that associate the
 | |
| \fILLgen\fP-assigned `token-codes' with user declared `token-names'.
 | |
| This allows other source files, for instance the source file
 | |
| containing the lexical analyzer,
 | |
| 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.
 | |
| .PP
 | |
| \fILLgen\fP
 | |
| will only update those output files that differ from their previous
 | |
| version.
 | |
| This allows
 | |
| \fILLgen\fP
 | |
| to be used with
 | |
| \fImake\fP
 | |
| (I) convieniently.
 | |
| .PP
 | |
| To obtain a working program, the user must also supply a
 | |
| lexical analyzer, as well as
 | |
| \fImain\fP
 | |
| and
 | |
| \fILLmessage\fP,
 | |
| an error reporting routine;
 | |
| \fILex\fP
 | |
| (I) is a useful program for creating lexical analysers usable
 | |
| by
 | |
| \fILLgen\fP.
 | |
| .PP
 | |
| \fILLgen\fP accepts the following flags:
 | |
| .IP \fB\-v\fP
 | |
| create a file called
 | |
| \fILL.output\fP,
 | |
| which contains a description of the conflicts that
 | |
| were not resolved.
 | |
| If the flag is given more than once,
 | |
| \fILLgen\fP
 | |
| will be more "verbose".
 | |
| If it is given three times, a complete description of the
 | |
| grammar will be supplied.
 | |
| .IP \fB\-x\fP
 | |
| the sets that are computed are extended with the nonterminal
 | |
| symbols and these extended sets are also included in the
 | |
| \fILL.output\fP
 | |
| file.
 | |
| .IP \fB\-w\fP
 | |
| no warnings are given.
 | |
| .IP \fB\-j\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
 | |
| done for switches that have density between
 | |
| \fIlow_percentage\fP and \fIhigh_percentage\fP, as explained below.
 | |
| Usually, compilers generate a jumptable when the density of the switch
 | |
| is above a certain threshold. If you want jump tables in more cases,
 | |
| set \fIhigh_percentage\fP to this threshold, and \fIlow_percentage\fP to
 | |
| a minimum threshold. There is a time-space trade-off here.
 | |
| .IP \fB\-m\fP\fInum\fP
 | |
| minimum number of cases in a switch for the \fB\-j\fP option to be
 | |
| effective. The default value is 8.
 | |
| .IP \fB\-l\fP\fInum\fP
 | |
| The \fIlow_percentage\fP, as described above. Default value is 10.
 | |
| .IP \fB\-h\fP\fInum\fP
 | |
| The \fIhigh_percentage\fP, as described above. Default value is 30.
 | |
| .SH FILES
 | |
| LL.output                 verbose output file
 | |
| .br
 | |
| Lpars.c                   the error recovery routines
 | |
| .br
 | |
| Lpars.h                   defines for token names
 | |
| .SH "SEE ALSO"
 | |
| \fIlex\fP (I)
 | |
| .br
 | |
| \fImake\fP (I)
 | |
| .br
 | |
| \fILLgen, an Extended LL(1) Parser Generator\fP
 | |
| by C.J.H. Jacobs.
 | |
| .SH DIAGNOSTICS
 | |
| Are intended to be self-explanatory. They are reported
 | |
| on standard error. A more detailed report is found in the
 | |
| \fILL.output\fP
 | |
| file.
 | |
| .SH BUGS
 | |
| Because some file names are fixed, at most one
 | |
| \fILLgen\fP
 | |
| process can be active in a given directory at
 | |
| a time.
 | |
| .SH AUTHOR
 | |
| Ceriel J. H. Jacobs
 |