import org.simantics.scl.compiler.elaboration.chr.plan.PostCommitOp;
import org.simantics.scl.compiler.elaboration.chr.plan.PreCommitOp;
import org.simantics.scl.compiler.elaboration.chr.planning.QueryPlanningContext;
+import org.simantics.scl.compiler.elaboration.chr.relations.CHRConstraint;
import org.simantics.scl.compiler.elaboration.contexts.SimplificationContext;
import org.simantics.scl.compiler.elaboration.contexts.TranslationContext;
import org.simantics.scl.compiler.elaboration.contexts.TypingContext;
}
}
- public boolean createQueryPlan(QueryPlanningContext context, Expression inputFact, int activeLiteralId) {
+ public boolean createQueryPlan(QueryPlanningContext context, Expression inputFact, int activeLiteralId, CHRConstraint initConstraint) {
for(int i=0;i<literals.length;++i) {
CHRLiteral literal = literals[i];
if(i == activeLiteralId)
else
context.add(literal, i);
}
+ if(activeLiteralId == -1) {
+ context.addInitFact(initConstraint, inputFact);
+ }
return context.createQueryPlan();
}