[nem-en] [macro] building setter body
Sergey Shishmintzev
sergey.shishmintzev at gmail.com
Thu Mar 8 20:15:42 CET 2007
Hi,
I want to enhance Accessor macro. Here sample for test case:
// code:
[Nemerle.MacroUsage (Nemerle.MacroPhase.BeforeInheritance,
Nemerle.MacroTargets.Field,
Inherited = false, AllowMultiple = true)]
macro PropertyBuilder (current_type : TypeBuilder, storage_field :
ParsedField, params args : list [PExpr])
{
def evnt_name = storage_field.Name+"_Changed";
mutable setter_body = <[ $(evnt_name : dyn)(); ]>;
unless (args.IsEmpty)
setter_body =
<[ when ($(args.Nth(0)))
$setter_body; ]>;
def prop = <[ decl:
public $(storage_field.Name+"_Prop" : dyn) : $(storage_field.ty)
{
set { $setter_body }
}
]>;
current_type.Define (prop);
}
// usage:
public class Model2
{
[PropertyBuilder(field2 != value)]
public mutable field2 : string;
public field2_Changed() : void {};
}
Problem:
ncc.exe says "error: unbound name `value'"
Any solutions?
--
Serg
More information about the devel-en
mailing list