anchor.diff:      ;
   
   defaultValue
  -    : 'default' elementValue
  +    : DEFAULT elementValue
       ;
   
   // STATEMENTS / BLOCKS
  
positive.code:     ;
  
  blockStatement
      : localVariableDeclarationStatement
      | statement
      | typeDeclaration
      ;
  
  localVariableDeclarationStatement
      :  localVariableDeclaration ';'
      ;
  
  localVariableDeclaration
      : variableModifier* typeType variableDeclarators
      ;
  
  statement
      : block
      | ASSERT expression (':' expression)? ';'
      | 'if' parExpression statement ('else' statement)?
      | 'for' '(' forControl ')' statement
      | 'while' parExpression statement
      | 'do' statement 'while' parExpression ';'
      | 'try' block (catchClause+ finallyBlock? | finallyBlock)
      | 'try' resourceSpecification block catchClause* finallyBlock?
      | 'switch' parExpression '{' switchBlockStatementGroup* switchLabel* '}'
      | 'synchronized' parExpression block
      | 'return' expression? ';'
      | 'throw' expression ';'
      | 'break' Identifier? ';'
      | 'continue' Identifier? ';'
      | ';'
      | statementExpression ';'
      | Identifier ':' statement
      ;
  
  catchClause
      : 'catch' '(' variableModifier* catchType Identifier ')' block
      ;
  
  catchType
  
negative.code:     ;
  
  switchLabel
      : CASE (constantExpression=expression | enumConstantName=Identifier) ':'
      | DEFAULT ':'
      ;
  
  forControl
      : enhancedForControl
      | forInit? ';' expression? ';' forUpdate=expressionList?
      ;
  
  forInit
  