code: private List<String> _readRecord() throws IOException {
  		while (true) {
  			int c = reader.read();
  			if (c < 0) {
  				return null;
  			} else if (!Character.isWhitespace(c)) {
  				if (commentStart != null && commentStart.indexOf(c) >= 0) {
  					while (c != '\n') {
  						c = reader.read();
  						if (c < 0) {
  							return null;
  						}
  					}
  				} else {
  					reader.unread(c);
  					break;
  				}
  			}
  		}
  
  		List<String> values = new ArrayList<>();
  		String value = readField();
  		values.add(value);
  		while (value != null) {
  			int c = reader.read();
  			if (c == SEPARATOR) {
  				value = readField();
  				values.add(value);
  			} else if (c < 0 || c == '\n') {
  				value = null;
  			}
  		}
  		return values;
  	}
docs: record = field *(COMMA field)