public static CodegenExpression Codegen( DTLocalLongOpsReformatForge forge, CodegenExpression inner, CodegenMethodScope codegenMethodScope, ExprForgeCodegenSymbol exprSymbol, CodegenClassScope codegenClassScope) { CodegenExpression timeZoneField = codegenClassScope.AddOrGetDefaultFieldSharable(RuntimeSettingsTimeZoneField.INSTANCE); var methodNode = codegenMethodScope.MakeChild( forge.reformatForge.ReturnType, typeof(DTLocalLongOpsReformatEval), codegenClassScope) .AddParam(typeof(long), "target"); var block = methodNode.Block .DeclareVar<DateTimeEx>("dtx", StaticMethod(typeof(DateTimeEx), "GetInstance", timeZoneField)) .Expression( forge.timeAbacus.DateTimeSetCodegen(Ref("target"), Ref("dtx"), methodNode, codegenClassScope)); DTLocalUtil.EvaluateCalOpsDtxCodegen( block, forge.calendarForges, Ref("dtx"), methodNode, exprSymbol, codegenClassScope); block.MethodReturn( forge.reformatForge.CodegenDateTimeEx(Ref("dtx"), methodNode, exprSymbol, codegenClassScope)); return LocalMethod(methodNode, inner); }
public static CodegenExpression Codegen( DTLocalDtxOpsReformatForge forge, CodegenExpression inner, CodegenMethodScope codegenMethodScope, ExprForgeCodegenSymbol exprSymbol, CodegenClassScope codegenClassScope) { var methodNode = codegenMethodScope.MakeChild( forge.reformatForge.ReturnType, typeof(DTLocalDtxOpsReformatEval), codegenClassScope) .AddParam(typeof(DateTimeEx), "target"); var block = methodNode.Block .DeclareVar<DateTimeEx>( "dtx", Cast(typeof(DateTimeEx), ExprDotMethod(Ref("target"), "Clone"))); DTLocalUtil.EvaluateCalOpsDtxCodegen( block, forge.calendarForges, Ref("dtx"), methodNode, exprSymbol, codegenClassScope); block.MethodReturn( forge.reformatForge.CodegenDateTimeEx(Ref("dtx"), methodNode, exprSymbol, codegenClassScope)); return LocalMethod(methodNode, inner); }