public void ProcessAvailabilityAttribute(InvocationExpression invocationExpression)
            {
                originalArgIndex = 0;
                message          = null;
                invocations.Clear();

                foreach (var arg in invocationExpression.Arguments)
                {
                    currentAvailability = null;

                    arg.AcceptVisitor(this);

                    foreach (var newAttr in invocations)
                    {
                        if (message != null)
                        {
                            newAttr.AddArgument(new NamedExpression(
                                                    new LiteralExpression("message"),
                                                    TokenType.Colon,
                                                    new LiteralExpression(message)
                                                    ));
                        }

                        invocationExpression.Parent.InsertChildBefore(
                            invocationExpression, newAttr);
                    }

                    originalArgIndex++;
                }

                invocationExpression.Remove();
            }