[Bug 29501] [xp31] Colon is not in the list of non-terminal symbols

https://www.w3.org/Bugs/Public/show_bug.cgi?id=29501

--- Comment #3 from Michael Kay <mike@saxonica.com> ---
MapConstructor-029 is actually quite interesting, because the wildcard *:b is
not one terminal symbol, but three (even though whitespace is not allowed). If
it were one terminal symbol, then it would be chosen in preference to "*" by
the "longest token" rule. But it isn't, so one could legitimately argue:

Given the input *:b:b

(a) the first token is unambiguously "*"

(b) the second token is unambiguously ":"

(c) the third token can be either the NCName "b" or the QName "b:b". Both are
"consistent with the EBNF" in the sense that there is a grammatical production
that accepts this token as a continuation - a Wildcard accepts the NCName,
while a MapConstructorEntry accepts the QName. The QName is longer, so this
should be chosen, meaning that the construct parses as map{*: (b:b)}

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

Received on Tuesday, 23 February 2016 17:00:25 UTC