Lists Home |
Date Index |
- From: John Cowan <firstname.lastname@example.org>
- To: XML Dev <email@example.com>
- Date: Tue, 04 Aug 1998 15:42:04 -0400
Chris Hubick wrote:
> Because you can use a PEReferences to form a PEDecl, and you
> need to have processed a PEDecl before a PEReference to it can be
> processed. So I can't just scroll (unidirectionally) through a whole
> document just processing PEReferences, because I need to have processed
> the PEDecl's for those first, and I cant just scroll through processing
> PEDecl's, because they could be created using PEReferences. All I am
> saying is that this is hard, not easy.
This lends itself perfectly to the standard approach for preprocessors
like the C preprocessor, but is even simpler because there are no
macro arguments and no recursions. The only requirement is that no
PE be used before it is defined, which is guaranteed by the WFC
and VC named "Entity Declared".
A lower "lexical" level detects PE references,
looks up the replacement text in a table, and returns it instead.
Replacement texts can't contain PE references (PE declarations can,
but the references are resolved at entity declaration time), so it isn't
even necessary to push back the replacement text onto the input stream.
A higher "syntactic" level processes PE declarations (from which
PE references have already been removed) and enters the replacement
text in the lookup table used by the lower level. Everything not
a PE declaration is sent to the output stream.
John Cowan http://www.ccil.org/~cowan firstname.lastname@example.org
You tollerday donsk? N. You tolkatiff scowegian? Nn.
You spigotty anglease? Nnn. You phonio saxo? Nnnn.
Clear all so! 'Tis a Jute.... (Finnegans Wake 16.5)
xml-dev: A list for W3C XML Developers. To post, mailto:email@example.com
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:firstname.lastname@example.org the following message;
To subscribe to the digests, mailto:email@example.com the following message;
List coordinator, Henry Rzepa (mailto:firstname.lastname@example.org)