]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/plan/PostCommitOp.java
(refs #7250) Refactoring CHR implementation
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / elaboration / chr / plan / PostCommitOp.java
index af41f932b69f08084b6818134493606e33bb7574..de00093cfcd9cc7c31d3576693062a3d62c0434a 100644 (file)
@@ -3,6 +3,7 @@ package org.simantics.scl.compiler.elaboration.chr.plan;
 import org.simantics.scl.compiler.compilation.CompilationContext;
 import org.simantics.scl.compiler.constants.IntegerConstant;
 import org.simantics.scl.compiler.constants.singletons.NullCheck;
+import org.simantics.scl.compiler.elaboration.chr.CHRRuleset;
 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;
@@ -24,9 +25,9 @@ public class PostCommitOp extends PlanOp {
     @Override
     public void generateCode(CompilationContext context, PlanContext planContext, CodeWriter w) {
         if(planContext.currentId != null) {
-            w.apply(location, planContext.ruleset.writeCurrentId, planContext.storeVar, planContext.currentId);
+            w.apply(location, planContext.ruleset.writeCurrentId, planContext.contextVar, planContext.currentId);
             planContext.currentId = null;
-            w.apply(location, planContext.ruleset.activateProcedure, planContext.storeVar, new IntegerConstant(priority));
+            w.apply(location, CHRRuleset.ACTIVATE, planContext.contextVar, new IntegerConstant(priority));
         }
         for(PartnerFact activeFact : planContext.partnerFacts) {
             if(activeFact.killAfterMatch) {
@@ -35,7 +36,7 @@ public class PostCommitOp extends PlanOp {
                 else {
                     CodeWriter iterateAlive = w.createBlock(activeFact.constraint.factType);
                     w.jump(iterateAlive.getContinuation(), w.apply(location, activeFact.nextFact, activeFact.factVar));
-                    iterateUntilLiveFactFound(iterateAlive, activeFact);                    
+                    iterateUntilLiveFactFound(iterateAlive, activeFact);
                 }
                 break;
             }