function parse(input) {
const fs = Graph();
let currentDir = "";
let parentDir = "";
input.split("\n").forEach((line) => {
if (line.startsWith("$ cd ")) {
let dir = line.slice(5);
if (dir === "..") {
currentDir = parentDir;
parentDir = fs.inNodes(parentDir)[0];
} else {
parentDir = currentDir;
currentDir = currentDir + "/" + dir;
}
} else if (!line.startsWith("$")) {
if (line.startsWith("dir ")) {
fs.addEdge(currentDir, currentDir + "/" + line.slice(4).trim());
} else {
const tokens = line.split(" ");
fs.addEdge(currentDir, tokens[1] + "," + tokens[0]);
}
}
});
return fs;
}