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

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

private GetValue ( IType expectedType, Expression expression ) : object
expectedType IType
expression Boo.Lang.Compiler.Ast.Expression
Результат object
        object GetValue(IType expectedType, Expression expression)
        {
            switch (expression.NodeType)
            {
                case NodeType.NullLiteralExpression:
                    return null;

                case NodeType.StringLiteralExpression:
                    return ((StringLiteralExpression)expression).Value;

                case NodeType.CharLiteralExpression:
                    return ((CharLiteralExpression)expression).Value[0];

                case NodeType.BoolLiteralExpression:
                    return ((BoolLiteralExpression)expression).Value;

                case NodeType.IntegerLiteralExpression:
                    var ile = (IntegerLiteralExpression)expression;
                    return ConvertValue(expectedType,
                                        ile.IsLong? ile.Value: (int)ile.Value);

                case NodeType.DoubleLiteralExpression:
                    return ConvertValue(expectedType,
                                            ((DoubleLiteralExpression)expression).Value);

                case NodeType.TypeofExpression:
                    return GetSystemType(((TypeofExpression)expression).Type);

                case NodeType.CastExpression:
                    return GetValue(expectedType, ((CastExpression)expression).Target);

                default:
                    return GetComplexExpressionValue(expectedType, expression);
            }
        }
EmitAssembly