changed font 5 references to font CW references

This commit is contained in:
ceriel 1988-04-18 13:42:35 +00:00
parent 003eed2758
commit defbe00b6a

View file

@ -151,7 +151,7 @@ used for grouping.
.PP .PP
We can describe the syntax of an ECF syntax with an ECF syntax : We can describe the syntax of an ECF syntax with an ECF syntax :
.DS .DS
.ft 5 .ft CW
grammar : rule + grammar : rule +
; ;
.ft R .ft R
@ -159,7 +159,7 @@ grammar : rule +
This grammar rule states that a grammar consists of one or more This grammar rule states that a grammar consists of one or more
rules. rules.
.DS .DS
.ft 5 .ft CW
rule : nonterminal ':' productionrule ';' rule : nonterminal ':' productionrule ';'
; ;
.ft R .ft R
@ -169,7 +169,7 @@ followed by ":",
the \fBproduce symbol\fR, followed by a production rule, followed by a the \fBproduce symbol\fR, followed by a production rule, followed by a
";", in\%di\%ca\%ting the end of the rule. ";", in\%di\%ca\%ting the end of the rule.
.DS .DS
.ft 5 .ft CW
productionrule : production [ '|' production ]* productionrule : production [ '|' production ]*
; ;
.ft R .ft R
@ -178,7 +178,7 @@ A production rule consists of one or
more alternative productions separated by "|". This symbol is called the more alternative productions separated by "|". This symbol is called the
\fBalternation symbol\fR. \fBalternation symbol\fR.
.DS .DS
.ft 5 .ft CW
production : term * production : term *
; ;
.ft R .ft R
@ -186,14 +186,14 @@ production : term *
A production consists of a possibly empty list of terms. A production consists of a possibly empty list of terms.
So, empty productions are allowed. So, empty productions are allowed.
.DS .DS
.ft 5 .ft CW
term : element repeats term : element repeats
; ;
.ft R .ft R
.DE .DE
A term is an element, possibly with a repeat specification. A term is an element, possibly with a repeat specification.
.DS .DS
.ft 5 .ft CW
element : LITERAL element : LITERAL
| IDENTIFIER | IDENTIFIER
| '[' productionrule ']' | '[' productionrule ']'
@ -205,7 +205,7 @@ between apostrophes, it can be an IDENTIFIER, which is either a
nonterminal or a token, and it can be a production rule nonterminal or a token, and it can be a production rule
between square parentheses. between square parentheses.
.DS .DS
.ft 5 .ft CW
repeats : '?' repeats : '?'
| [ '*' | '+' ] NUMBER ? | [ '*' | '+' ] NUMBER ?
| NUMBER ? | NUMBER ?
@ -287,7 +287,7 @@ Names representing tokens must be declared before they are used.
This can be done using the "\fB%token\fR" keyword, This can be done using the "\fB%token\fR" keyword,
by writing by writing
.nf .nf
.ft 5 .ft CW
.sp 1 .sp 1
%token name1, name2, . . . ; %token name1, name2, . . . ;
.ft R .ft R
@ -301,7 +301,7 @@ The start symbols must be declared explicitly using the
"\fB%start\fR" keyword. It can be used whenever a declaration is "\fB%start\fR" keyword. It can be used whenever a declaration is
legal, f.i.: legal, f.i.:
.nf .nf
.ft 5 .ft CW
.sp 1 .sp 1
%start LLparse, specification ; %start LLparse, specification ;
.ft R .ft R
@ -340,7 +340,7 @@ In order to facilitate communication between the actions and
\fILLparse\fR, \fILLparse\fR,
the parsing routines can be given C-like parameters. So, for example the parsing routines can be given C-like parameters. So, for example
.nf .nf
.ft 5 .ft CW
.sp 1 .sp 1
expr(int *pval;) { int fact; } : expr(int *pval;) { int fact; } :
/* /*
@ -464,7 +464,7 @@ By default, for terms with a repetition count containing "*" or
"?" the default choice is to continue with the rest of the rule "?" the default choice is to continue with the rest of the rule
in which the term appears, and in which the term appears, and
.sp 1 .sp 1
.ft 5 .ft CW
.nf .nf
term+ term+
.fi .fi
@ -473,7 +473,7 @@ in which the term appears, and
is treated as is treated as
.sp 1 .sp 1
.nf .nf
.ft 5 .ft CW
term term* . term term* .
.ft R .ft R
.fi .fi
@ -488,7 +488,7 @@ the skipping of such a term can be prevented by
using the keyword "\fB%persistent\fR". using the keyword "\fB%persistent\fR".
For instance, the rule For instance, the rule
.sp 1 .sp 1
.ft 5 .ft CW
.nf .nf
commandlist : command* ; commandlist : command* ;
.fi .fi
@ -496,7 +496,7 @@ commandlist : command* ;
.sp 1 .sp 1
could be changed to could be changed to
.sp 1 .sp 1
.ft 5 .ft CW
.nf .nf
commandlist : [ %persistent command ]* ; commandlist : [ %persistent command ]* ;
.fi .fi
@ -592,7 +592,7 @@ returning 1 if the parameter supplied can start a specified
nonterminal, f.i.: nonterminal, f.i.:
.sp 1 .sp 1
.nf .nf
.ft 5 .ft CW
%first fmac, nonterm ; %first fmac, nonterm ;
.ft R .ft R
.sp 1 .sp 1
@ -675,7 +675,7 @@ This keyword can be used wherever a declaration is legal and may appear
only once in the grammar specification, f.i.: only once in the grammar specification, f.i.:
.sp 1 .sp 1
.nf .nf
.ft 5 .ft CW
%lexical scanner ; %lexical scanner ;
.ft R .ft R
.fi .fi
@ -717,7 +717,7 @@ This appendix has a description of the \fILLgen\fR input syntax,
as a \fILLgen\fR specification. As a matter of fact, the current as a \fILLgen\fR specification. As a matter of fact, the current
version of \fILLgen\fR is written with \fILLgen\fR. version of \fILLgen\fR is written with \fILLgen\fR.
.nf .nf
.ft 5 .ft CW
.sp 2 .sp 2
/* /*
* First the declarations of the terminals * First the declarations of the terminals
@ -846,7 +846,7 @@ priority. The example shows how we can do it all with one
nonterminal, no matter how many priority levels there are. nonterminal, no matter how many priority levels there are.
.sp 1 .sp 1
.nf .nf
.ft 5 .ft CW
{ {
#include <stdio.h> #include <stdio.h>
#include <ctype.h> #include <ctype.h>
@ -1007,7 +1007,7 @@ one file.
As usual, there is a way around this problem. As usual, there is a way around this problem.
A sample makefile follows: A sample makefile follows:
.sp 1 .sp 1
.ft 5 .ft CW
.nf .nf
# The grammar exists of the files decl.g, stat.g and expr.g. # The grammar exists of the files decl.g, stat.g and expr.g.
# The ".o"-files are the result of a C-compilation. # The ".o"-files are the result of a C-compilation.