anchor.diff:  topLevelDef
     : messageDef
     | enumDef
  +  | extendDef
     | serviceDef
     ;
   
  
positive.code:   | ENUM
    | MESSAGE
    | SERVICE
    | RPC
    | STREAM
    | RETURNS
  
negative.code:   : field
    | enumDef
    | messageDef
    | extendDef
    | optionStatement
    | oneof
    | mapField
    | reserved
    | emptyStatement_
    ;
  
  // Extend definition
  //
  // NB: not defined in the spec but supported by protoc and covered by protobuf3 tests
  //     see e.g. php/tests/proto/test_import_descriptor_proto.proto
  //     of https://github.com/protocolbuffers/protobuf
  // it also was discussed here: https://github.com/protocolbuffers/protobuf/issues/4610
  
  extendDef
      :   EXTEND messageType LC ( field
                                   | emptyStatement_
                                   )* RC
      ;
  
  // service
  
  