Skip to content

Commit f2d96ef

Browse files
committed
OptimizationDumper теперь использует PrintVisitor
1 parent 33991e3 commit f2d96ef

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

src/main/java/com/annimon/ownlang/utils/OptimizationDumper.java

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import com.annimon.ownlang.parser.optimization.ExpressionSimplification;
1111
import com.annimon.ownlang.parser.optimization.InstructionCombining;
1212
import com.annimon.ownlang.parser.optimization.Optimizable;
13+
import com.annimon.ownlang.parser.visitors.PrintVisitor;
1314
import java.io.File;
1415
import java.io.FileOutputStream;
1516
import java.io.IOException;
@@ -45,19 +46,19 @@ private static Map<String, String> getOptimizationSteps(String input) throws IOE
4546
int optimizationPasses = 1;
4647
int lastBatchModificationCount;
4748
int batchModificationCount = 0;
48-
result.put("Source", node.toString());
49+
result.put("Source", nodeToString(node));
4950
do {
5051
lastBatchModificationCount = batchModificationCount;
5152
batchModificationCount = 0;
5253
for (Optimizable optimization : OPTIMIZATIONS) {
53-
final String lastSource = node.toString();
54+
final String lastSource = nodeToString(node);
5455
node = optimization.optimize(node);
55-
final String currentSource = node.toString();
56+
final String currentSource = nodeToString(node);
5657
if (!lastSource.equals(currentSource)) {
5758
final String optName = String.format("%s, %d pass",
5859
optimization.getClass().getSimpleName(),
5960
optimizationPasses);
60-
result.put(optName, node.toString());
61+
result.put(optName, nodeToString(node));
6162
}
6263
batchModificationCount += optimization.optimizationsCount();
6364
}
@@ -66,6 +67,11 @@ private static Map<String, String> getOptimizationSteps(String input) throws IOE
6667
return result;
6768
}
6869

70+
private static String nodeToString(Node n) {
71+
// return n.toString();
72+
return n.accept(new PrintVisitor(), new StringBuilder()).toString();
73+
}
74+
6975
private static void writeStepsToFile(Map<String, String> optimizationSteps) throws IOException {
7076
Arrays.stream(WORK_DIR.listFiles((d, name) -> name.endsWith(".txt")))
7177
.forEach(File::delete);
@@ -84,12 +90,14 @@ private static void writeStepsToFile(Map<String, String> optimizationSteps) thro
8490

8591
private static void writeSummary(final Map<String, String> optimizationSteps) throws IOException {
8692
final StringBuilder sb = new StringBuilder();
93+
sb.append("[pr]");
8794
for (Map.Entry<String, String> entry : optimizationSteps.entrySet()) {
8895
sb.append(entry.getKey());
89-
sb.append("\n\n");
96+
sb.append("\n[code own]");
9097
sb.append(entry.getValue());
91-
sb.append("\n\n-----------\n\n");
98+
sb.append("[/code][sl]\n");
9299
}
100+
sb.append("[/pr]");
93101
writeContent(new File(WORK_DIR, "summary.txt"),
94102
writer -> writer.write(sb.toString()));
95103
}

0 commit comments

Comments
 (0)