-package org.simantics.scl.compiler.elaboration.chr.plan;\r
-\r
-import org.simantics.scl.compiler.constants.Constant;\r
-import org.simantics.scl.compiler.constants.JavaComparisonOperation;\r
-import org.simantics.scl.compiler.constants.JavaComparisonToZeroOperation;\r
-import org.simantics.scl.compiler.elaboration.chr.relations.CHRConstraint;\r
-import org.simantics.scl.compiler.internal.codegen.continuations.ICont;\r
-import org.simantics.scl.compiler.internal.codegen.references.IVal;\r
-import org.simantics.scl.compiler.internal.codegen.writer.CodeWriter;\r
-\r
-public class PartnerFact {\r
- public final boolean active;\r
- public final IVal id;\r
- public final CHRConstraint constraint;\r
- public final IVal factVar;\r
- public final boolean mayBeRemoved;\r
- public final boolean killAfterMatch;\r
-\r
- public final Constant nextFact;\r
- public final ICont continueCont;\r
- public final ICont finishCont;\r
- \r
- public PartnerFact(boolean active, IVal id, CHRConstraint constraint, IVal factVar, boolean mayBeRemoved, boolean killAfterMatch,\r
- Constant nextFact, ICont continueCont, ICont finishCont) {\r
- this.active = active;\r
- this.id = id;\r
- this.constraint = constraint;\r
- this.factVar = factVar;\r
- this.mayBeRemoved = mayBeRemoved;\r
- this.killAfterMatch = killAfterMatch;\r
- this.nextFact = nextFact;\r
- this.continueCont = continueCont;\r
- this.finishCont = finishCont;\r
- }\r
- \r
- public IVal isAlive(long location, CodeWriter w) {\r
- return w.apply(location, JavaComparisonOperation.IEQUAL, w.apply(location, constraint.accessId, factVar), id);\r
- }\r
- \r
- public IVal isAlive(long location, CodeWriter w, IVal fact) {\r
- return w.apply(location, JavaComparisonToZeroOperation.IGREATER_OR_EQUAL, w.apply(location, constraint.accessId, fact));\r
- }\r
-}\r
+package org.simantics.scl.compiler.elaboration.chr.plan;
+
+import org.simantics.scl.compiler.constants.Constant;
+import org.simantics.scl.compiler.constants.JavaComparisonOperation;
+import org.simantics.scl.compiler.constants.JavaComparisonToZeroOperation;
+import org.simantics.scl.compiler.elaboration.chr.relations.CHRConstraint;
+import org.simantics.scl.compiler.internal.codegen.continuations.ICont;
+import org.simantics.scl.compiler.internal.codegen.references.IVal;
+import org.simantics.scl.compiler.internal.codegen.writer.CodeWriter;
+
+public class PartnerFact {
+ public final boolean active;
+ public final IVal id;
+ public final CHRConstraint constraint;
+ public final IVal factVar;
+ public final boolean mayBeRemoved;
+ public final boolean killAfterMatch;
+
+ public final Constant nextFact;
+ public final ICont continueCont;
+ public final ICont finishCont;
+
+ public PartnerFact(boolean active, IVal id, CHRConstraint constraint, IVal factVar, boolean mayBeRemoved, boolean killAfterMatch,
+ Constant nextFact, ICont continueCont, ICont finishCont) {
+ this.active = active;
+ this.id = id;
+ this.constraint = constraint;
+ this.factVar = factVar;
+ this.mayBeRemoved = mayBeRemoved;
+ this.killAfterMatch = killAfterMatch;
+ this.nextFact = nextFact;
+ this.continueCont = continueCont;
+ this.finishCont = finishCont;
+ }
+
+ public IVal isAlive(long location, CodeWriter w) {
+ return w.apply(location, JavaComparisonOperation.IEQUAL, w.apply(location, constraint.accessId, factVar), id);
+ }
+
+ public IVal isAlive(long location, CodeWriter w, IVal fact) {
+ return w.apply(location, JavaComparisonToZeroOperation.IGREATER_OR_EQUAL, w.apply(location, constraint.accessId, fact));
+ }
+}