That sounds like really awesome progress, woohoo!!!! Congratulations!!! Guillaume
On Sun, Jun 19, 2016 at 10:50 AM, Paul King <pa...@asert.com.au> wrote: > Nice work everyone! > > On Sun, Jun 19, 2016 at 6:33 PM, ? ? <realblue...@hotmail.com> wrote: > > Hi Groovy-Dev, > > > > The new parser for groovy has reached another milestone, it now can > > handle almost all source code of Groovy in Action 2nd Edition(612 pass / > 613 > > total), all source code of grails-core-3.1.8(1212 pass / 1212 total) and > > other source code(447 pass / 447 total). Here is the details of the test > > cases: > > http://ci.groovy-lang.org/viewType.html?buildTypeId=Groovy_Antlr4grammar > > > > > > The following list shows our main work ( > > https://github.com/jespersm/groovy/commits/antlr4 ): > > > > 1) Fully support command expression > > 2) Enhance command expression to make it act as an expression, e.g. > > > > assert (1.plus 2 plus 3) + (2.plus 3 plus 4) == 15 > > assert Math.max((1.plus 2 plus 3), (2.plus 3 plus 4)) == 9 > > > > 3) Save doc comment(e.g. groovydoc) as node meta data to simplify > > generating groovydoc files > > 4) Correct the precedence of some operators > > 5) Support "break" and "continue" with label > > 6) Support inner interface > > 7) Support class constant of Java style, e.g. java.lang.Integer.class > > 8) Support call on parenthesis expression and contants, e.g. > > > > ((int) 1 / 2)(1, 2) {} {} (2, 3, 4) {} > > (((int) 1 / 2))(1, 2) {} {} (2, 3, 4) {} > > (m())() > > ((Integer)m())() > > > > 'm'() + /aa/() + $/bb/$() + "$m"() + /a${'x'}a/() + $/b${'x'}b/$() + > > 1.2('b') + 1('a') + 2() + null() + true() + false() + a() + {a,b->}(1, > 2) + > > [1, 2]() + [a:1, b:2]() + new int[0]() + new Integer(1)() > > > > 9) Fix a lot of bugs > > > > Our TODO list shows as follows: > > > > 1) Add Groovy source code as test cases to build Groovy itself by the new > > parser > > 2) Support call on built-in type and class name > > 3) Verify operator precedence > > > > 4) Improve the performance of the new parser > > 5) Friendly prompt messages > > > > 6) Support lamda expression > > 7) Support do-while, the basic control structure like java's > > > > 8) Support java-like new array expression, e.g. new int[] {1, 2, 3} > > > > Finally, we want to thank Jochen, who offers us a lot of > suggestions > > on refining the new parser especially on the command expression support. > > > > p.s. If you want to play with the new parser, try: > > > > $ git clone -b antlr4 https://github.com/jespersm/groovy.git > > $ cd groovy > > $ ./gradlew -PuseAntlr4=true console > > > > Cheers, > > Daniel.Sun > -- Guillaume Laforge Apache Groovy committer & PMC Vice-President Developer Advocate @ Google Cloud Platform Blog: http://glaforge.appspot.com/ Social: @glaforge <http://twitter.com/glaforge> / Google+ <https://plus.google.com/u/0/114130972232398734985/posts>