diff --git a/src/main/java/tfm/graphs/CFGGraph.java b/src/main/java/tfm/graphs/CFGGraph.java index f2cfae1aa75fef58d7cf421f2be34b961e0db594..8faf9e31b4e356a9e32abbd94c67aa4fcb3a1466 100644 --- a/src/main/java/tfm/graphs/CFGGraph.java +++ b/src/main/java/tfm/graphs/CFGGraph.java @@ -46,7 +46,7 @@ public class CFGGraph extends Graph { String nodes = getNodes().stream() .sorted(Comparator.comparingInt(GraphNode::getId)) - .map(node -> String.format("%s [label=\"%s: %s\"]", node.getId(), node.getId(), node.getData())) + .map(GraphNode::toGraphvizRepresentation) .collect(Collectors.joining(lineSep)); String arrows = diff --git a/src/main/java/tfm/nodes/GraphNode.java b/src/main/java/tfm/nodes/GraphNode.java index 622633148c04be03e130ca1aeb02c1e821db93e5..133b4cfbea085e8a68c0ee7e359af8d1e4e2f1b7 100644 --- a/src/main/java/tfm/nodes/GraphNode.java +++ b/src/main/java/tfm/nodes/GraphNode.java @@ -145,7 +145,9 @@ public class GraphNode extends Vertex { } public String toGraphvizRepresentation() { - return String.format("%s[label=\"%s: %s\"];", getId(), getId(), getData()); + String text = getData().replace("\\", "\\\\") + .replace("\"", "\\\""); + return String.format("%s[label=\"%s: %s\"];", getId(), getId(), text); } public Set getDeclaredVariables() {