I'm trying to implement an AST transformation to replace any `==` binary expression with a equals method call invocation as suggested here.
My understanding is that it's required to override each the visitor for each node where a binary expression can appear ie. if statement, while statement, assignment, for loop, method call, etc.
That looks a bit overkill. I was wondering if there's a better way to replace globally all `==` binary expressions with `equals` method invocations.
I have not used it myself, but have you had a look at the new Groovy 2.5 "abstract syntax tree search and replace"-feature (http://groovy-lang.org/releasenotes/groovy-2.5.html & search for "AST matching") ?
On 10.06.2018 16:55, Paolo Di Tommaso wrote:
A couple of years ago I created Asteroid (https://github.com/grooviter/asteroid) a library to deal with AST transformations. I needed to create a minor release so I've taken the oportunity to solve this problem and I think is pretty easy.
You can find the source code here:
You can find also some documentation at: http://grooviter.github.io/asteroid/
Of course any feedback on the library is appreciated :)
I hope this helps
2018-06-10 21:27 GMT+02:00 MG <[hidden email]>:
Looking at Asteroid code put me in the right direction. In a nutshell it is not possible to mix ClassCodeVisitorSupport logic with class ClassCodeExpressionTransformer one. I need to use two different classes.
On Wed, Jun 13, 2018 at 9:52 AM, Mario Garcia <[hidden email]> wrote:
|Free forum by Nabble||Edit this page|