public void Visit(CastNode node) { var paren = node.GetPrecedence() < node.GetValue().GetPrecedence() || node.GetValue() is CastNode; if (paren) { source.Append("("); } node.GetValue().Visit(this); if (paren) { source.Append(")"); } source.Append(" as " + node.GetCastType().Identifier); }