anchor.diff:      | COMPLEMENT_OP
       ;
       
  +compilerAnnotation returns [CompilerAnnotation annotation]
  +    : COMPILER_ANNOTATION 
  +      { $annotation=new CompilerAnnotation($COMPILER_ANNOTATION); }
  +      annotationName 
  +      { $annotation.setIdentifier($annotationName.identifier); }
  +      ( 
  +          LBRACKET
  +          stringLiteral
  +          { $annotation.setStringLiteral($stringLiteral.stringLiteral); }
  +          RBRACKET
  +      )?
  +    ;
  +
   // Lexer
   
   fragment
  
positive.code:         parameters
          { def.addParameterList($parameters.parameterList); 
            dec.addParameterList($parameters.parameterList); }
        )*
        //metatypes? 
        (
          typeConstraints
  
negative.code:       { $declaration=$voidOrInferredMethodDeclaration.declaration; }
      | inferredAttributeDeclaration
        { $declaration=$inferredAttributeDeclaration.declaration; }
      | typedMethodOrAttributeDeclaration
        { $declaration=$typedMethodOrAttributeDeclaration.declaration; }
      | classDeclaration
        { $declaration=$classDeclaration.declaration; }
      | interfaceDeclaration
  