scratch
/bower_components/yaml.js/lib/Unescaper.js |
@@ -0,0 +1,83 @@ |
// Generated by CoffeeScript 1.10.0 |
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; |