anchor.diff:        { $declaration=$classDeclaration.declaration; }
       | interfaceDeclaration
         { $declaration=$interfaceDeclaration.declaration; }
  +    /*| { displayRecognitionError(getTokenNames(), 
  +              new MismatchedTokenException(CLASS_DEFINITION, input)); }
  +      SEMICOLON
  +      { $declaration=new BrokenDeclaration($SEMICOLON); }*/
       )
       { if ($declaration!=null)
             $declaration.setAnnotationList($annotations.annotationList);  }
  
positive.code:         | nonstringLiteral | stringLiteral
          | arguments annotatedDeclarationStart //we need to recurse because it could be an inline callable argument
        )
      ;
  
  //special rule for syntactic predicates
  
negative.code: //special rule for syntactic predicate
  //to distinguish between an annotation
  //and an expression statement
  /*annotatedDeclarationStart
      : declarationStart
      | LIDENTIFIER
        ( 
  