summaryrefslogtreecommitdiff
path: root/info/ltx3pub/vt11d01.tex
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/ltx3pub/vt11d01.tex
Initial commit
Diffstat (limited to 'info/ltx3pub/vt11d01.tex')
-rw-r--r--info/ltx3pub/vt11d01.tex218
1 files changed, 218 insertions, 0 deletions
diff --git a/info/ltx3pub/vt11d01.tex b/info/ltx3pub/vt11d01.tex
new file mode 100644
index 0000000000..83fb8bc4bf
--- /dev/null
+++ b/info/ltx3pub/vt11d01.tex
@@ -0,0 +1,218 @@
+%%% ====================================================================
+%%% @LaTeX3-article{ LaTeX3-VT11-01,
+%%% filename = "vt11d01.tex",
+%%% archived = "ctan:/tex-archive/info/ltx3pub/",
+%%% author = "Mike Piff",
+%%% doc-group = "Volunteer task VT11",
+%%% title = "Backus-Naur form in {\LaTeX3}",
+%%% version = "1.03",
+%%% date = "02 April 1993",
+%%% time = "22:49:47 GMT",
+%%% status = "public, contributed.",
+%%% author-email = "M.Piff@sheffield.ac.uk",
+%%% author-address = "Department of Pure Mathematics \\
+%%% University of Sheffield \\
+%%% Hicks Building \\
+%%% Hounsfield Road \\
+%%% SHEFFIELD S3 7RH \\
+%%% England",
+%%% abstract = "",
+%%% keywords = "",
+%%% project-address = "LaTeX3 Project \\
+%%% c/o Dr. Chris Rowley \\
+%%% The Open University \\
+%%% Parsifal College \\
+%%% Finchley Road \\
+%%% London NW3 7BG, England, UK",
+%%% project-tel = "+44 171 794 0575",
+%%% project-FAX = "+44 171 433 6196",
+%%% project-email = "LTX3-Mgr@SHSU.edu",
+%%% copyright = "Copyright (C) 1993 LaTeX3 Project
+%%% and Mike Piff.
+%%% All rights reserved.
+%%%
+%%% Permission is granted to make and distribute
+%%% verbatim copies of this publication or of
+%%% coherent parts from this publication provided
+%%% this copyright notice and this permission
+%%% notice are preserved on all copies.
+%%%
+%%% Permission is granted to copy and distribute
+%%% translations of this publication or of
+%%% individual items from this publication into
+%%% another language provided that the translation
+%%% is approved by the original copyright holders.
+%%%
+%%% No other permissions to copy or distribute this
+%%% publication in any form are granted and in
+%%% particular no permission to copy parts of it
+%%% in such a way as to materially change its
+%%% meaning.",
+%%% generalinfo = "To subscribe to the LaTeX3 discussion list:
+%%%
+%%% Send mail to listserv@vm.urz.uni-heidelberg.de
+%%% with the following line as the body of the
+%%% message (substituting your own name):
+%%%
+%%% subscribe LaTeX-L First-name Surname
+%%%
+%%% To find out about volunteer work:
+%%%
+%%% look at the document vol-task.tex which can
+%%% be obtained electronically, see below.
+%%%
+%%% To retrieve project publications electronically:
+%%%
+%%% Project publications are available for
+%%% retrieval by anonymous ftp from ctan hosts:
+%%% ftp.tex.ac.uk
+%%% ftp.dante.de
+%%% ftp.shsu.edu
+%%% in the directory /tex-archive/info/ltx3pub.
+%%%
+%%% The file ltx3pub.bib in that directory gives
+%%% full bibliographical information including
+%%% abstracts in BibTeX format. A brief history
+%%% of the project and a description of its aims
+%%% is contained in l3d001.tex.
+%%%
+%%% If you only have access to email, and not ftp
+%%% You may use the ftpmail service.
+%%% Send a message just containg the word
+%%% help
+%%% to ftpmail@ftp.shsu.edu
+%%% for more information about this service.
+%%%
+%%% For offers of financial contributions or
+%%% contributions of computing equipment or
+%%% software, contact the project at the above
+%%% address, or the TeX Users Group.
+%%%
+%%% For offers of technical assistance, contact the
+%%% project at the above address.
+%%%
+%%% For technical enquiries and suggestions, send
+%%% e-mail to the latex-l list or contact the
+%%% project at the above address.",
+%%% checksum = "60525 218 1235 10548",
+%%% docstring = "The checksum field above contains a CRC-16
+%%% checksum as the first value, followed by the
+%%% equivalent of the standard UNIX wc (word
+%%% count) utility output of lines, words, and
+%%% characters. This is produced by Robert
+%%% Solovay's checksum utility.",
+%%% }
+%%% ====================================================================
+\documentstyle[bnf]{l3ms001}
+%% This needs the style option bnf.sty
+%% Latest version 1.05
+%% Date 09 Feb 1993
+%%
+\begin{document}
+\title{Backus-Naur form in \LaTeX3}
+\author{Coordinator: Mike Piff}
+\date{02 April 1993 \\
+Version 1.03}
+\maketitle
+\begin{bnf}
+\section*{Objectives}
+\begin{enumerate}
+ \item Create environments and commands to produce the symbolism of
+ BNF notation in mathematics.
+ \item Provide easy mechanisms for customizing this notation.
+ \item Provide short forms which are close to the teletype way of
+ representing BNF, by means of a $"bnf"$ environment.
+ \item Try not to disable too many features of \LaTeX\ when the short
+ forms are in operation.
+\end{enumerate}
+
+\section*{Rationale}
+
+The whole notation of Backus-Naur Form seems to be
+deeply mathematical. Some examples:
+\begin{itemize}
+ \item Use of $\lbrace$ and $\rbrace$, round and square brackets.
+ \item Variable names such as $w$ for a word, $\cal A$ for an
+ alphabet, etc.
+ \item Subscripting, eg, $w_1<X>w_2 -> w_1 w w_2$.
+ \item Use of $\Production$, $\Yields$ and $\Yields^*$ for productions
+ and yields, and $|$ for alternatives.
+\end{itemize}
+We should also consider the spacing problems that doing these
+in text mode would entail.
+
+The BNF notation is really part of the mathematical notation for
+specifying a phrase structure grammar. It is a means of simplifying
+groups of productions into one compound production, and thus
+decreasing the apparent complexity of its structure. This is the
+reason why things should be set up so that BNF is only available
+within maths mode.
+
+It is also perhaps true that BNF should not be considered in isolation
+from the requirements of the body of mathematical notations into which
+it fits. There is also a clear link with the task looking at short forms
+in mathematics. One point which was discovered in writing a preliminary
+version of the macros was the dangers involved in making $"-"$ active in
+mathematics, because of the way long arrows had been defined in plain \TeX!
+
+\section*{Specification}
+
+The following should happen in maths mode.
+ \begin{enumerate}
+ \item The environment $"NonTerminal"$ should produce the text
+ between $"\begin{NonTerminal}"$ and $"\end{NonTerminal}"$
+ enclosed between angle brackets, thus:
+ $$<enclosed text>.$$
+ Spaces in the enclosed text should be respected, but not made
+ visible. The maths font used between the angle brackets should
+ be customizable through the command $"\NonTerminalStyle"$.
+ The default should be $"fam0"$, that is, ordinary roman.
+ \item The command $"\Terminal"<char>"string"<char>$ should produce
+ the enclosed string exactly as if it had been produced by \LaTeX'
+ $"\verb*"$ command, except that it is preceded and followed
+ by the expansion of $"\PreTerminal"$ and $"\PostTerminal"$
+ respectively.
+ \item The environments $"Star"$, $"Optional"$ and $"Bracket"$
+ should put paired braces, square brackets and round brackets
+ respectively
+ around the enclosed text.
+ Spaces of $"\StarSpace"$, $"\OptionalSpace"$ and $"\BracketSpace"$
+ respectively should precede and follow the environment.
+ \item The commands $"\Production"$, $"\Yields"$ and $"\OR"$
+ should produce the special symbols $->$, $=>$ and $|$
+ respectively, the first two being relations and the last an
+ operator. The $"\Empty"$ command should produce the
+ symbol $\Empty$.
+ \item A special environment $"bnf"$ should have the effect of making
+ the short forms of these commands available in maths mode.
+ This environment should be capable of spanning many paragraphs,
+ and should only affect the meaning of certain symbols in maths
+ mode. These are:
+ $$"`",`"`,"(",")","<",">","[","]","-","=","|","@".$$
+ The effects should be as follows.
+ \begin{enumerate}
+ \item $"`string`"$ and $`"string"`$ should produce the effect
+ of a $"\Terminal"$ command.
+ \item $"<"N">"$ should produce the effect of a $"NonTerminal"$
+ environment.
+ The following symbols should be rejected as part of
+ $N$, so as to allow some error detection.
+ $$"[","]","(",")","|","<","=".$$
+ The symbol $"-"$ should be interpreted as a hyphen.
+
+ The symbols $@<$ and $@>$ should be made available
+ as $"\lt"$ and $"\gt"$, or alternatively as $"@<"$
+ and $"@>"$.
+ \item $"("E")"$ and $"["E"]"$ should produce the same effects as
+ the $"Bracket"$ and $"Optional"$ environments.
+ \item $"->"$ and $"=>"$ should produce $->$ and $=>$,
+ otherwise $"-"$ and $"="$ should behave normally.
+ $"|"$ should produce $|$.
+ \item $"{@"E"}"$ should produce ${@E}$.
+ It would be preferable for $"{"E"}"$ to produce this effect,
+ but that would probably entail not allowing braces to appear
+ in a $"bnf"$ environment other than for this purpose.
+ \end{enumerate}
+ \end{enumerate}
+\end{bnf}
+\end{document}