Lists Home |
Date Index |
- From: William Lindsey <firstname.lastname@example.org>
- To: email@example.com
- Date: Sat, 13 Mar 1999 08:43:37 -0700 (MST)
On Thursday, 11 Mar 1999, Chris Maden wrote:
> The parentheses are only character data.
> I don't think that Lisp could be made SGML compliant; the delimiters
> could be redefined, but as Steve DeRose notes in _The SGML FAQ Book_,
> there are some limits to the flexibility of the redefinitions, since
> some delimiter roles are overloaded. Also, Lisp doesn't have the
> equivalent of start-tag close, and you can only omit tagc if the next
> character is stago or etago (ISO 8879:1986, clause 188.8.131.52) which it
> wouldn't be when you get to the leaves of a structure.
While it is true that not all lisp can be made SGML compliant, it
is possible to define a concrete syntax (using parens as tag
delimiters), and establish a set of conventions such that you
can create documents that are simultaneously R5RS Scheme
programs and valid SGML documents.
The close paren works fine as NESTC/NET if you treat the starttag
as a procedure which, when evaluated, produces a procedure
that will evaluate the element's contents. You can define
a procedure named "!ELEMENT" which will create those starttag
procedures when the DTD is evaluated.
I played around with this idea a bit. You can see a working example
with the SGML declarations, DTD (which also uses Scheme syntax),
and Scheme bootstrap code (or the rules for evaluating *x-expressions*)
xml-dev: A list for W3C XML Developers. To post, mailto:firstname.lastname@example.org
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To (un)subscribe, mailto:email@example.com the following message;
To subscribe to the digests, mailto:firstname.lastname@example.org the following message;
List coordinator, Henry Rzepa (mailto:email@example.com)