Re: How is ambiguity defined?

I also seem to recall (unreliably) that implementations are not bound to 
return all possible ambiguous results, only to note that there is an 
ambiguity: do we actually have a situation where different parsers would 
disagree about whether the parse was ambiguous, without having to agree on 
what exactly the nature of that ambiguity is?  Or do we have to say that it 
is implementation dependent on whether or not ambiguities are detected?


The current wording is


Processors must accept and parse any conforming grammar, and produce at 
least one parse of any input that matches the grammar starting at the root 
symbol. If more than one parse results, one is chosen; it is not defined 
how this choice is made, but the resulting parse should be marked as 
ambiguous by including the attribute ixml:state="ambiguous" on the document 
element of the serialisation.


Since we don't normatively demand any particular parsing algorithm, the 
only restrictions on the algorithm are therefore:
* It must find at least one parse of any input that matches the grammar
* if it finds more than one parse, it must report that fact.


So I think the fact that Michael and I report differently about


   s: a*; b*.


is covered, since we are using different algorithms.


Steven

Received on Thursday, 6 January 2022 16:13:32 UTC