From ea29df54d21ccfd8fcf93bac37f3b57bad327b13 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 11 Jun 2023 10:25:37 +0100 Subject: Escape strings in serialized instructions --- .../org/shedlang/compiler/stackir/InstructionSerializer.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src/main/java/org') diff --git a/src/main/java/org/shedlang/compiler/stackir/InstructionSerializer.java b/src/main/java/org/shedlang/compiler/stackir/InstructionSerializer.java index eb123e36..1acb949a 100644 --- a/src/main/java/org/shedlang/compiler/stackir/InstructionSerializer.java +++ b/src/main/java/org/shedlang/compiler/stackir/InstructionSerializer.java @@ -200,9 +200,16 @@ public class InstructionSerializer { serializeTree(named.value, builder, indentation); } case TreeString string -> { - // TODO: escaping builder.append("\""); - builder.append(string.value); + var escapedValue = string.value + .replace("\\", "\\\\") + .replace("\b", "\\b") + .replace("\t", "\\t") + .replace("\n", "\\n") + .replace("\f", "\\f") + .replace("\r", "\\r") + .replace("\"", "\\\""); + builder.append(escapedValue); builder.append("\""); } } -- cgit v1.2.3