- From: Michael Kay <mike@saxonica.com>
- Date: Sat, 26 Sep 2015 19:45:39 +0100
- To: Michael Dyck <jmdyck@ibiblio.org>
- Cc: public-xsl-query@w3.org
There had been a suggestion that the name StringConstructor was too easily confused with the xs:string constructor function.
Michael Kay
Saxonica
> On 26 Sep 2015, at 18:51, Michael Dyck <jmdyck@ibiblio.org> wrote:
>
> On 15-09-25 05:33 PM, Michael Dyck wrote:
>>> ACTION A-617-02: ETA 2015-09-29 Michael Dyck to write a grammar for
>>> string templates with names and delimiters he chooses.
>>
>> Done, built the applets, committed stuff.
>
> Specifically, here are the changed and new productions:
>
> [128] PrimaryExpr ::=
> ... | ArrayConstructor | StringConstructor | UnaryLookup
>
> I decided on "StringConstructor" rather than "StringTemplate", because:
> (a) The syntax already has the concept of "Constructor", and this new thing
> seems to fit in well enough with that, so there didn't seem much benefit to
> introducing the new term "Template".
> (b) Makers of XQuery-based templating systems might appreciate not having to
> make the distinction between their templates and StringTemplate.
>
> (To emphasize the "Constructor" connection, I inserted StringConstructor
> into the PrimaryExpr production after MapConstructor and ArrayConstructor,
> rather than at the very end.)
>
> [177] StringConstructor ::= "@@[" StringConstructorContent "]@@"
> [178] StringConstructorContent ::= StringConstructorChars
> (StringConstructorInterpolation StringConstructorChars)*
> [179] StringConstructorChars ::=
> (Char* - (Char* ('@@{' | ']@@') Char*)) /* ws: explicit */
> [180] StringConstructorInterpolation ::= "@@{" Expr "}@@"
>
> For the provisional delimiters, I picked the @@ ones, because they're
> visible and I know they can't cause problems like ambiguity or change of
> tokenization for existing queries.
>
> I used the name 'StringConstructorInterpolation' rather than
> 'StringTemplateExpr' to address my point:
>> Note that a StringTemplate actually *is* a kind of Expr, whereas a
>> StringTemplateExpr *isn't*. So I think these names could lead to confusion.
>
> I realize that it's rather long (6 characters longer than the former
> longest, 'CompNamespaceConstructor'). If that concerns people, I suppose we
> could cut it down to 'StringInterpolation'.
>
> -Michael
>
Received on Saturday, 26 September 2015 18:46:05 UTC