Skip to content

Commit d4d2349

Browse files
committed
fixed bug in or clause / refactor inheritance
1 parent 2a721c2 commit d4d2349

1 file changed

Lines changed: 10 additions & 6 deletions

File tree

src/main/java/expr_parser/visitors/ComparisonEvalVisitor.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,33 @@
11
package expr_parser.visitors;
22

3-
import java.util.Map;
4-
53
import parser.LEMSExpressionParser;
64

7-
public class ComparisonEvalVisitor extends ContextEvalVisitor {
5+
public class ComparisonEvalVisitor extends EvalVisitor {
86

97
private boolean isTrue;
108

119
public boolean isTrue() {
1210
return isTrue;
1311
}
1412

15-
public ComparisonEvalVisitor(Map<String, Double> context) {
16-
super(context);
13+
@Override
14+
public Value visitTernary(LEMSExpressionParser.TernaryContext ctx) {
15+
if(visit(ctx.logic()).asBoolean())
16+
return new Value(visit(ctx.expression(0)).asDouble());
17+
else
18+
return new Value(visit(ctx.expression(1)).asDouble());
1719
}
1820

21+
@Override
1922
public Value visitAnd(LEMSExpressionParser.AndContext ctx) {
2023
Value left = visit(ctx.logic(0));
2124
Value right = visit(ctx.logic(1));
2225
return new Value(left.asBoolean() && right.asBoolean());
2326

2427
}
2528

26-
public Value visitOr(LEMSExpressionParser.AndContext ctx) {
29+
@Override
30+
public Value visitOr(LEMSExpressionParser.OrContext ctx) {
2731
Value left = visit(ctx.logic(0));
2832
Value right = visit(ctx.logic(1));
2933
return new Value(left.asBoolean() || right.asBoolean());

0 commit comments

Comments
 (0)