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