Do I need to use a validating parser?

Lars Marius Garshol larsga at
Thu May 6 23:36:49 BST 1999

* Joshua E. Smith
| Nonetheless, always up for the academic discussion, you can express
| the entire syntax of the LISP programming language in less than a
| page of DTD, I bet. 

You can, but then you lose some of the really interesting things, such
as read-macros and dispatching characters. It's hard to see any valid
equivalents of those.

For good examples of read-macros, see


* Steve Oldmeadow
| I don't know LISP but how would you express scoping rules such as a
| locally defined variable can only be accessed within the block it is
| defined such as in Java?

Like type-checking this is generally considered to be semantics and so
one wouldn't normally expect a grammar to be able to express this. (In
fact, I don't think it's possible using a context-free grammar.)

| I came to the conclusion that XML added very little and that you
| were better off just using the traditional tools to generate a
| parser for your language. 

I certainly have to agree here. I think I prefer the approach taken by
someone else recently: parse the language syntax into XML and then
apply stylesheets and parsers to the XML for documentation,
pretty-printing and whatever.

| One thing I toyed with was whether a yacc like tool would be useful
| for XML-ish languages, in other words it would help you generate
| parsers for languages that are marked up using XML. 

This is probably possible, and I think this is what some of the
alphaWorks tools do. Also, I already have an unreleased Python package
which can turn some kinds of XML documents into sets of elements using
some simple rules.

This completely does away with the entire application-specific parser
notion and just lets you use the objects. It doesn't work for all
kinds of documents, though, but I think it might be possible to extend
it to do so.

--Lars M.

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as: and on CD-ROM/ISBN 981-02-3594-1
To (un)subscribe, mailto:majordomo at the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at

More information about the Xml-dev mailing list