public static CodegenExpression Codegen( DTLocalDtxIntervalForge forge, CodegenExpression inner, CodegenMethodScope codegenMethodScope, ExprForgeCodegenSymbol exprSymbol, CodegenClassScope codegenClassScope) { var methodNode = codegenMethodScope .MakeChild(typeof(bool?), typeof(DTLocalDtxIntervalEval), codegenClassScope) .AddParam(typeof(DateTimeEx), "target"); methodNode.Block .DeclareVar<long>("time", ExprDotName(Ref("target"), "UtcMillis")) .MethodReturn( forge.intervalForge.Codegen(Ref("time"), Ref("time"), methodNode, exprSymbol, codegenClassScope)); return LocalMethod(methodNode, inner); }
public static CodegenExpression Codegen( DTLocalDtxIntervalForge forge, CodegenExpression start, CodegenExpression end, CodegenMethodScope codegenMethodScope, ExprForgeCodegenSymbol exprSymbol, CodegenClassScope codegenClassScope) { var methodNode = codegenMethodScope .MakeChild(typeof(bool?), typeof(DTLocalDtxIntervalEval), codegenClassScope) .AddParam(typeof(DateTimeEx), "start") .AddParam(typeof(DateTimeEx), "end"); methodNode.Block.MethodReturn( forge.intervalForge.Codegen( ExprDotName(Ref("start"), "UtcMillis"), ExprDotName(Ref("end"), "UtcMillis"), methodNode, exprSymbol, codegenClassScope)); return LocalMethod(methodNode, start, end); }