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