Regex support certainly needs to be kept in mind. I can propose something a 
little different
on that front however that retains the existing simple literal syntax. Bear 
with me.

What if invalid escape sequences did not result in an error but were passed 
through to the string?
This is a very small change to the lexer.

For example:

> print( “\w+[\w\d]+” )
\w+[\w\d]+

It’s easy for a developer to know there are only seven valid escapes \0, \r, 
\n, \”, \’, \\  and \u{NNNN}
so the error is not a particularly helpful one and these escapes do not overlap 
with regex syntax.

In this way you get the best of both worlds, minimalist string syntax and not 
have to write “\\w+[\\w\\d]+”

John

> On 22 Apr 2016, at 20:54, Patrick Gili <[email protected]> wrote:
> 
> If we use a quoting structure similar to Perl6, then we future proof the 
> grammar to accommodate regular expression literals (and multi-line regular 
> expression literals) later. It also gives us the possibility for support for 
> fine-grain control over escaping and interpolation.
> 
> -Patrick
> 
>> On Apr 22, 2016, at 2:48 PM, John Holdsworth <[email protected]> wrote:
>> 
>> As a long time user of Perl, for me the simplicity and lack of flexibility 
>> is the attraction
>> when it comes to “”” syntax ;) That’s a lot of documentation for just 
>> specifying a string.
>> 
>> Perl makes life difficult for itself due to it’s rather simplistic $var 
>> interpolation syntax
>> which means you frequently want an un-interpolated string literal. The 
>> situation is
>> far better in Swift with the more distinct \().
>> 
>> Can you think of anything that couldn’t be readily expressed using Python 
>> style “””?
>> 
>> John
>>> On 22 Apr 2016, at 19:12, Patrick Gili <[email protected]> wrote:
>>> 
>>> This doesn't provide very much flexibility. I'd like to see something more 
>>> like Perl6's quoting constructs: https://doc.perl6.org/language/quoting.
>>> 
>>> -Patrick
>>> 
>>>> On Apr 22, 2016, at 12:59 PM, John Holdsworth via swift-evolution 
>>>> <[email protected]> wrote:
>>>> 
>>>> I’ve raised a speculative PR against the Swift Lexer to support multi-line 
>>>> string literals as was
>>>> suggested in the very first week Swift was open sourced and before that in 
>>>> various radars.
>>>> 
>>>> https://github.com/apple/swift/pull/2275
>>>> 
>>>> The approach taken is as simple as possible defining multi-line strings as 
>>>> being
>>>> delimited by “”” instead of “ and thereafter able to contain new line 
>>>> characters.
>>>> 
>>>> There has been some discussion of this before on swift-evolution:
>>>> 
>>>> https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20151207/001565.html
>>>> 
>>>> I’m trying to avoid more advanced features such as the handling of 
>>>> indenting which
>>>> for me complicates something that if kept simple can be documented very 
>>>> easily.
>>>> 
>>>> This change will require a evolution proposal so I’d like to take the 
>>>> pulse before I write it up.
>>>> 
>>>> Thoughts?
>>>> 
>>>> John
>>>> _______________________________________________
>>>> swift-evolution mailing list
>>>> [email protected]
>>>> https://lists.swift.org/mailman/listinfo/swift-evolution
>>> 
>> 
> 

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to