Add escape codes in NativeStatement and VerbatimStatement writeJsonOutput() method
parent
fba113d82b
commit
50a2e7c44f
|
@ -61,8 +61,46 @@ void
|
||||||
NativeStatement::writeJsonOutput(ostream &output) const
|
NativeStatement::writeJsonOutput(ostream &output) const
|
||||||
{
|
{
|
||||||
output << R"({"statementName": "native")"
|
output << R"({"statementName": "native")"
|
||||||
<< R"(, "string": ")" << native_statement << R"(")"
|
<< R"(, "string": ")";
|
||||||
<< "}";
|
|
||||||
|
// A similar code is in VerbatimStatement::writeJsonOutput()
|
||||||
|
for (auto ch : native_statement)
|
||||||
|
switch (ch)
|
||||||
|
{
|
||||||
|
case '\b':
|
||||||
|
output << R"(\b)";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case '\f':
|
||||||
|
output << R"(\f)";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case '\n':
|
||||||
|
output << R"(\n)";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case '\r':
|
||||||
|
output << R"(\r)";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case '\t':
|
||||||
|
output << R"(\t)";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case '"':
|
||||||
|
output << R"(\")";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case '\\':
|
||||||
|
output << R"(\\)";
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
output << ch;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
output << R"("})";
|
||||||
}
|
}
|
||||||
|
|
||||||
VerbatimStatement::VerbatimStatement(string verbatim_statement_arg) :
|
VerbatimStatement::VerbatimStatement(string verbatim_statement_arg) :
|
||||||
|
@ -80,8 +118,46 @@ void
|
||||||
VerbatimStatement::writeJsonOutput(ostream &output) const
|
VerbatimStatement::writeJsonOutput(ostream &output) const
|
||||||
{
|
{
|
||||||
output << R"({"statementName": "verbatim")"
|
output << R"({"statementName": "verbatim")"
|
||||||
<< R"(, "string": ")" << verbatim_statement << R"(")"
|
<< R"(, "string": ")";
|
||||||
<< "}";
|
|
||||||
|
// A similar code is in NativeStatement::writeJsonOutput()
|
||||||
|
for (auto ch : verbatim_statement)
|
||||||
|
switch (ch)
|
||||||
|
{
|
||||||
|
case '\b':
|
||||||
|
output << R"(\b)";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case '\f':
|
||||||
|
output << R"(\f)";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case '\n':
|
||||||
|
output << R"(\n)";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case '\r':
|
||||||
|
output << R"(\r)";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case '\t':
|
||||||
|
output << R"(\t)";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case '"':
|
||||||
|
output << R"(\")";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case '\\':
|
||||||
|
output << R"(\\)";
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
output << ch;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
output << R"("})";
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
Loading…
Reference in New Issue