void decode_escape()

in src/codec/string.cpp [124:138]


void decode_escape(decode_context &context, std::string &out) {
  const auto escape_character = detail::next(context, "Unterminated string");
  switch (escape_character) {
    case '"':  out.push_back('"');  break;
    case '/':  out.push_back('/');  break;
    case 'b':  out.push_back('\b'); break;
    case 'f':  out.push_back('\f'); break;
    case 'n':  out.push_back('\n'); break;
    case 'r':  out.push_back('\r'); break;
    case 't':  out.push_back('\t'); break;
    case '\\': out.push_back('\\'); break;
    case 'u': decode_unicode_escape(context, out); break;
    default: detail::fail(context, "Invalid escape character", -1);
  }
}