docs: private void processBeginBlockCmd(String parms, int cmdTPosBegin, int cmdTPosEnd)
              throws MiniTemplator.TemplateSyntaxException {
          if (conditionalExclude(cmdTPosBegin, cmdTPosEnd)) {
              return;
          }
          int p0 = skipBlanks(parms, 0);
          if (p0 >= parms.length()) {
              throw new MiniTemplator.TemplateSyntaxException(
                      "Missing block name in $BeginBlock command in template at offset " + cmdTPosBegin + ".");
          }
          int p = skipNonBlanks(parms, p0);
          String blockName = parms.substring(p0, p);
          if (!isRestOfStringBlank(parms, p)) {
              throw new MiniTemplator.TemplateSyntaxException(
                      "Extra parameter in $BeginBlock command in template at offset " + cmdTPosBegin + ".");
          }
          int blockNo = registerBlock(blockName);
          BlockTabRec btr = blockTab[blockNo];
          btr.tPosBegin = cmdTPosBegin;
          btr.tPosContentsBegin = cmdTPosEnd;
          openBlocksTab[currentNestingLevel] = blockNo;
          currentNestingLevel++;
          if (currentNestingLevel > maxNestingLevel) {
              throw new MiniTemplator.TemplateSyntaxException("Block nesting overflow for block \"" + blockName
                      + "\" in template at offset " + cmdTPosBegin + ".");
          }
      }