anchor.diff:                  proto.addExtension(extension);
               else
                   parent.addNestedExtension(extension);
  +                
  +            if(!proto.annotations.isEmpty())
  +                throw new IllegalStateException("Misplaced annotations: " + proto.annotations);
  +                
           } (SEMICOLON?)!
       ;
       
  
positive.code:                 
              message.addAnnotations(proto.annotations, true);
          } 
          LEFTCURLY (message_body[proto, message])* RIGHTCURLY
      ;
  
  message_body [Proto proto, Message message]
  
negative.code: 
  header_syntax [Proto proto]
      :   SYNTAX ASSIGN STRING_LITERAL SEMICOLON! {
              if(!"proto2".equals(getStringFromStringLiteral($STRING_LITERAL.text))) {
                  throw new IllegalStateException("Syntax isn't proto2: '" +
                    getStringFromStringLiteral($STRING_LITERAL.text)+"'");
              }
                    
              if(!proto.annotations.isEmpty())
                  throw new IllegalStateException("Misplaced annotations: " + proto.annotations);
  