Полагаю, у этого вопроса есть разные решения.В зависимости от требования, вы можете захотеть элегантное решение, которое может позволить вам легко оценить шаблон для окончательного результата.Затем вам нужно понять формат файла graphviz и, возможно, идентифицировать код по блокам как узлы.Тогда задача проста: вывести узлы (я имею в виду код, повторяющий узел) глубины i с отступами = i * 4 пробела.
Поскольку я ничего не знаю о файле graphviz, я, вероятно, просто буду рассматривать его как простой текстовый файл.Так что все, что вам нужно сделать, это
1. open the graph file,
2. create a temp file for the final output
3. set indent = 0.
4. read one line, if not null, search the line for braces, for every opening brace, ++indent
and --indent for every closing brace.
NOTE:you need to escape the escaped braces if there is any. say "{" or \{
5. write the line to the temp file with preceding spaces = 4*indent (assuming you want 4 spaces for every indent)
6. close both files. if needed, replace the old file with the temp file.
Поскольку я, вероятно, неправильно понимаю ваше усвоение, псевдокод может быть бесполезным в функциональном отношении.Но у тебя есть идея; -)