if (',' == data[i] && '\\'!=prevB) {
consumeField(fieldIdx++, typeExtractor, output, data, fieldStart, i-fieldStart);
fieldStart = i+1;
consumeField(fieldIdx++, typeExtractor, output, data, fieldStart, i-fieldStart);
} else {
consumeField(fieldIdx++, typeExtractor, output, data, lastStart, lastStop-lastStart, fieldStart, i-fieldStart);
consumeField(fieldIdx++, typeExtractor, output, data, fieldStart, lineStop-fieldStart);
} else {
consumeField(fieldIdx++, typeExtractor, output, data, lastStart, lastStop-lastStart, fieldStart, lineStop-fieldStart);
if (',' == data[i] && '\\'!=prevB && (quoteCount&1)==0) {
consumeField(fieldIdx++, typeExtractor, output, data, fieldStart, i-fieldStart);
fieldStart = i+1;
consumeField(fieldIdx++, typeExtractor, output, data, fieldStart, lineStop-fieldStart);