[Bug 1668] New: [FS] technical: 4.8.1 FLWOR expressions: non-parameterized normalization

http://www.w3.org/Bugs/Public/show_bug.cgi?id=1668

           Summary: [FS] technical: 4.8.1 FLWOR expressions: non-
                    parameterized normalization
           Product: XPath / XQuery / XSLT
           Version: Last Call drafts
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Formal Semantics
        AssignedTo: simeon@us.ibm.com
        ReportedBy: jmdyck@ibiblio.org
         QAContact: public-qt-comments@w3.org


4.8.1 FLWOR expressions

Norm
[[ FLWORClause ]]_FLWOR(Expr)

I don't understand why you're using a parameterized []-form. I can see how
you might need it if you were normalizing the 4.8 syntax, but since you're
assuming an easier syntax, the parameter shouldn't be necessary.

If we define
    FLWORExpr_or_return ::= FLWORExpr | "return" Expr
(find a better name if you like) then we can express the assumed EBNF as:
    FLWORExpr ::= (ForClause | LetClause | WhereClause | OrderByClause)
                  FLWORExpr_or_return
Then you can:
(a) drop Norm / rule (2|3)

(b) recast rule (4|5|6) (and 4.8.4 / Norm / rule 1) as non-parameterized
    rules:

    rule 4:
        [[ <one many-variable ForClause> FLWORExpr_or_return ]]_Expr
        ==
        <many single-var Forclauses> return [[ FLWORExpr_or_return ]]_Expr

    rule 5:
        (very similar)

    rule 6:
        [[ where Expr FLWORExpr_or_return ]]_Expr
        ==
        if ( [[ Expr ]]_Expr ) then [[ FLWORExpr_or_return ]]_Expr else ()

    4.8.4 / Norm / rule 1:
        [[ stable? order by OrderSpecList FLWORExpr_or_return ]]_Expr
        ==
        [[ OrderSpecList ]]_OrderSpecList return [[ FLWORExpr_or_return ]]_Expr

(c) provide a "base case" rule:
        [[ return Expr ]]_Expr
        ==
        [[ Expr ]]_Expr

Received on Saturday, 16 July 2005 23:55:40 UTC