Skip to content

Commit 429f91c

Browse files
committed
Fix field names in Isabelle translation
1 parent 1031e0f commit 429f91c

2 files changed

Lines changed: 17 additions & 6 deletions

File tree

keyext.isabelletranslation/src/main/java/org/key_project/isabelletranslation/translation/FieldHandler.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import java.util.regex.Pattern;
1313

1414
import de.uka.ilkd.key.java.Services;
15+
import de.uka.ilkd.key.logic.JavaDLFieldNames;
1516

1617
import org.key_project.logic.Name;
1718
import org.key_project.logic.Namespace;
@@ -58,8 +59,10 @@ public boolean canHandle(Operator op) {
5859
public StringBuilder handle(IsabelleMasterHandler trans, Term term) {
5960
if (trans.isNewSymbol(term)) {
6061
Operator op = term.op();
61-
Matcher m = Pattern.compile("<(.*?)>").matcher(op.name().toString());
62-
String fieldName = op.name().toString().replace("::$", "_").replace(".", "_");
62+
Matcher m = Pattern.compile("\\" + JavaDLFieldNames.IMPLICIT_NAME_PREFIX + "(.*?)")
63+
.matcher(op.name().toString());
64+
String fieldName = op.name().toString()
65+
.replace(JavaDLFieldNames.IMPLICIT_FIELD_INFIX, "_").replace(".", "_");
6366
if (m.find()) {
6467
fieldName = m.group(1);
6568
}

keyext.isabelletranslation/src/main/java/org/key_project/isabelletranslation/translation/ObserverFunctionHandler.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import java.util.regex.Pattern;
1010

1111
import de.uka.ilkd.key.java.Services;
12+
import de.uka.ilkd.key.logic.JavaDLFieldNames;
1213
import de.uka.ilkd.key.logic.op.ObserverFunction;
1314

1415
import org.key_project.logic.Term;
@@ -34,15 +35,22 @@ public boolean canHandle(Operator op) {
3435
public StringBuilder handle(IsabelleMasterHandler trans, Term term) {
3536
if (trans.isNewSymbol(term)) {
3637
Operator op = term.op();
37-
Matcher m = Pattern.compile("<(.*?)>").matcher(op.name().toString());
38+
Matcher m = Pattern.compile("\\" + JavaDLFieldNames.IMPLICIT_NAME_PREFIX + "(.*?)")
39+
.matcher(op.name().toString());
3840
String functionName;
3941
if (m.find()) {
4042
functionName =
41-
op.name().toString().replace("<" + m.group(1) + ">", "_" + m.group(1))
42-
.replace("::", "_").replace("$", "").replace(".", "_");
43+
op.name().toString()
44+
.replace(JavaDLFieldNames.IMPLICIT_NAME_PREFIX + m.group(1),
45+
"_" + m.group(1))
46+
.replace(JavaDLFieldNames.SEPARATOR, "_")
47+
.replace(JavaDLFieldNames.IMPLICIT_NAME_PREFIX + "", "")
48+
.replace(".", "_");
4349
} else {
4450
functionName =
45-
op.name().toString().replace("::", "_").replace("$", "").replace(".", "_");
51+
op.name().toString().replace(JavaDLFieldNames.SEPARATOR, "_")
52+
.replace(JavaDLFieldNames.FIELD_PREFIX + "", "")
53+
.replace(".", "_");
4654
}
4755
trans.addSymbolAndDeclaration(term, new StringBuilder(functionName));
4856
}

0 commit comments

Comments
 (0)