public void VisitPrefixUnaryExpression(PrefixUnaryExpressionSyntax node)
        {
            if (node == null)
                throw new ArgumentNullException("node");

            node.Validate();

            ExpressionStart(node);

            switch (node.Operator)
            {
                case PrefixUnaryOperator.Ampersand: _writer.WriteOperator(PrinterOperator.Ampersand); break;
                case PrefixUnaryOperator.Asterisk: _writer.WriteOperator(PrinterOperator.Asterisk); break;
                case PrefixUnaryOperator.Exclamation: _writer.WriteOperator(PrinterOperator.Exclamation); break;
                case PrefixUnaryOperator.Minus: _writer.WriteOperator(PrinterOperator.Minus); break;
                case PrefixUnaryOperator.MinusMinus: _writer.WriteOperator(PrinterOperator.MinusMinus); break;
                case PrefixUnaryOperator.Plus: _writer.WriteOperator(PrinterOperator.Plus); break;
                case PrefixUnaryOperator.PlusPlus: _writer.WriteOperator(PrinterOperator.PlusPlus); break;
                case PrefixUnaryOperator.Tilde: _writer.WriteOperator(PrinterOperator.Tilde); break;
                default: throw ThrowHelper.InvalidEnumValue(node.Operator);
            }

            node.Operand.Accept(this);

            ExpressionEnd(node);
        }