コード例 #1
0
 public override CodegenExpression Make(
     CodegenMethodScope parent,
     SAIFFInitializeSymbol symbols,
     CodegenClassScope classScope)
 {
     var method = parent.MakeChild(typeof(VariableTriggerWriteDesc), GetType(), classScope);
     method.Block
         .DeclareVar<VariableTriggerWriteDesc>("desc", NewInstance(typeof(VariableTriggerWriteDesc)))
         .SetProperty(
             Ref("desc"),
             "Type",
             EventTypeUtility.ResolveTypeCodegen(Type, symbols.GetAddInitSvc(method)))
         .SetProperty(
             Ref("desc"),
             "VariableName",
             Constant(VariableName))
         .SetProperty(
             Ref("desc"),
             "Writer",
             EventTypeUtility.CodegenWriter(
                 Type,
                 evaluationType,
                 getterType,
                 Writer,
                 method,
                 GetType(),
                 classScope))
         .SetProperty(
             Ref("desc"),
             "Getter",
             EventTypeUtility.CodegenGetterWCoerce(
                 getter,
                 getterType,
                 null,
                 method,
                 GetType(),
                 classScope))
         .MethodReturn(Ref("desc"));
     return LocalMethod(method);
 }