From walt@netcom.com Thu Aug 27 17:50:37 1992
Received: from netcom.netcom.com by dkuug.dk via EUnet with SMTP (5.64+/8+bit/IDA-1.2.8)
	id AA27695; Thu, 27 Aug 92 17:50:37 +0200
Received: by netcom.netcom.com (4.1/SMI-4.1)
	id AA23918; Thu, 27 Aug 92 08:49:39 PDT
Date: Thu, 27 Aug 92 08:49:39 PDT
From: walt@netcom.com (Walt Brainerd)
Message-Id: <9208271549.AA23918@netcom.netcom.com>
To: SC22WG5@dkuug.dk
Subject: Processing Words, Part XLIV
X-Charset: ASCII
X-Char-Esc: 29

I have been trying to remain neutral in this discussion and
only pose interesting questions.  But I think the huge pile
of stuff that Keith just sent might have convinced me.

It now seems to me that those who want to use Frame (including
possibly the editorial committee) can use its wonderful features
to convert from a markup to Frame source and vice versa and
allow there to be a universally readable form available for
anybody for whatever uses.

Len and Jerry (inadvertently, I assume) reminded me of another
sort of situation that should be accommodated.  If the Frame
source is converted to some ASCII representation for those
who want to look at the document, how (for example) does one
search for all of the occurrences of "IF" in a program example,
or all of the occurrences of "default" in the syntax rules (only)
when all the "tags" are removed?

Here is what the source for the STOP statement looks like.
A simple sed script converts it to true troff (or TeX,
or Frame, presumably).

Len and Dick were cheating, of course; there must be something
in there that indicates that BNF names are in italics (because
there is a mixture of fonts in the syntax rules).  I believe the
source document must contain both "style" tags (headings, paragraphs,
etc.) and some actual typographic information (because, for example,
the mathematical integral sign is not an ascii character).

The names (heading, is, or, N, P, paragraph) can be changed and
the punctuation ("." and "\") can be changed.

                - - - - -  Begin example - - - - -

.! Section 8.4
.heading 2 STOP Statement

.! Rule 842
.is stop-stmt STOP [ \Nstop-code\P ]

.! Rule 843
.is stop-code \Nscalar-char-constant\P
.or \Ndigit\P [ \Ndigit\P [ \Ndigit\P [ \Ndigit\ [ \Ndigit\P ] ] ] ]

.constraint
\Nscalar-char-constant\P
must be of type default character.

.paragraph
Execution of a STOP statement causes termination
of execution of the executable program.
At the time of termination, the stop code, if any,
is available in a processor-dependent manner.
Leading zero digits are not significant.

                - - - - -  End of example - - - - -

This is, of course, very similar to Len's example.

                - - - - -  Begin example - - - - -

<* sect 8.4>
<h2> STOP statement

<* rule 842>
<bnfdef> stop-stmt
<bnfalt> <lit>STOP</> [ stop-code ]

<* rule 843>
<bnfdef> stop-code
<bnfalt> scalar-char-constant
<bnfalt> digit [ digit [ digit [ digit [ digit ]]]]

<constr> <bnf>scalar-char-constant</> must be of type default character.

<* para 1>
Execution of a STOP statement causes termination of execution of the
executable program.  At the time of termination, the stop code, if any,
is available in a processor-dependent manner.  Leading zero digits in
the stop code are not significant.

                - - - - -  End of example - - - - -

Keith says that it is "trivial" for Word or Frame to generate
Annex D.  I would love to see how that is done.  I do not think
it can be generated without other software of some kind (there is no
source text for Annex D; it is all generated from the source text
of the body of the standard).  The question still is:
how do these systems allow one to get at the information needed
to write the "tool" to generate Annex D?
