docs: public void addBlock(String blockName, boolean isOptional) throws BlockNotDefinedException {
          int blockNo = mtp.lookupBlockName(blockName);
          if (blockNo == -1) {
              if (isOptional) {
                  return;
              }
              throw new BlockNotDefinedException(blockName);
          }
          while (blockNo != -1) {
              addBlockByNo(blockNo);
              blockNo = mtp.blockTab[blockNo].nextWithSameName;
          }
      }