about summary refs log tree commit diff stats
path: root/013literal_string.cc
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2015-05-28 11:28:15 -0700
committerKartik K. Agaram <vc@akkartik.com>2015-05-28 11:28:15 -0700
commit23fd54f120e7256ef3468721aa0c664985751d18 (patch)
tree10ac70dc2a969d30baf0e8b35b0d2f7f5eef56d3 /013literal_string.cc
parentadd0c3500e71df849ee7d3abf0e7670f742e8397 (diff)
downloadmu-23fd54f120e7256ef3468721aa0c664985751d18.tar.gz
1497 - 2 boneheaded bugs in parsing scenarios
Diffstat (limited to '013literal_string.cc')
-rw-r--r--013literal_string.cc12
1 files changed, 11 insertions, 1 deletions
diff --git a/013literal_string.cc b/013literal_string.cc
index 95f2975b..9b8ecba6 100644
--- a/013literal_string.cc
+++ b/013literal_string.cc
@@ -37,7 +37,11 @@ string slurp_quoted(istream& in) {
   int size = 0;
   while (!in.eof()) {
     char c = in.get();
-//?     cout << c << '\n'; //? 1
+//?     cout << (int)c << ": " << size << '\n'; //? 2
+    if (c == '\\') {
+      out << (char)in.get();
+      continue;
+    }
     out << c;
 //?     cout << out.str() << "$\n"; //? 1
     if (c == '[') ++size;
@@ -67,6 +71,12 @@ recipe main [
 ]
 +parse:   ingredient: {name: "abc [def]", properties: ["abc [def]": "literal-string"]}
 
+:(scenario string_literal_escaped)
+recipe main [
+  1:address:array:character <- copy [abc \[def]
+]
++parse:   ingredient: {name: "abc [def", properties: ["abc [def": "literal-string"]}
+
 :(scenario string_literal_and_comment)
 recipe main [
   1:address:array:character <- copy [abc]  # comment