var tokenizer = function(line, delimiter, bound){
|
|
delimiter = (delimiter === undefined)? " " : delimiter;
|
|
bound = (bound === undefined)? "\"" : bound;
|
|
var tokens = [];
|
|
var i = 0;
|
|
var token = "";
|
|
var bounded = false;
|
|
for(var i = 0; i < line.length; ++i){
|
|
var next = line[i];
|
|
if(next === delimiter && !bounded){
|
|
if(token.length){
|
|
tokens.push(token);
|
|
token = "";
|
|
}
|
|
continue;
|
|
} else if(next === bound && line[i - 1] !== "\\"){
|
|
if(bounded){
|
|
bounded = false;
|
|
tokens.push(token);
|
|
token = "";
|
|
continue;
|
|
} else{
|
|
bounded = true;
|
|
|
|
if(token.length){
|
|
tokens.push(token);
|
|
token = "";
|
|
}
|
|
}
|
|
} else{
|
|
token += next;
|
|
}
|
|
}
|
|
if(token.length){
|
|
tokens.push(token);
|
|
}
|
|
return tokens;
|
|
};
|
|
|
|
return module.exports = tokenizer;
|