Skip to content

Commit a08e169

Browse files
committed
Code Refactoring
1 parent 0aa749a commit a08e169

File tree

16 files changed

+92
-125
lines changed

16 files changed

+92
-125
lines changed

liquidjava-verifier/src/main/java/liquidjava/diagnostics/errors/RefinementError.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@
55
import java.util.stream.Collectors;
66

77
import liquidjava.diagnostics.TranslationTable;
8+
import liquidjava.rj_language.ast.Var;
9+
import liquidjava.rj_language.ast.prettyprinting.VariableFormatter;
810
import liquidjava.rj_language.opt.derivation_node.ValDerivationNode;
911
import liquidjava.smt.Counterexample;
10-
import liquidjava.utils.VariableFormatter;
1112
import spoon.reflect.cu.SourcePosition;
1213

1314
/**
@@ -23,10 +24,8 @@ public class RefinementError extends LJError {
2324

2425
public RefinementError(SourcePosition position, ValDerivationNode expected, ValDerivationNode found,
2526
TranslationTable translationTable, Counterexample counterexample, String customMessage) {
26-
super("Refinement Error",
27-
String.format("%s is not a subtype of %s", VariableFormatter.formatText(found.getValue().toString()),
28-
VariableFormatter.formatText(expected.getValue().toString())),
29-
position, translationTable, customMessage);
27+
super("Refinement Error", String.format("%s is not a subtype of %s", found.getValue().toDisplayString(),
28+
expected.getValue().toDisplayString()), position, translationTable, customMessage);
3029
this.expected = expected;
3130
this.found = found;
3231
this.counterexample = counterexample;
@@ -50,11 +49,11 @@ public String getCounterExampleString() {
5049
// only include variables that appear in the found value
5150
.filter(a -> foundVarNames.contains(a.first()))
5251
// format as "var == value"
53-
.map(a -> VariableFormatter.formatVariable(a.first()) + " == " + a.second())
52+
.map(a -> VariableFormatter.format(a.first()) + " == " + a.second())
5453
// join with "&&"
5554
.collect(Collectors.joining(" && "));
5655

57-
String foundString = VariableFormatter.formatText(found.getValue().toString());
56+
String foundString = found.getValue().toDisplayString();
5857
if (counterexampleString.isEmpty() || counterexampleString.equals(foundString))
5958
return null;
6059

liquidjava-verifier/src/main/java/liquidjava/diagnostics/errors/StateRefinementError.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import liquidjava.diagnostics.TranslationTable;
44
import liquidjava.rj_language.ast.Expression;
5-
import liquidjava.utils.VariableFormatter;
65
import spoon.reflect.cu.SourcePosition;
76

87
/**
@@ -17,11 +16,11 @@ public class StateRefinementError extends LJError {
1716

1817
public StateRefinementError(SourcePosition position, Expression expected, Expression found,
1918
TranslationTable translationTable, String customMessage) {
20-
super("State Refinement Error", String.format("Expected state %s but found %s",
21-
VariableFormatter.formatText(expected.toString()), VariableFormatter.formatText(found.toString())),
19+
super("State Refinement Error",
20+
String.format("Expected state %s but found %s", expected.toDisplayString(), found.toDisplayString()),
2221
position, translationTable, customMessage);
23-
this.expected = VariableFormatter.formatText(expected.toString());
24-
this.found = VariableFormatter.formatText(found.toString());
22+
this.expected = expected.toDisplayString();
23+
this.found = found.toDisplayString();
2524
}
2625

2726
public String getExpected() {

liquidjava-verifier/src/main/java/liquidjava/rj_language/ast/AliasInvocation.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import java.util.ArrayList;
44
import java.util.List;
5+
import java.util.stream.Collectors;
6+
57
import liquidjava.diagnostics.errors.LJError;
68
import liquidjava.rj_language.visitors.ExpressionVisitor;
79

@@ -29,7 +31,7 @@ public <T> T accept(ExpressionVisitor<T> visitor) throws LJError {
2931

3032
@Override
3133
public String toString() {
32-
return ExpressionPrinter.print(this);
34+
return name + "(" + getArgs().stream().map(Expression::toString).collect(Collectors.joining(", ")) + ")";
3335
}
3436

3537
@Override

liquidjava-verifier/src/main/java/liquidjava/rj_language/ast/BinaryExpression.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public boolean isArithmeticOperation() {
4242

4343
@Override
4444
public String toString() {
45-
return ExpressionPrinter.print(this);
45+
return getFirstOperand().toString() + " " + op + " " + getSecondOperand().toString();
4646
}
4747

4848
@Override

liquidjava-verifier/src/main/java/liquidjava/rj_language/ast/Expression.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import liquidjava.processor.context.Context;
1212
import liquidjava.processor.context.GhostFunction;
1313
import liquidjava.processor.facade.AliasDTO;
14+
import liquidjava.rj_language.ast.prettyprinting.ExpressionPrinter;
1415
import liquidjava.rj_language.ast.typing.TypeInfer;
1516
import liquidjava.rj_language.visitors.ExpressionVisitor;
1617
import liquidjava.utils.Utils;
@@ -36,6 +37,10 @@ public abstract class Expression {
3637

3738
public abstract String toString();
3839

40+
public String toDisplayString() {
41+
return ExpressionPrinter.print(this);
42+
}
43+
3944
List<Expression> children = new ArrayList<>();
4045

4146
public void addChild(Expression e) {

liquidjava-verifier/src/main/java/liquidjava/rj_language/ast/FunctionInvocation.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import java.util.ArrayList;
44
import java.util.List;
5+
import java.util.stream.Collectors;
6+
57
import liquidjava.diagnostics.errors.LJError;
68
import liquidjava.rj_language.visitors.ExpressionVisitor;
79
import liquidjava.utils.Utils;
@@ -35,7 +37,8 @@ public <T> T accept(ExpressionVisitor<T> visitor) throws LJError {
3537

3638
@Override
3739
public String toString() {
38-
return ExpressionPrinter.print(this);
40+
return Utils.getSimpleName(name) + "("
41+
+ getArgs().stream().map(Expression::toString).collect(Collectors.joining(",")) + ")";
3942
}
4043

4144
@Override

liquidjava-verifier/src/main/java/liquidjava/rj_language/ast/GroupExpression.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public <T> T accept(ExpressionVisitor<T> visitor) throws LJError {
2121
}
2222

2323
public String toString() {
24-
return ExpressionPrinter.print(this);
24+
return getExpression().toString();
2525
}
2626

2727
@Override

liquidjava-verifier/src/main/java/liquidjava/rj_language/ast/Ite.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public <T> T accept(ExpressionVisitor<T> visitor) throws LJError {
3232

3333
@Override
3434
public String toString() {
35-
return ExpressionPrinter.print(this);
35+
return getCondition().toString() + " ? " + getThen().toString() + " : " + getElse().toString();
3636
}
3737

3838
@Override

liquidjava-verifier/src/main/java/liquidjava/rj_language/ast/UnaryExpression.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public <T> T accept(ExpressionVisitor<T> visitor) throws LJError {
2929

3030
@Override
3131
public String toString() {
32-
return ExpressionPrinter.print(this);
32+
return op + getExpression().toString();
3333
}
3434

3535
@Override

liquidjava-verifier/src/main/java/liquidjava/rj_language/ast/ExpressionPrinter.java renamed to liquidjava-verifier/src/main/java/liquidjava/rj_language/ast/prettyprinting/ExpressionPrinter.java

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,21 @@
1-
package liquidjava.rj_language.ast;
1+
package liquidjava.rj_language.ast.prettyprinting;
22

33
import java.util.stream.Collectors;
44

5-
import liquidjava.diagnostics.errors.LJError;
5+
import liquidjava.rj_language.ast.AliasInvocation;
6+
import liquidjava.rj_language.ast.BinaryExpression;
7+
import liquidjava.rj_language.ast.Expression;
8+
import liquidjava.rj_language.ast.FunctionInvocation;
9+
import liquidjava.rj_language.ast.GroupExpression;
10+
import liquidjava.rj_language.ast.Ite;
11+
import liquidjava.rj_language.ast.LiteralBoolean;
12+
import liquidjava.rj_language.ast.LiteralChar;
13+
import liquidjava.rj_language.ast.LiteralInt;
14+
import liquidjava.rj_language.ast.LiteralLong;
15+
import liquidjava.rj_language.ast.LiteralReal;
16+
import liquidjava.rj_language.ast.LiteralString;
17+
import liquidjava.rj_language.ast.UnaryExpression;
18+
import liquidjava.rj_language.ast.Var;
619
import liquidjava.rj_language.visitors.ExpressionVisitor;
720
import liquidjava.utils.Utils;
821

@@ -136,17 +149,17 @@ public String visitLiteralLong(LiteralLong lit) {
136149

137150
@Override
138151
public String visitLiteralBoolean(LiteralBoolean lit) {
139-
return Boolean.toString(lit.value);
152+
return lit.toString();
140153
}
141154

142155
@Override
143156
public String visitLiteralChar(LiteralChar lit) {
144-
return "'" + lit.getValue() + "'";
157+
return lit.toString();
145158
}
146159

147160
@Override
148161
public String visitLiteralReal(LiteralReal lit) {
149-
return Double.toString(lit.getValue());
162+
return lit.toString();
150163
}
151164

152165
@Override
@@ -161,6 +174,6 @@ public String visitUnaryExpression(UnaryExpression exp) {
161174

162175
@Override
163176
public String visitVar(Var var) {
164-
return var.getName();
177+
return VariableFormatter.format(var.getName());
165178
}
166179
}

0 commit comments

Comments
 (0)