From 7cc045d93e1b328cb741173c3746d7c1b91d50d0 Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Sat, 13 Jun 2015 23:17:13 -0700 Subject: 1560 --- 013literal_string.cc | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to '013literal_string.cc') diff --git a/013literal_string.cc b/013literal_string.cc index 41644b1c..3d60a30f 100644 --- a/013literal_string.cc +++ b/013literal_string.cc @@ -69,6 +69,26 @@ string slurp_quoted(istream& in) { return; } +:(after "string reagent::to_string()") + if (!properties.at(0).second.empty() && properties.at(0).second.at(0) == "literal-string") { + return emit_literal_string(name); + } + +:(code) +string emit_literal_string(string name) { + size_t pos = 0; + while (pos != string::npos) + pos = replace(name, "\n", "\\n", pos); + return "{name: \""+name+"\", properties: [_: \"literal-string\"]}"; +} + +size_t replace(string& str, const string& from, const string& to, size_t n) { + size_t result = str.find(from, n); + if (result != string::npos) + str.replace(result, from.length(), to); + return result; +} + :(scenario string_literal_nested) recipe main [ 1:address:array:character <- copy [abc [def]] -- cgit 1.4.1-2-gfad0