code: private DCTree inlineText(WhitespaceRetentionPolicy whitespacePolicy) throws ParseException {
          switch (whitespacePolicy) {
              case REMOVE_ALL:
                  skipWhitespace();
                  break;
              case REMOVE_FIRST_SPACE:
                  if (ch == ' ')
                      nextChar();
                  break;
              case RETAIN_ALL:
              default:
                  // do nothing
                  break;
  
          }
          int pos = bp;
          int depth = 1;
  
          loop:
          while (bp < buflen) {
              switch (ch) {
                  case '\n': case '\r': case '\f':
                      newline = true;
                      break;
  
                  case ' ': case '\t':
                      break;
  
                  case '{':
                      newline = false;
                      lastNonWhite = bp;
                      depth++;
                      break;
  
                  case '}':
                      if (--depth == 0) {
                          return m.at(pos).newTextTree(newString(pos, bp));
                      }
                      newline = false;
                      lastNonWhite = bp;
                      break;
  
                  case '@':
                      if (newline)
                          break loop;
                      newline = false;
                      lastNonWhite = bp;
                      break;
  
                  default:
                      newline = false;
                      lastNonWhite = bp;
                      break;
              }
              nextChar();
          }
          throw new ParseException("dc.unterminated.inline.tag");
      }
docs: Read plain text content of an inline tag.
  Matching pairs of { } are skipped; the text is terminated by the first
  unmatched }. It is an error if the beginning of the next tag is detected.