- From: Norm Tovey-Walsh <norm@saxonica.com>
- Date: Tue, 07 Nov 2023 13:29:44 +0000
- To: "C. M. Sperberg-McQueen" <cmsmcq@blackmesatech.com>
- Cc: public-ixml@w3.org
- Message-ID: <m2h6lxheii.fsf@saxonica.com>
"C. M. Sperberg-McQueen" <cmsmcq@blackmesatech.com> writes:
> Does the spec anywhere address the meaning of a grammar like the
> following?
>
> S = -S > alias; 'a'.
>
> It seems most plausible to read the first branch of the right-hand side
> as saying that if that branch is taken, the nonterminal is hidden, which
> means the alias is ignored. Since the mark in the right-hand side of
> the rule cannot be overridden by any other mark, the subtree it heads
> will never be serialized as an element or attribute, so the alias can
> never be used.
I think that’s correct. My mental model for the renaming is that it’s
“part of” the name. Since S>alias will never be serialized, the fact
that it’s aliased is irrelevant.
> In this grammar, the alias thus appears to be in effect
> an alternative syntax for a comment.
For comments that consist of a single sequence of name characters, I
suppose that’s one way to look at it :-)
> Note that in the following grammar, by contrast, the alias does have an
> effect:
>
> A = S.
> -S > sentence = ^S; 'a'.
>
> The parse trees for the sentence "a" include:
>
> <A>a</A>
> <A><sentence>a</sentence></A>
> <A><sentence><sentence>a</sentence></sentence></A>
> <A><sentence><sentence><sentence>a</sentence></sentence></sentence></A>
Yes. A test I fail at the moment, alas. Please make a pull request to
add these tests (or tests like them) to the test suite.
> Might it be a good idea for the spec to address the interaction between
> the mark and the alias explicitly?
Yes, I think so.
Be seeing you,
norm
--
Norm Tovey-Walsh
Saxonica
Received on Tuesday, 7 November 2023 13:36:16 UTC