protected boolean parseLineInternal(){
  int i=0;
  for (; tokenizer.valid(); tokenizer.advance(), i++) {
    if (!isLabelColumn(i) && !tokenizer.isQuoted()) {
      try {
        attributes.add(tokenizer.getDouble());
        continue;
      }
 catch (      NumberFormatException e) {
      }
    }
    String lbl=tokenizer.getStrippedSubstring();
    if (lbl.length() > 0) {
      haslabels=true;
      lbl=unique.addOrGet(lbl);
      labels.add(lbl);
    }
  }
  if (curvec == null && attributes.size == 0) {
    columnnames=new ArrayList<>(labels);
    haslabels=false;
    curvec=null;
    curlbl=null;
    labels.clear();
    return false;
  }
  curvec=createVector();
  curlbl=LabelList.make(labels);
  attributes.clear();
  labels.clear();
  return true;
}

protected boolean parseLineInternal ( ) { int i = 0 ; for ( ; tokenizer . valid ( ) ; tokenizer . advance ( ) , i ++ ) { if ( ! isLabelColumn ( i ) && ! tokenizer . isQuoted ( ) ) { try { attributes . add ( tokenizer . getDouble ( ) ) ; continue ; } catch ( NumberFormatException e ) { } } String lbl = tokenizer . getStrippedSubstring ( ) ; if ( lbl . length ( ) > 0 ) { haslabels = true ; lbl = unique . addOrGet ( lbl ) ; labels . add ( lbl ) ; } } if ( curvec == null && attributes . size == 0 ) { columnnames = new ArrayList < > ( labels ) ; haslabels = false ; curvec = null ; curlbl = null ; labels . clear ( ) ; return false ; } curvec = createVector ( ) ; curlbl = LabelList . make ( labels ) ; attributes . clear ( ) ; labels . clear ( ) ; return true ; }
internal method for parsing a single line . used by both line based parsing as well as block parsing . this saves the building of meta data for each line .
