title: Macro compiler error: "Parse Issue" when an argument name appears elsewhere
body: <p>I tried making a straightforward macro for creating and showing a simple "ok" dialog box in iOS:</p>
  
  <pre><code>#define ALERT_DIALOG(title,message) \
  do\
  {\
      UIAlertView *alert_Dialog = [[UIAlertView alloc] initWithTitle:(title) message:(message) delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];\
      [alert_Dialog show];\
  } while ( 0 )
  </code></pre>
  
  <p>If I try to use it in my code:</p>
  
  <pre><code>ALERT_DIALOG(@"Warning", @"Message");
  </code></pre>
  
  <p>I get the error: </p>
  
  <blockquote>
    <p>Parse Issue.  Expected ']'</p>
  </blockquote>
  
  <p>And the error seems to be pointing at the second <code>@</code> right before <code>"Message"</code>.</p>
  
  <p>However, if I simply copy paste the macro I do not get this error:</p>
  
  <pre><code>NSString *title = @"Warning";
  NSString *message = @"Message";
  do
  {
      UIAlertView *alert_Dialog = [[UIAlertView alloc] initWithTitle:(title) message:(message) delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
      [alert_Dialog show];
  } while ( 0 );
  </code></pre>
  
  <p>Is there something against using Objective-c constructs in macros? Or is that something else?</p>