예제 #1
0
파일: Ceq.cs 프로젝트: lanicon/Echo
        /// <inheritdoc />
        protected override DispatchResult Execute(CilExecutionContext context, CilInstruction instruction,
                                                  OValue left, OValue right)
        {
            var result = left.IsEqualTo(right);

            return(ConvertToI4AndReturnSuccess(context, result));
        }
예제 #2
0
파일: Ble.cs 프로젝트: mirec12590/Echo
        /// <inheritdoc />
        protected override Trilean VerifyCondition(ExecutionContext context, CilInstruction instruction,
                                                   OValue left, OValue right)
        {
            var equal    = left.IsEqualTo(right);
            var lessThan = left.IsLessThan(right);

            if (equal.ToBooleanOrFalse() || lessThan.ToBooleanOrFalse())
            {
                return(true);
            }
            if (!equal.IsKnown || !lessThan.IsKnown)
            {
                return(null);
            }
            return(false);
        }
예제 #3
0
파일: Bge.cs 프로젝트: mirec12590/Echo
        /// <inheritdoc />
        protected override Trilean VerifyCondition(ExecutionContext context, CilInstruction instruction,
                                                   OValue left, OValue right)
        {
            var equal       = left.IsEqualTo(right);
            var greaterThan = left.IsGreaterThan(right);

            if (equal.ToBooleanOrFalse() || greaterThan.ToBooleanOrFalse())
            {
                return(Trilean.True);
            }
            if (!equal.IsKnown || !greaterThan.IsKnown)
            {
                return(Trilean.Unknown);
            }
            return(Trilean.False);
        }