[nem-en] expresion level macro to define methods

Kamil Skalski kamil.skalski at gmail.com
Fri Nov 17 19:08:47 CET 2006


Yes,

macro MarkWithMy (expr) {
  Nemerle.Macros.ImplicitCTX().CurrentType.Define ( <[ decl:
     public MyGeneratedMethod (x : int) : int {
         x + $expr
     }
  ]>);
  <[ () ]>
}

but probably if you tried using this method in compilation of current
class/method (for other classes it might be even more indeterministic
;) ), like

macro MarkWithMy (expr) {
  Nemerle.Macros.ImplicitCTX().CurrentType.Define ( <[ decl:
     public MyGeneratedMethod (x : int) : int {
         x + $expr
     }
  ]>);
  <[ MyGeneratedMethod(1) ]>
}

you might get strange problems...

On 11/17/06, Kamil Dworakowski <kamil.dworakowski at googlemail.com> wrote:
> Is it possible for an expresion lvl macro to define a method on the
> enclosing class?
>
> Kamil Dworakowski
>
> _______________________________________________
> https://nemerle.org/mailman/listinfo/devel-en
>


-- 
Kamil Skalski
http://nazgul.omega.pl



More information about the devel-en mailing list