// 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);