groovy-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Arnaud Estève <arnaud.est...@gmail.com>
Subject AST transformation : return a CurriedClosure
Date Thu, 17 Dec 2015 20:34:27 GMT
Hi everyone !

I'm currently playing with AST transformations, and the field of
opportunities is... Well... Huge !

There's just something I just can't figure out how to express properly.


Let's imagine the following class :


class Greeter {

  void greet(String firstname, String lastname) {
    "Hello $firstname $lastname"
  }

}

I'd like to write an AST transformation so that the class becomes :

class Greeter {

  void greet(String firstname, String lastname) {
    "Hello $firstname $lastname"
  }

  CurriedClosure greet2(String firstname) { // even better if it's named
"greet" but... ?
    this.&greet.curry(firstname)
  }

}

And I'm not really sure if it's even possible with AST transformations, and
if I should go with ASTbuilder.buildFromCode or buildFromSpec, or anything
else ...


I'm able to get the methodNode i want to add a method for, no problem, I'm
able to add a method to a class, no problem.

The problem is just creating the definition of the AST method.

If someone has any pointer I can look at to give me an idea, don't hesitate.


Thanks a lot, and keep up the good work !

Arnaud.

Mime
View raw message