private Object readDelimitedField()throws IOException,EOR{

		//read starting delimiter
		int i=reader.read();
		if(i!=delimiter){//fail
			reader.unread(i);
			throw new EOR();
		}

		//Inside the field ...
		boolean inside=true;
		StringBuilder builder=new StringBuilder();
		while(inside){
			i=reader.read();
			if(i<0){
				//In fact, the CSV file is bad. Fail.
				throw new EOR();
			}
			char c=(char)i;
			if(c==delimiter){
				i=reader.read();
				if(i==delimiter){
					//"" -> one escaped "
					builder.append(delimiter);
				}else{
					if(0<=i)reader.unread(i);
					//else System.out.println("here");
					reader.unread(delimiter);
					inside=false;
				}
			}else{
				builder.append(c);
			}
		}

		//read final delimiter
		i=reader.read();
		if(i!=delimiter){//fail
			reader.unread(i);
			throw new EOR();
		}

		String field=builder.toString();
		return parseField(field);
	}