- From: <bugzilla@wiggum.w3.org>
- Date: Sat, 16 Jul 2005 23:52:42 +0000
- To: public-qt-comments@w3.org
- Cc:
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