This is the mail archive of the
docbook@lists.oasis-open.org
mailing list for the DocBook project.
Re: Proposal #2 for BNF/EBNF markup
/ "Eve L. Maler" <Eve.Maler@east.sun.com> was heard to say:
| At 11:39 AM 4/6/00 -0400, Norman Walsh wrote:
| Sorry, I didn't catch that this paragraph referred to both 'nt' and
| 'constraint'. Yes, constraint should be empty.
|
| (You're already incorporating this into DocBook, right? Am I off the hook
| for doing any more designing, then? :-)
Well, I'm writing a customization layer that implements the
things we've been talking about. You're off the hook up to the
point where you think my implementation is wrong :-)
Here's how it stands today:
<!ENTITY % ebnf.inline.hook "|nonterminal">
<!ENTITY % ebnf.block.hook "|productionset|constraintdef">
<!ENTITY % docbook PUBLIC "-//OASIS//DTD DocBook XML V4.0//EN"
"http://www.oasis-open.org/docbook/xml/4.0/docbookx.dtd">
%docbook;
<!ELEMENT productionset
((%formalobject.title.content;)?, (production|productionrecap)+)>
<!ATTLIST productionset
%common.attrib;
%role.attrib;
>
<!ELEMENT production (lhs, rhs, constraint*)>
<!ATTLIST production
%idreq.common.attrib;
%role.attrib;
>
<!ELEMENT lhs (#PCDATA)>
<!ATTLIST lhs
%common.attrib;
%role.attrib;
>
<!ELEMENT rhs (#PCDATA|nonterminal|lineannotation|sbr)*>
<!ATTLIST rhs
%common.attrib;
%role.attrib;
>
<!-- Allowed to be an xpointer: you can point to non-terminals in -->
<!-- other specifications. -->
<!ENTITY % required-XLink-to-production-ID "def CDATA #REQUIRED">
<!ELEMENT nonterminal (#PCDATA)>
<!ATTLIST nonterminal
%common.attrib;
%required-XLink-to-production-ID;
%role.attrib;
>
<!-- Must be an IDREF: constraints identified in your spec must be -->
<!-- represented in your spec. -->
<!ENTITY % required-IDREF-to-constraintdef-ID "linkend IDREF #REQUIRED">
<!ELEMENT constraint EMPTY>
<!ATTLIST constraint
%common.attrib;
%required-IDREF-to-constraintdef-ID;
%role.attrib;
>
<!-- Must be an IDREF: you can only recap productions in your spec -->
<!ENTITY % required-IDREF-to-production-ID "linkend IDREF #REQUIRED">
<!ELEMENT productionrecap EMPTY>
<!ATTLIST productionrecap
%common.attrib;
%role.attrib;
%required-IDREF-to-production-ID;
>
<!ELEMENT constraintdef (title, (%admon.mix;))>
<!ATTLIST constraintdef
%idreq.common.attrib;
%role.attrib;
>
What do you think?
Be seeing you,
norm
--
Norman Walsh <ndw@nwalsh.com> | To others we are not ourselves but
http://www.oasis-open.org/docbook/ | a performer in their lives cast
Chair, DocBook Technical Committee | for a part we do not even know we
| are playing.--Elizabeth Bibesco