code: @SuppressWarnings("fallthrough")
      protected List<DCTree> blockContent() {
          ListBuffer<DCTree> trees = new ListBuffer<>();
          textStart = -1;
  
          loop:
          while (bp < buflen) {
              switch (ch) {
                  case '\n': case '\r': case '\f':
                      newline = true;
                      // fallthrough
  
                  case ' ': case '\t':
                      nextChar();
                      break;
  
                  case '&':
                      entity(trees);
                      break;
  
                  case '<':
                      newline = false;
                      addPendingText(trees, bp - 1);
                      trees.add(html());
                      if (textStart == -1) {
                          textStart = bp;
                          lastNonWhite = -1;
                      }
                      break;
  
                  case '>':
                      newline = false;
                      addPendingText(trees, bp - 1);
                      trees.add(m.at(bp).newErroneousTree(newString(bp, bp + 1), diagSource, "dc.bad.gt"));
                      nextChar();
                      if (textStart == -1) {
                          textStart = bp;
                          lastNonWhite = -1;
                      }
                      break;
  
                  case '{':
                      inlineTag(trees);
                      break;
  
                  case '@':
                      if (newline) {
                          addPendingText(trees, lastNonWhite);
                          break loop;
                      }
                      // fallthrough
  
                  default:
                      newline = false;
                      if (textStart == -1)
                          textStart = bp;
                      lastNonWhite = bp;
                      nextChar();
              }
          }
  
          if (lastNonWhite != -1)
              addPendingText(trees, lastNonWhite);
  
          return trees.toList();
      }
docs: Read block content, consisting of text, html and inline tags.
  Terminated by the end of input, or the beginning of the next block tag:
  i.e. @ as the first non-whitespace character on a line.