package org.archstudio.prolog.op.iso;
import java.util.List;
import org.archstudio.prolog.op.Executable;
import org.archstudio.prolog.term.Term;
/*
* "A *-> B ; C" is evaluated as a soft cut: if A succeeds, B is executed and on backtracking subsequent solutions of A
* are returned, but C is never executed. If A fails, C is executed. It is similar to ->/2, with the exception that ->/2
* cuts both A and the disjunction if A succeeds, whereas *->/2 cuts only the disjunction. The construct "A *-> B", i.e.
* without an Else branch, is translated as the normal conjunction A, B.
*/
public class SoftCut extends Conjunction implements Executable {
// Note: This is also evaluated in Disjunction, see that class for details
public SoftCut(String name, List<? extends Term> terms) {
super(name, terms);
}
}