Skip to content

Commit ee8be8e

Browse files
author
Julia Pham
committed
fix: nested multiOr/multiAnd constraints
1 parent 18795c2 commit ee8be8e

2 files changed

Lines changed: 14 additions & 2 deletions

File tree

src/main/java/de/vill/main/UVLListener.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -352,7 +352,13 @@ public void exitNotConstraint(UVLJavaParser.NotConstraintContext ctx) {
352352
public void exitAndConstraint(UVLJavaParser.AndConstraintContext ctx) {
353353
Constraint rightConstraint = constraintStack.pop();
354354
Constraint leftConstraint = constraintStack.pop();
355-
Constraint constraint = new AndConstraint(leftConstraint, rightConstraint);
355+
Constraint constraint;
356+
if (leftConstraint instanceof AndConstraint) {
357+
((AndConstraint) leftConstraint).addChild(rightConstraint);
358+
constraint = leftConstraint;
359+
} else {
360+
constraint = new AndConstraint(leftConstraint, rightConstraint);
361+
}
356362
constraintStack.push(constraint);
357363
Token t = ctx.getStart();
358364
int line = t.getLine();
@@ -363,7 +369,13 @@ public void exitAndConstraint(UVLJavaParser.AndConstraintContext ctx) {
363369
public void exitOrConstraint(UVLJavaParser.OrConstraintContext ctx) {
364370
Constraint rightConstraint = constraintStack.pop();
365371
Constraint leftConstraint = constraintStack.pop();
366-
Constraint constraint = new OrConstraint(leftConstraint, rightConstraint);
372+
Constraint constraint;
373+
if (leftConstraint instanceof OrConstraint) {
374+
((OrConstraint) leftConstraint).addChild(rightConstraint);
375+
constraint = leftConstraint;
376+
} else {
377+
constraint = new OrConstraint(leftConstraint, rightConstraint);
378+
}
367379
constraintStack.push(constraint);
368380
Token t = ctx.getStart();
369381
int line = t.getLine();

src/main/java/de/vill/model/constraint/MultiOrConstraint.java

Whitespace-only changes.

0 commit comments

Comments
 (0)