コード例 #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);
        }