public override object Visit (Cast castExpression) { var result = new CastExpression (); var location = LocationsBag.GetLocations (castExpression); result.AddChild (new CSharpTokenNode (Convert (castExpression.Location), 1), CastExpression.Roles.LPar); if (castExpression.TargetType != null) result.AddChild ((INode)castExpression.TargetType.Accept (this), CastExpression.Roles.ReturnType); if (location != null) result.AddChild (new CSharpTokenNode (Convert (location[0]), 1), CastExpression.Roles.RPar); if (castExpression.Expr != null) result.AddChild ((INode)castExpression.Expr.Accept (this), CastExpression.Roles.Expression); return result; }