code: public static void merge(Readable input,
                               ExtensionRegistry extensionRegistry,
                               Message.Builder builder) throws ParseException, IOException {
          // Read the entire input to a String then parse that.
  
          // If StreamTokenizer were not quite so crippled, or if there were a kind
          // of Reader that could read in chunks that match some particular regex,
          // or if we wanted to write a custom Reader to tokenize our stream, then
          // we would not have to read to one big String. Alas, none of these is
          // the case. Oh well.
  
          merge(toStringBuilder(input), extensionRegistry, builder);
      }
docs: Parse a text-format message from {@code input} and merge the contents into {@code builder}.
  Extensions will be recognized if they are registered in {@code extensionRegistry}.