- From: John Lumley <john@saxonica.com>
- Date: Tue, 1 Feb 2022 17:01:05 +0000
- To: public-ixml@w3.org
- Message-ID: <92e7a788-35a8-32cf-cb14-dd8243ae6308@saxonica.com>
On 01/02/2022 16:49, John Lumley wrote:
>
> One of the issues I raised was how would 'specially marked' comments
> scope in the parsed XML for a grammar? I've just run a very small
> test, using my 'annotated' XPath.ixml which starts:
>
> XPath: s?, Expr, s?.
>
> {# jl:opt rule} ParamList: {#jl:opt ruleStart} Param, ( -',',
> {#jl:opt inBracket} Param )*.
> Param: -'$', EQName, TypeDeclaration?.
>
> ....
>
> If we pass this through Steven's processor against the grammar for
> IXML we get:
>
> <ixml ixml:state="ambiguous" xmlns:ixml="http://invisiblexml.org/NS">
> .......
>
> so it seems that within a rule the comments scope within the tree, in
> appropriate sibling position. For those before a rule start, the
> comment is, unsurprisingly, in the preceding-sibling::*[1] position. I
> think anyone who's using this for preprocessing via a rule-rewriting
> operation through the XML representation could live with this small
> additional complexity.
>
And the comments do also nest in the XML tree:
{# jl:opt rule} ParamList: {#jl:opt ruleStart} Param, ( -',',
{#jl:opt inBracket {#jl:nest Nested}} Param )*.
becomes:
*<comment># jl:opt rule</comment>*
<rule name='ParamList'>
*<comment>#jl:opt ruleStart</comment>*
<alt>
<nonterminal name='Param'/>
<repeat0>
<alts>
<alt>
<literal tmark='-' sstring=','/>
*<comment>#jl:opt inBracket <comment>#jl:nest Nested</comment> </comment>*
<nonterminal name='Param'/>
</alt>
</alts>
</repeat0>
</alt>
</rule>
--
*John Lumley* MA PhD CEng FIEE
john@saxonica.com
Received on Tuesday, 1 February 2022 17:01:28 UTC