Пример #1
0
        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);
        }
Пример #2
0
        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);
        }