> Le 15 mars 2016 à 12:51, Guillaume Laforge <[email protected]> a écrit :
> 
> It was indeed limited to top-level statements initially, but there have been 
> cases where we felt it could be opened up.
> Perhaps it's worth reopening the discussion.
> For example, inside statements like if, or things like asserts, perhaps we 
> could allow it?
> Open for discussion on this.
> 

+1

If I understand correctly, that would be nice for DSL, so instead of having 

        boolean allAdults = every member of familyComposition is ADULT
        if (allAdults) { ... }

we could have

        if (every member of familyComposition is ADULT) { ... }

(with the proper dsl wired in of course).


> On Tue, Mar 15, 2016 at 5:45 PM, Дионисьев Павел <[email protected] 
> <mailto:[email protected]>> wrote:
> Dear Jesper,
> 
> As far as I remember, command expressions are allowed as statements only. 
> There will be lots of ambiguities otherwise.
> 
> Also, there are known issues in grammar, listed in original repository 
> <https://github.com/xSeagullx/antlrv4_groovy_grammar/issues>. You might want 
> to have a look and incorporate them in your issue tracker.
> 
> And thank you for working on this project!
> 
> Pavel.
> 
> 
> On 15 March 2016 at 17:22, Jesper Steen Møller <[email protected] 
> <mailto:[email protected]>> wrote:
> Hi List
> 
> I’ve yet to fully understand the rules behind the parenthesis-less method 
> invocation syntax. Basically, it seems that while parenthesis-less method 
> invocation (“command style”) can sometimes be used as an expression, it’s not 
> universally so.
> 
> I’d like to understand whether this is a merely an oversight or due to the 
> current state of affairs in the parser, or intentional.
> 
> Consider:
>       int a = b c
> This is legal and equivalent to
>       int a = b(c)
> similarly:
>       a = b c
> Works fine, too, letting “b c” be a valid expression.
> However, the following:
>       if (b c) {
>               // Stuff
>       }
> Gives an error:
>       expecting ‘)’, found ‘c’ at line: 1, column: 11
> 
> So, is the “command” syntax a special pseudo-expression, and if so, where is 
> it allowed? Only by itself (“statement”), and as the RHS og assignments and 
> initializers?
> 
> I’d like to know this as it could get real nasty, depending on the answer, 
> since allowing it everywhere will introduce some ambiguities, which will 
> require some tweaks to keep the “non-left-recursion refactored” grammar we 
> have now.
> 
> Also, great news:
> Daniel Sun has started contributing fixes, submitting PR’s against the fork 
> at https://github.com/jespersm/groovy/tree/antlr4 
> <https://github.com/jespersm/groovy/tree/antlr4> - he’s quite productive, 
> thanks!
> 
> For coordination, I’ve started tracking some of the known “things to do” at 
> https://github.com/jespersm/groovy/issues 
> <https://github.com/jespersm/groovy/issues>
> 
> -Jesper
> 
> 
> 
> 
> -- 
> С уважением, Дионисьев П.А.
> 
> 
> 
> -- 
> Guillaume Laforge
> Apache Groovy committer & PMC Vice-President
> Product Ninja & Advocate at Restlet <http://restlet.com/>
> 
> Blog: http://glaforge.appspot.com/ <http://glaforge.appspot.com/>
> Social: @glaforge <http://twitter.com/glaforge> / Google+ 
> <https://plus.google.com/u/0/114130972232398734985/posts>

Reply via email to