Skip to content

Commit 95780e3

Browse files
committed
more printing
1 parent 7012de7 commit 95780e3

File tree

2 files changed

+25
-6
lines changed

2 files changed

+25
-6
lines changed

key.core/src/main/java/de/uka/ilkd/key/java/SpecialJavaPrinter.java

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import org.key_project.util.collection.ImmutableList;
2323

2424
import java.util.List;
25-
import java.util.Map;
2625
import java.util.stream.Collectors;
2726

2827
/**
@@ -86,25 +85,41 @@ private void print(List<TextualJMLConstruct> spec) {
8685
case TextualJMLClassAxiom c -> print(c.getModifiers(), c.getAxiom().first);
8786
case TextualJMLClassInv c -> print(c.getModifiers(), c.getInv());
8887
case TextualJMLDepends c -> print(c.getModifiers(), c.getDepends());
89-
case TextualJMLFieldDecl c -> {}
88+
case TextualJMLFieldDecl c -> {
89+
}
9090
case TextualJMLInitially c -> print(c.getModifiers(), c.getInv().first);
9191
case TextualJMLMergePointDecl c -> print(c.getModifiers(), c.getMergeProc());
9292
case TextualJMLMethodDecl c -> print(c.getModifiers(), c.getDecl());
9393
case TextualJMLModifierList c -> print(c.getModifiers());
9494
case TextualJMLRepresents c -> print(c.getModifiers(), c.getRepresents().first);
9595
case TextualJMLSetStatement c -> print(c.getAssignment());
96-
case TextualJMLSpecCase c -> print(c);
96+
case TextualJMLSpecCase c -> print(c.getModifiers(), c);
9797
default -> throw new IllegalStateException("Unexpected value: " + construct);
9898
}
9999
}
100100
}
101101

102102
private void print(ImmutableList<JMLModifier> modifiers, ImmutableList<LabeledParserRuleContext> depends) {
103-
103+
printer.print("\n/*@ ");
104+
print(modifiers);
105+
printer.print(" ");
106+
depends.forEach(it -> print(it.first));
107+
printer.print("*/\n");
108+
}
109+
110+
private void print(ImmutableList<JMLModifier> modifiers, TextualJMLSpecCase specCase) {
111+
printer.print("/*@ ");
112+
print(modifiers);
113+
printer.print(" ");
114+
printer.print(specCase.getBehavior().toString());
115+
specCase.getClauses().forEach(it -> {
116+
print(it);
117+
printer.print("\n");
118+
}
119+
);
120+
printer.print("\n*/");
104121
}
105-
private void print(TextualJMLSpecCase c) {
106122

107-
}
108123

109124
private void print(ImmutableList<JMLModifier> modifiers, @Nullable ParserRuleContext first) {
110125
if (first == null) return;

key.core/src/main/java/de/uka/ilkd/key/speclang/jml/pretranslation/TextualJMLSpecCase.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,10 @@ public ImmutableList<LabeledParserRuleContext> getDecreases() {
9595
return getList(DECREASES);
9696
}
9797

98+
public Iterable<ParserRuleContext> getClauses() {
99+
return clauses.stream().map(it -> it.ctx.first).collect(Collectors.toList());
100+
}
101+
98102
/**
99103
* Heap-independent clauses
100104
*/

0 commit comments

Comments
 (0)