@@ -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 ();
0 commit comments