lexer ambiguity in SPARQL

Matching "abcd:" against QName,
  [66]    QName    ::=    QNAME | QNAME_NS
  [69]    QNAME_NS    ::=    NCNAME_PREFIX? ':'
  [70]    QNAME    ::=    NCNAME_PREFIX? ':' NCNAME?
I get two possible solutions:
  QNAME_NS and QNAME

The only reference to QName is in
  [65]    IRIref    ::=    Q_IRI_REF | QName
so I think we can just change QNAME to not have the NCNAME optional.
  [70]    QNAME    ::=    NCNAME_PREFIX? ':' NCNAME

In some sense, lexer ambiguities don't exist in lex; the winner is the
first, longest production to match the input string, but it does make
life harder for parser writers.
-- 
-eric

office: +1.617.258.5741 NE43-344, MIT, Cambridge, MA 02144 USA
cell:   +1.857.222.5741

(eric@w3.org)
Feel free to forward this message to any list for any purpose other than
email address distribution.

Received on Wednesday, 27 December 2006 20:42:18 UTC