docs: public boolean calculateInsideBeamSingleThreaded(CcgChart chart, LogFunction log, long maxParseTimeMillis) {
      int chartSize = chart.size();
      long currentTime = 0;
      long endTime = System.currentTimeMillis() + maxParseTimeMillis;
      for (int spanSize = 1; spanSize < chartSize; spanSize++) {
        for (int spanStart = 0; spanStart + spanSize < chartSize; spanStart++) {
          int spanEnd = spanStart + spanSize;
          calculateInsideBeam(spanStart, spanEnd, chart, log);
          
          if (maxParseTimeMillis >= 0) {
            currentTime = System.currentTimeMillis();
            if (currentTime > endTime) {
              return false;
            }
          }
          
          if (chart.getTotalNumChartEntries() > chart.getMaxChartEntries()) {
            return false;
          }
          // System.out.println(spanStart + "." + spanEnd + " : " +
          // chart.getNumChartEntriesForSpan(spanStart, spanEnd));
        }
      }
      return true;
    }