in loader/lib/Scanner.js [495:532]
LineScanner.prototype.scan = function(spec) {
var scanner = new Scanner(spec.source, spec.lineStart, this.options);
var start, isEOL;
/* Find start of line */
do {
start = scanner.i;
scanner.skipWhitespace();
if(scanner.isInlineComment()) {
scanner.skipToEndOfLine();
}
} while(scanner.i > start); // while making progress through the file
scanner.skipLinePrefix(); // brings us to the end of prefix (if any)
spec.lineStart = scanner.i;
spec.lineHasFields = false;
/* Find end of line; set lineEnd if reached */
do {
if(scanner.isFieldSeparator()) {
if(udebug.is_debug && (! spec.lineHasFields)) {
udebug.log("lineHasFields - true at pos:", scanner.i);
}
spec.lineHasFields = true;
} else if(scanner.isStartQuote()) {
scanner.handleQuotedString(false);
}
scanner.advance(1);
isEOL = scanner.isEndOfLine();
} while(scanner.c && ! isEOL);
spec.atEnd = scanner.isAtEnd();
if(isEOL) {
spec.lineEnd = scanner.i;
}
udebug.log("LineScanner.scan returning", scanner.lineCount);
return scanner.lineCount;
};