コード例 #1
0
ファイル: BinaryNumericOperator.cs プロジェクト: lanicon/Echo
        /// <inheritdoc />
        public DispatchResult Execute(CilExecutionContext context, CilInstruction instruction)
        {
            var(left, right) = BinaryOperationHelper.PopBinaryOperationArguments(context);

            var result = (left, right) switch
            {
                (IntegerValue a, IntegerValue b) => Execute(context, instruction, a, b),
                (FValue a, FValue b) => Execute(context, instruction, a, b),
                (OValue a, OValue b) => Execute(context, instruction, a, b),
                _ => DispatchResult.InvalidProgram(),
            };
コード例 #2
0
        /// <inheritdoc />
        protected override Trilean VerifyCondition(ExecutionContext context, CilInstruction instruction)
        {
            var(left, right) = BinaryOperationHelper.PopBinaryOperationArguments(context);

            return((left, right) switch
            {
                (IntegerValue a, IntegerValue b) => VerifyCondition(context, instruction, a, b),
                (FValue a, FValue b) => VerifyCondition(context, instruction, a, b),
                (OValue a, OValue b) => VerifyCondition(context, instruction, a, b),
                _ => null,
            });