Boo.Lang.Compiler.Steps.EmitAssembly.EmitBitwiseOperator C# (CSharp) Méthode

EmitBitwiseOperator() private méthode

private EmitBitwiseOperator ( Boo.Lang.Compiler.Ast.BinaryExpression node ) : void
node Boo.Lang.Compiler.Ast.BinaryExpression
Résultat 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