W3C home > Mailing lists > Public > public-qt-comments@w3.org > November 2016

[Bug 30017] New: UpdatingFunctionCall use of PrimaryExpr makes the grammar ambiguous.

From: <bugzilla@jessica.w3.org>
Date: Sun, 20 Nov 2016 15:39:08 +0000
To: public-qt-comments@w3.org
Message-ID: <bug-30017-523@http.www.w3.org/Bugs/Public/>

            Bug ID: 30017
           Summary: UpdatingFunctionCall use of PrimaryExpr makes the
                    grammar ambiguous.
           Product: XPath / XQuery / XSLT
           Version: Last Call drafts
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: major
          Priority: P2
         Component: Update 3.0
          Assignee: john.snelson@marklogic.com
          Reporter: msclrhd@gmail.com
        QA Contact: public-qt-comments@w3.org
  Target Milestone: ---

UpdatingFunctionCall is defined in Update Facility 3.0 as:

    [207] UpdatingFunctionCall ::= "invoke" "updating" PrimaryExpr "("
(ExprSingle ("," ExprSingle)*)? ")"

However, PrimaryExpr contains FunctionCall. This means that for:

    invoke updating test()

'test()' will be interpreted as FunctionCall. That is:

    UpdatingFunctionCall: 'invoke updating'
        PrimaryExpr/FunctionCall: 'test()'
        [error]: missing token '('

It also does not make sense for this to be an OrderedExpr or Constructor (which
are valid according to the grammar).

It would make more sense to define this similar to the XQuery 3.1

    [127] ArrowFunctionSpecifier ::= EQName | VarRef | ParenthesizedExpr

For example:

    UpdatingFunctionCall ::= "invoke" "updating" UpdatingFunctionCallSpecifier
"(" (ExprSingle ("," ExprSingle)*)? ")"
    UpdatingFunctionCallSpecifier ::= EQName | VarRef | ParenthesizedExpr

You are receiving this mail because:
You are the QA Contact for the bug.
Received on Sunday, 20 November 2016 15:39:15 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 16:58:03 UTC