completed A-621-03 (use EnclosedExpr more widely in the xquery31 grammar)

> ACTION A-621-03: Michael Dyck to update the grammar for empty
> expressions in braces.

Done. I changed the grammar and also the conversion-to-XQueryX code.

As I stated in an earlier post, the WG decision on this matter was
not very clear. So here are the specific changes I made to the grammar.
Please check if these are the desired changes.

-------------------------------------------------------------------
The following grammar edits do not change the set of valid queries.

     In:
         CompAttrConstructor
         CompPIConstructor
     I changed:
         "{" Expr? "}"
     to:
         EnclosedExpr


     In:
         CompElemConstructor
     I changed:
         "{" ContentExpr? "}"
     to:
         EnclosedContentExpr

------------------------------------------------------------------
The following grammar edits *do* change the set of valid queries,
and so should presumably have corresponding tests created/altered.

     In:
         CatchClause
         ValidateExpr
         OrderedExpr
         UnorderedExpr
         CompDocConstructor
         CompTextConstructor
         CompCommentConstructor
     I changed:
         "{" Expr "}"
     to:
         EnclosedExpr


     In:
         TryClause
     I changed:
         "{" TryTargetExpr "}"
     to:
         EnclosedTryTargetExpr


     In:
         CompNamespaceConstructor
     I changed:
         "{" PrefixExpr "}"
     to:
         EnclosedPrefixExpr
     and changed:
         "{" URIExpr "}"
     to:
         EnclosedURIExpr

-------------------------------------------------------------------
There are a few remaining occurrences of braced Exprs (outside of EnclosedExpr):

     In:
         CompElemConstructor
         CompAttrConstructor
         CompPIConstructor
     I did NOT change:
         "{" Expr "}"
     because those are 'name expressions',
     which cannot legally yield empty sequence.


     In:
         ExtensionExpr
     I did NOT (ultimately) change:
         "{" Expr? "}"
     because an omitted Expr has different semantics there than it does
     elsewhere. (See
     https://lists.w3.org/Archives/Public/public-xsl-query/2015Nov/0000.html)


     Also, in
         CurlyArrayConstructor
     I did NOT change
         "{" Expr? "}"
     because it wasn't in the list of expressions to 'consider',
     despite that it presumably it has the "{} means {()}" semantics.
     (I say "presumably" because I don't think the spec actually defines
     the meaning of "array {}".)

-Michael

Received on Monday, 2 November 2015 23:45:14 UTC