docs: protected String parseUntilSemiColon( DdlTokenStream tokens ) throws ParsingException {
          StringBuilder sb = new StringBuilder();
  
          boolean lastTokenWasPeriod = false;
          while (tokens.hasNext() && !tokens.matches(SEMICOLON)) {
              String thisToken = tokens.consume();
              boolean thisTokenIsPeriod = thisToken.equals(PERIOD);
              boolean thisTokenIsComma = thisToken.equals(COMMA);
              if (lastTokenWasPeriod || thisTokenIsPeriod || thisTokenIsComma) {
                  sb.append(thisToken);
              } else {
                  sb.append(SPACE).append(thisToken);
              }
              if (thisTokenIsPeriod) {
                  lastTokenWasPeriod = true;
              } else {
                  lastTokenWasPeriod = false;
              }
          }
  
          return sb.toString();
      }