public override MSAst TransformCore(ScriptGenerator generator) { return(generator.ConvertTo( _destinationType.Type, ConversionResultKind.ExplicitCast, _child.Transform(generator))); }
public override MSAst TransformCore(ScriptGenerator generator) { var scope = generator.PushNewScope(); try { for (int i = 0; i < _scope.Parameters.Count; i++) { _scope.Parameters[i].Transform(generator); } var transformedBody = _body.Transform(generator); if ((ReturnType != null) && (ReturnType != TypeManager.CoreTypes.Object) && (transformedBody.Type != ReturnType)) { transformedBody = MSAst.Convert(transformedBody, ReturnType); } var result = scope.FinishScope(transformedBody); return(result); } finally { generator.PopScope(); } }
public MSAst::MemberBinding TransformMemberBinding(ScriptGenerator generator) { var memberInfo = (_target is PropertyExpression) ? (MemberInfo)((PropertyExpression)_target).PropertyInfo : ((FieldExpression)_target).FieldInfo; var collectionInitializer = _value as CollectionInitializerExpression; if (collectionInitializer != null) { var elementInitializers = collectionInitializer.Initializers .Cast <CollectionElementInitializer>() .Select(o => o.TransformInitializer(generator)); return(MSAst::Expression.ListBind( memberInfo, elementInitializers)); } return(MSAst::Expression.Bind( memberInfo, _value.Transform(generator))); }
public override MSAst TransformCore(ScriptGenerator generator) { var transformedOperator = _operand.Transform(generator); if (transformedOperator.Type == _targetType.Type) { return(transformedOperator); } if (Type == TypeManager.CoreTypes.String) { return(MSAst.Call( transformedOperator, CommonMembers.ObjectToString)); } return(generator.ConvertTo( Type, IsImplicitConversionRequired ? ConversionResultKind.ImplicitCast : ConversionResultKind.ExplicitCast, transformedOperator)); }
public override System.Linq.Expressions.Expression TransformCore(ScriptGenerator generator) { return(_child.Transform(generator)); }
public override MSAst.Expression TransformCore(ScriptGenerator generator) { return(MSAst.Expression.Quote(Expression.Transform(generator))); }
public MSAst.MemberAssignment MakeAssignment(ScriptGenerator generator) { return(MSAst.Expression.Bind( _member, _initializer.Transform(generator))); }