docs: private int registerBlock(String blockName) {
          int blockNo = blockTabCnt++;
          if (blockTabCnt > blockTab.length) {
              blockTab = (BlockTabRec[]) resizeArray(blockTab, 2 * blockTabCnt);
          }
          BlockTabRec btr = new BlockTabRec();
          blockTab[blockNo] = btr;
          btr.blockName = blockName;
          if (blockName != null) {
              btr.nextWithSameName = lookupBlockName(blockName);
          } else {
              btr.nextWithSameName = -1;
          }
          btr.nestingLevel = currentNestingLevel;
          if (currentNestingLevel > 0) {
              btr.parentBlockNo = openBlocksTab[currentNestingLevel - 1];
          } else {
              btr.parentBlockNo = -1;
          }
          btr.definitionIsOpen = true;
          btr.blockVarCnt = 0;
          btr.firstVarRefNo = -1;
          btr.blockVarNoToVarNoMap = new int[32];
          btr.dummy = false;
          if (blockName != null) {
              blockNameToNoMap.put(blockName.toUpperCase(), new Integer(blockNo));
          }
          return blockNo;
      }