You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					58 lines
				
				1.4 KiB
			
		
		
			
		
	
	
					58 lines
				
				1.4 KiB
			| 
								 
											4 years ago
										 
									 | 
							
								// Generated by CoffeeScript 1.3.3
							 | 
						||
| 
								 | 
							
								(function() {
							 | 
						||
| 
								 | 
							
								  var scan;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  scan = function(string, pattern, callback) {
							 | 
						||
| 
								 | 
							
								    var match, result;
							 | 
						||
| 
								 | 
							
								    result = "";
							 | 
						||
| 
								 | 
							
								    while (string.length > 0) {
							 | 
						||
| 
								 | 
							
								      match = string.match(pattern);
							 | 
						||
| 
								 | 
							
								      if (match) {
							 | 
						||
| 
								 | 
							
								        result += string.slice(0, match.index);
							 | 
						||
| 
								 | 
							
								        result += callback(match);
							 | 
						||
| 
								 | 
							
								        string = string.slice(match.index + match[0].length);
							 | 
						||
| 
								 | 
							
								      } else {
							 | 
						||
| 
								 | 
							
								        result += string;
							 | 
						||
| 
								 | 
							
								        string = "";
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    return result;
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  exports.split = function(line) {
							 | 
						||
| 
								 | 
							
								    var field, words;
							 | 
						||
| 
								 | 
							
								    if (line == null) {
							 | 
						||
| 
								 | 
							
								      line = "";
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    words = [];
							 | 
						||
| 
								 | 
							
								    field = "";
							 | 
						||
| 
								 | 
							
								    scan(line, /\s*(?:([^\s\\\'\"]+)|'((?:[^\'\\]|\\.)*)'|"((?:[^\"\\]|\\.)*)"|(\\.?)|(\S))(\s|$)?/, function(match) {
							 | 
						||
| 
								 | 
							
								      var dq, escape, garbage, raw, seperator, sq, word;
							 | 
						||
| 
								 | 
							
								      raw = match[0], word = match[1], sq = match[2], dq = match[3], escape = match[4], garbage = match[5], seperator = match[6];
							 | 
						||
| 
								 | 
							
								      if (garbage != null) {
							 | 
						||
| 
								 | 
							
								        throw new Error("Unmatched quote");
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								      field += word || (sq || dq || escape).replace(/\\(?=.)/, "");
							 | 
						||
| 
								 | 
							
								      if (seperator != null) {
							 | 
						||
| 
								 | 
							
								        words.push(field);
							 | 
						||
| 
								 | 
							
								        return field = "";
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								    if (field) {
							 | 
						||
| 
								 | 
							
								      words.push(field);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    return words;
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  exports.escape = function(str) {
							 | 
						||
| 
								 | 
							
								    if (str == null) {
							 | 
						||
| 
								 | 
							
								      str = "";
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    if (str == null) {
							 | 
						||
| 
								 | 
							
								      return "''";
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    return str.replace(/([^A-Za-z0-9_\-.,:\/@\n])/g, "\\$1").replace(/\n/g, "'\n'");
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}).call(this);
							 |