private String nextToken() {
		if (line.charAt(next) != '\'') {
			int comma = line.indexOf(',', next);
			String token;
			if (comma >= 0) { // Comma separator found
				token = line.substring(next, comma);
				next = comma + 1;
			} else {          // This is the last data field
				token = line.substring(next);
				next = line.length();
			}      
			return token;
		} else { 
			int quote = line.indexOf('\'', next+1);
			String token;
			if (quote >= 0) { // End of string found
				token = line.substring(next+1, quote);
				next = quote + 2;
			} else {          // Malformed string
				next = line.length();
				throw new IllegalArgumentException("Cannot parse: " + line.substring(next));
			}      
			return token;
		}
	}