Changing regex syntax is a breaking change that comes without compiler 
warnings. 

Dierk

sent from:mobile 

> Am 22.10.2018 um 22:34 schrieb Guillaume Laforge <glafo...@gmail.com>:
> 
> Damn, MG will tell me again I'm reacting negatively to Daniel's ideas but... 
> :-)
> 
> Interestingly, the multiline support in regex was kind of a highlight of 
> Groovy's support of regexes as they allowed making more readable regular 
> expressions.
> If you have it, have a look at some of the examples in Groovy in Action which 
> highlighted this.
> 
> The most intuitive human parsing here is certainly (m / ab) then (c / d), and 
> not the command chain expression, and indeed the parser currently parses it 
> as the intuitive human approach.
> 
> Command chain expressions would have been parsed though if indeed we had use 
> the triple (single/double) quote syntax, which would also be an intuitive 
> human parsing.
> 
> Expecting the parse to be a command chain with the slashy strings would seem 
> counter intuitive to me.
> 
> So call me resistant to change if you will MG ;-) but I quite like the 
> current behavior.
> 
> Guillaume
> 
>> On Mon, Oct 22, 2018 at 8:00 PM Daniel.Sun <sun...@apache.org> wrote:
>> Hi all,
>> 
>>       Groovy regex literal allows new lines, i.e. 0D0A, which introduces
>> some ambiguity and breaks consistency in syntax. Let's have a look at some
>> examples:
>> 
>> 1)  Ambiguity example:
>> ```
>> m /ab
>> c/ d
>> ```
>> This can be parsed as a command chain expression or parsed as two arithmetic
>> expressions.
>> 
>> 2)  Consistency breaking in syntax
>> Single line:
>> 'abc'
>> "abc"
>> 
>> Multiple lines:
>> '''
>> abc
>> '''
>> """
>> abc
>> """
>> /
>> abc
>> /
>> $/
>> abc
>> /$
>> 
>>       As you can see, both two version of regex literal can span multiple
>> lines... 
>> 
>>       I propose to forbidden new lines in one version of regex literal since
>> Groovy 3.0.0:
>> 
>> Single line:
>> 'abc'
>> "abc"
>> /abc/
>> 
>> Multiple lines:
>> '''
>> abc
>> '''
>> """
>> abc
>> """
>> $/
>> abc
>> /$
>> 
>>       Any thoughts?
>> 
>> Cheers,
>> Daniel.Sun
>> 
>> 
>> 
>> 
>> -----
>> Daniel Sun 
>> Apache Groovy committer 
>> Blog: http://blog.sunlan.me 
>> Twitter: @daniel_sun 
>> 
>> --
>> Sent from: http://groovy.329449.n5.nabble.com/Groovy-Dev-f372993.html
> 
> 
> -- 
> Guillaume Laforge
> Apache Groovy committer & PMC Vice-President
> Developer Advocate @ Google Cloud Platform
> 
> Blog: http://glaforge.appspot.com/
> Twitter: @glaforge

Reply via email to