function unescapeReferenceToken(rawReferenceToken) {
    // Unescapes reference token. See Section 3 of specification.

    var referenceToken = rawReferenceToken;
    var character;
    var escapeSequence;
    var pair;
    var replaceRegExp;

    // Order of unescaping does matter.
    // That's why an array is used here and not hash.
    for (var i = 0; i < SPECIAL_CHARACTERS.length; i++) {
      pair = SPECIAL_CHARACTERS[i];
      character = pair[0];
      escapeSequence = pair[1];
      replaceRegExp = new RegExp(escapeSequence, 'g');
      referenceToken = referenceToken.replace(replaceRegExp, character);
    }

    return referenceToken;
  }
Decodes all escape sequences in given |rawReferenceToken|.
@param {!string} rawReferenceToken
@returns {string} Unescaped reference token.