anchor.diff:  forFail
       : 'for' '(' forIterator ')' block ('fail' block)?
       ;
  -    
  +
  +//TODO: check this!
   forIterator
  -    : controllingVariable 'in' simpleExpression
  +    : formalParameter //controllingVariable 'in' (expression|enumeration)
       ;
       
   controllingVariable
  
positive.code:     ;
  
  doIterator
      : localDeclaration
      ;
  
  tryCatchFinally
      :
      'try' ('(' resource ')')?
      block
      ('catch' '(' localDeclaration ')' block)*
      ('finally' block)?
      ;
      
  resource
      : localDeclaration | expression
      ;
  
  // Lexer
  
negative.code: 
  // Backtracking here is needed for exactly the same reason as localOrStatement.
  condition
      : ('exists' | 'nonempty')? (expression | variable initializer)
      | 'is' type ((memberName initializer) => memberName initializer | expression)
      ;
  	
  controlStructure
      : ifElse | switchCaseElse | doWhile | forFail | tryCatchFinally
      ;
      
  ifElse
      : 'if' '(' condition ')' block ('else' block)?
  