Boo.Lang.Compiler.Steps.EmitAssembly.EmitBitwiseOperator C# (CSharp) Метод

EmitBitwiseOperator() приватный Метод

private EmitBitwiseOperator ( Boo.Lang.Compiler.Ast.BinaryExpression node ) : void
node Boo.Lang.Compiler.Ast.BinaryExpression
Результат void
        void EmitBitwiseOperator(BinaryExpression node)
        {
            var type = node.ExpressionType;
            LoadExpressionWithType(type, node.Left);
            LoadExpressionWithType(GetExpectedTypeForBitwiseRightOperand(node), node.Right);

            switch (node.Operator)
            {
                case BinaryOperatorType.BitwiseOr:
                    {
                        _il.Emit(OpCodes.Or);
                        break;
                    }

                case BinaryOperatorType.BitwiseAnd:
                    {
                        _il.Emit(OpCodes.And);
                        break;
                    }

                case BinaryOperatorType.ExclusiveOr:
                    {
                        _il.Emit(OpCodes.Xor);
                        break;
                    }

                case BinaryOperatorType.ShiftLeft:
                    {
                        _il.Emit(OpCodes.Shl);
                        break;
                    }
                case BinaryOperatorType.ShiftRight:
                    {
                        _il.Emit(TypeSystemServices.IsSignedNumber(type) ? OpCodes.Shr : OpCodes.Shr_Un);
                        break;
                    }
            }

            PushType(type);
        }
EmitAssembly