// Generated by CoffeeScript 1.12.4 var Pattern, Unescaper, Utils; Utils = require('./Utils'); Pattern = require('./Pattern'); Unescaper = (function() { function Unescaper() {} Unescaper.PATTERN_ESCAPED_CHARACTER = new Pattern('\\\\([0abt\tnvfre "\\/\\\\N_LP]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})'); Unescaper.unescapeSingleQuotedString = function(value) { return value.replace(/\'\'/g, '\''); }; Unescaper.unescapeDoubleQuotedString = function(value) { if (this._unescapeCallback == null) { this._unescapeCallback = (function(_this) { return function(str) { return _this.unescapeCharacter(str); }; })(this); } return this.PATTERN_ESCAPED_CHARACTER.replace(value, this._unescapeCallback); }; Unescaper.unescapeCharacter = function(value) { var ch; ch = String.fromCharCode; switch (value.charAt(1)) { case '0': return ch(0); case 'a': return ch(7); case 'b': return ch(8); case 't': return "\t"; case "\t": return "\t"; case 'n': return "\n"; case 'v': return ch(11); case 'f': return ch(12); case 'r': return ch(13); case 'e': return ch(27); case ' ': return ' '; case '"': return '"'; case '/': return '/'; case '\\': return '\\'; case 'N': return ch(0x0085); case '_': return ch(0x00A0); case 'L': return ch(0x2028); case 'P': return ch(0x2029); case 'x': return Utils.utf8chr(Utils.hexDec(value.substr(2, 2))); case 'u': return Utils.utf8chr(Utils.hexDec(value.substr(2, 4))); case 'U': return Utils.utf8chr(Utils.hexDec(value.substr(2, 8))); default: return ''; } }; return Unescaper; })(); module.exports = Unescaper;