summaryrefslogtreecommitdiff
path: root/info/epslatex/french/ebnf.sty
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /info/epslatex/french/ebnf.sty
Initial commit
Diffstat (limited to 'info/epslatex/french/ebnf.sty')
-rw-r--r--info/epslatex/french/ebnf.sty74
1 files changed, 74 insertions, 0 deletions
diff --git a/info/epslatex/french/ebnf.sty b/info/epslatex/french/ebnf.sty
new file mode 100644
index 0000000000..72cbaebace
--- /dev/null
+++ b/info/epslatex/french/ebnf.sty
@@ -0,0 +1,74 @@
+%From: Damian.Cugley@prg.oxford.ac.uk (Damian Cugley)
+%Subject: Re: Styles for lispcode and grammars wanted...
+%Date: 11 Jul 90 18:34:23 GMT
+%
+%Here's one I threw together for my own use. It does EBNF, in LaTeX, in
+%the style I like - catagory names italicized in angle brackets, and
+%`::=' introducing productions.
+%
+%Example of use:
+%------------------------------------------------------------------------
+%Generally glue is quoted using this notation~\TBcite[\p271]:
+%\begin{EBNF}
+% \item[glue]
+% \<dimen> [~`plus' \<stretch>~] [~`minus' \<stretch>~].
+% \item[stretch]
+% \<dimen> | \<fil dimen>.
+% \item[fil dimen]
+% \<factor> (~`fil' | `fill' | `filll'~).
+%\end{EBNF}
+%A \<stretch> which is a \<dimen> ...
+%------------------------------------------------------------------------
+%
+%This is "list" environment in the style of "description" etc (Sec. 5.7).
+%Thus, productions start with
+%
+% \item[LHS]
+%
+%which produces
+%
+% <LHS> ::=
+%
+%in the document. (This was so I can alter the ::= to something else if
+%I really want to.) Each production is in LR (horizontal) mode. The
+%whole thing is indented to \parindent, with turnover lines indented a
+%further 2 em.
+%
+%`|' produces a vertical line.
+%
+%\<FOO> or \Cat{FOO} produces <FOO>, with FOO italicized.
+%
+%You might prefer {\tt plus} instead of `plus' etc.
+%
+%
+%Here's the code:
+%------------------------------------------------------------------------
+% Damian Cugley <Damian.Cugley@prg.oxford.ac.uk> Wed 11 Jul 1990
+
+\begingroup \catcode`\|=13
+ \gdef\EBNF
+ {\list{???}%
+ {%
+ \catcode`\|=13 \def|{$\mid$}%
+ \def\makelabel##1{\<##1> ::=}%
+ \parsep=0pt \itemsep=\smallskipamount
+ \leftmargin=\parindent \advance\leftmargin+2em
+ \labelsep=0.5em \labelwidth=1.5em
+ \raggedright
+ }%
+ }
+\endgroup
+
+\let\endEBNF\endlist
+
+\def\Cat#1{\ifmmode%
+\hbox{$\langle${\it #1\/}$\rangle$}\else
+{$\langle$\penalty10000{\it #1\/}\penalty10000$\rangle$}\fi}
+\def\<#1>{\Cat{#1}}
+\endinput
+------------------------------------------------------------------------
+
+ /--------------------------------------------------------------------\
+ | Damian Cugley, Programming Research Group, 11 Keble Rd, Oxford, UK |
+ | Damian.Cugley@prg.oxford.ac.uk =or= ...@oxford.prg in UK |
+ \--------------------------------------------------------------------/