/usr/share/doc/texlive-doc/latex/epslatex-fr/ebnf.sty is in texlive-lang-french 2014.20141024-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 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 |
\--------------------------------------------------------------------/
|