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