function processor( parser ) {
	var escapeLastIndex;
	var quoteLastIndex;
	var doublequote;
	var escape;
	var quote;

	escapeLastIndex = parser._escapeLastIndex;
	escape = parser._escape;

	quoteLastIndex = parser._quoteLastIndex;
	quote = parser._quote;

	doublequote = parser._doublequote;

	return next;

	/**
	* Processes a character.
	*
	* @private
	* @param {string} ch - character
	* @returns {void}
	*/
	function next( ch ) {
		debug( 'Char: %s', ch );

		/*
		* Check for an escape character sequence.
		*/
		if (
			doublequote === false &&                // double quoting is disabled
			ch === escape[ escapeLastIndex ] &&     // we have a potential match
			parser._scan( escape, escapeLastIndex ) // we found a match
		) {
			debug( 'Escape.' );
			parser._push( ch )._changeState( QUOTED_ESCAPE );
			return;
		}
		/*
		* Check for an ending quote character sequence.
		*/
		if (
			ch === quote[ quoteLastIndex ] &&     // we have a potential match
			parser._scan( quote, quoteLastIndex ) // we found a match
		) {
			// Rewind the cursor to point to the last character before the quote character sequence:
			debug( 'Quote.' );
			parser._rewind( quoteLastIndex )._changeState( QUOTE_END );
			return;
		}
		// Continue processing until we can transition to a new state:
		parser._push( ch );
	}
}
Returns a function for processing a quoted field.

@private
@param {Parser} parser - parser instance
@returns {Function} processing function