W3C home > Mailing lists > Public > public-qt-comments@w3.org > January 2004

Re: [XQuery] A.2.2 Lexical Rules: pattern conflicts

From: <scott_boag@us.ibm.com>
Date: Mon, 26 Jan 2004 01:15:56 -0500
To: Michael Dyck <jmdyck@ibiblio.org>
Cc: public-qt-comments@w3.org
Message-ID: <OF7C79A790.6F78D4A7-ON85256E27.001FFAF6-85256E27.0022585F@lotus.com>

Hi Michael.  Your last call comment in [1] has been given the IDs 
qt-2004Jan0241-01, qt-2004Jan0241-02, qt-2004Jan0241-03, and 
qt-2004Jan0241-04.  This is the official response from the XQuery and XSLT 
working groups.

> OPERATOR:
> conflict between QName and all the single-keyword patterns
> (e.g., "external", "skip", "default").
> (Luckily, this appears to have an easy fix: simply delete QName
> from the state: I don't think it's valid here.)

This has been classified as an error and has been fixed by removing QName 
(along with several other you name in another mail) from the OPERATOR 
state.

> KINDTEST:
> conflict between QName and the keywords "context" & "global".

This has been classified as an error and has been fixed by removing 
"context" and "global" from the KINDTEST state.

> EXPR_COMMENT:
> conflict between ExprCommentContent, PragmaContents,
> and ExtensionContents.
> (Fix: They're all defined to be Char, so you could just replace them
> with Char in the EBNF and here.)
> EXT_KEY:
> conflict between QName and the keywords "pragma" & "extension".

These have been classified as errors and have been fixed by some general 
rework of the extension EBNF and the creation of a EXT_CONTENT state.  We 
choose to keep the productions wrapped around Char for exposition 
purposes.  The relevant productions and tables will now read (hope this 
formats enough to be understandable):

[1]     Pragma     ::=          "(::" "pragma" QName ExtensionContents* 
"::)"   /* gn: parens */
[2]     MUExtension        ::=          "(::" "extension" QName 
ExtensionContents* "::)"        /* gn: parens */
[3]     ExprComment        ::=          "(:" (ExprCommentContent | 
ExprComment)* ":)"      /* gn: comments */
[4]     ExprCommentContent         ::=          Char    /* gn: parens */
[5]     ExtensionContents          ::=          Char

The EXPR_COMMENT State
    Pattern     Transition To State
    ":)"                         popState()
    "(:"                       EXPR_COMMENT  pushState()
    "(::"                      EXT_KEY   pushState()
    ExprCommentContent         (maintain state)

The EXT_CONTENT State
    Pattern                   Transition To State
    "::)"                                     popState()
    ExtensionContents    (maintain state)

The EXT_KEY State
    Pattern                                Transition To State
    "pragma", "extension"                  EXT_NAME

The EXT_NAME State
    Pattern     Transition To State
    QName       EXT_CONTENT

Thank you for raising the comment.  I would be grateful if you would 
confirm that this provides an adequate resolution.

-Scott Boag

[1] 
http://lists.w3.org/Archives/Public/public-qt-comments/2004Jan/0241.html
Received on Monday, 26 January 2004 01:16:01 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 15:45:16 UTC