This is the mail archive of the docbook@lists.oasis-open.org mailing list for the DocBook project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]