anchor.diff:          'class'!
           typeName
           typeParameters?
  -        formalParameters?
  +        formalParameters
           extendedType?
           satisfiedTypes?
           typeConstraints?
  
positive.code:     ;
      
  doWhile
      : doBlock? whileBlock
      -> ^(WHILE_STMT doBlock? whileBlock)
      ;
  
  doBlock
      : 'do' ('(' doIterator ')')? block?
      -> ^(DO_ITERATOR doIterator)? ^(DO_BLOCK block)?
      ;
  
  whileBlock
      : 'while' '(' condition ')' (block | ';')
      -> ^(CONDITION condition) ^(WHILE_BLOCK block)?
      ;
  
  //do iterators are allowed to be mutable and/or optional
  doIterator
      : annotations? variable (specifier | initializer)
      ;
  
  tryCatchFinally
  
negative.code:     ;
  
  controlStructure
      : ifElse | switchCaseElse | while | doWhile | forFail | tryCatchFinally
      ;
      
  ifElse
  