code: public final T build() {
      getParser().parseImpl(this);
      // There was a gap in the parameters if either:
      // 1) the mask had a gap, e.g. ..00110111
      // 2) there were more than 32 parameters and the mask wasn't full.
      // Gaps above the 32nd parameter are not detected.
      if ((pmask & (pmask + 1)) != 0 || (maxIndex > 31 && pmask != -1)) {
        int firstMissing = Integer.numberOfTrailingZeros(~pmask);
        throw ParseException.generic(
            String.format("unreferenced arguments [first missing index=%d]", firstMissing),
            getMessage());
      }
      return buildImpl();
    }
docs: Builds a log message using the current message context.
  
  @return the implementation specific result of parsing the current log message.