- From: Norm Tovey-Walsh <norm@saxonica.com>
- Date: Sun, 10 Apr 2022 09:06:21 +0100
- To: ixml <public-ixml@w3.org>
- Message-ID: <m24k312vrj.fsf@Hackmatack.fritz.box>
Hi folks, I found myself getting a little impatient for a grammar that fixes the open bugs and accepted enhancements, so I took it upon myself to craft one. I thought it might be interesting to others, so here it is. The full grammar is attached, after an annotated diff from the version in the 2022-03-29 spec. 1c1,7 < ixml: s, rule+S, s. --- > ixml: prolog, s, rule++WS, s. I’ve renamed “S” to “WS” (issue #62) and implemented “**” for repeat0 and “++” for repeat1 (issue #59). > prolog: s, (version, s)?, nsdecl**s . > version: -"ixml", WS, -"version", WS, -string, s, -'.' . > nsdecl: -"namespace", WS, prefix, s, -["=:"], s, uri, -"." . > @prefix: -ncname. > @uri: -string. I’ve speculatively included both the version (issue #63) and namespace (issue #66) proposals, partly to see if they add a lot of complexity. They don’t really. In practice, I’ve implemented something slightly different from the current namespaces proposal. I’ve used “uri” instead of “nshref” for the namespace URI. I think the string “href” tends to give the impression you can or should dereference it and that’s not usually the impression one wants to give for namespace names. 4c10 < -S: (whitespace; comment)+. --- > -WS: (whitespace; comment)+. Issue #62. 14,15c20,21 < alts: alt+(-[";|"], s). < alt: term*(-",", s). --- > alts: alt++(-[";|"], s). > alt: term**(-",", s). 23,24c29,32 < repeat0: factor, -"*", s, sep?. < repeat1: factor, -"+", s, sep?. --- > repeat0: factor, -"*", s; > factor, -"**", sep, s. > repeat1: factor, -"+", s; > factor, -"++", sep. Issue #59 29c37,38 < @name: namestart, namefollower*. --- > @name: (ncname, ':')?, ncname. > -ncname: namestart, namefollower*. This change is for the namespaces proposal. I’ve gone down a slightly different route, but I think the result is the same, so it’s just a matter of taste, really. I like the similarity with other specs that comes from the use of an “ncname” nonterminal. The namespaces proposal also suggests making a space after the “:” in a rule mandatory. I don’t believe that’s necessary. There’s nothing ambiguous about prefix:local-name:prefix:rhs-nonterminal. I think it’d be visually improved by a space after the seond colon or by using an “=” instead of a colon, but it’s fine as it is. 42c51 < dchar: ~['"'; #a; #d]; --- > -dchar: ~['"'; #a; #d]; 44c53 < schar: ~["'"; #a; #d]; --- > -schar: ~["'"; #a; #d]; 53c62 Issues #63 and #66 need an explicit “-” on the dchar and schar rules. < -set: -"[", s, member*(-[";|"], s), -"]", s. --- > -set: -"[", s, member**(s, -[";|"], s), s, -"]", s. Fix #57. Be seeing you, norm
-- Norm Tovey-Walsh Saxonica
Attachments
- application/octet-stream attachment: proposed.ixml
Received on Sunday, 10 April 2022 08:22:25 UTC