- From: Norm Tovey-Walsh <norm@saxonica.com>
- Date: Tue, 11 Jan 2022 19:08:14 +0000
- To: Dave Pawson <dave.pawson@gmail.com>
- Cc: public-ixml@w3.org
- Message-ID: <m28rvmdqrj.fsf@saxonica.com>
>> Attached, markdown. As per my action todays meeting. >> Please tell me if (where and how) it is in error. I think Michael’s second diagram, with two levels, is closer to what I was thinking about in the meeting. I think it’s important to keep in mind that implementors and users are going to have quite different views. I don’t think the user view is all that difficult to explain: You hand your processor an ixml grammar (in whatever form(s) your processor supports) and an input (a sequence of characters). It returns a data model. The conformant option is to return an XML data model, but it might be able to return others. “Returns” might mean hand me an XDM or it might mean hand me a serialized string or it might mean scribble the serialized string onto disk. For implementors, it’s a little more recursive. In principle, I start with the ixml grammar for ixml and I somehow use that to build a parser that will parse ixml grammars. (I bootstrapped the process by writing some code to read the XML format of the ixml grammar and build a parser from that.) Having used an ixml grammar to make a parser for ixml, I take the ixml the user gave me and I interpret that with the parser for ixml that I generated from the XML format of the ixml grammar and I use that to build a parser for the users grammar. I interpret their input with that grammar and I get a (set of) parse trees. I serialize one of those. I don’t actually think we need to describe this process in great detail anywhere. But it’s sometimes a little disorienting to work on. “Right, I’m at the breakpoint I added to the Ixml.getGrammar() method, but am I building the parser for ixml, or am I building the parser for the user’s grammar? Where am I going and why am I in this basket?” Be seeing you, norm -- Norm Tovey-Walsh Saxonica
Received on Tuesday, 11 January 2022 19:19:44 UTC