anchor.diff:  
   // GRAMMAR OF AN EXPRESSION PATTERN
   
  +/** Doc says "Expression patterns appear only in switch statement case labels." */
   expression_pattern : expression  ;
   
   // Attributes
  
positive.code: 
  for_statement
   : 'for' for_init? ';' expression? ';' expression? code_block
   | 'for' '(' for_init?';' expression? ';' expression? ')' code_block
   ;
  
  for_init : variable_declaration | expression_list  ;
  
negative.code: 
  statements : statement+ ;
  
  /** A naked '=' op is not part of a valid expression so I'm making it a statement;
   *  see comment on binary_expression.  It also resolves ambiguity between
   *  rule pattern's expression_pattern alt and pattern_initializer.
   */
  assignment_statement
   : try_operator? prefix_expression  assignment_operator try_operator? prefix_expression
   ;
  
  // GRAMMAR OF A LOOP STATEMENT
  
  loop_statement : for_statement
  