]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/plan/PlanContext.java
(refs #7250) Refactoring CHR implementation
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / elaboration / chr / plan / PlanContext.java
index aea2cbfdcd47b0921222e4ccde6a50fd0c34db1c..0ed3f8975d9bbaae4964d8f184453fdaa744b658 100644 (file)
@@ -2,8 +2,6 @@ package org.simantics.scl.compiler.elaboration.chr.plan;
 
 import java.util.ArrayList;
 
-import javax.crypto.CipherInputStream;
-
 import org.simantics.scl.compiler.compilation.CompilationContext;
 import org.simantics.scl.compiler.constants.IntegerConstant;
 import org.simantics.scl.compiler.constants.JavaComparisonOperation;
@@ -25,20 +23,22 @@ public abstract class PlanContext {
     public CompilationContext context;
     public CHRRuleset ruleset;
     public IVal storeVar;
+    public IVal contextVar;
     public ArrayList<PartnerFact> partnerFacts = new ArrayList<PartnerFact>();
     public IVal currentId;
     
-    public PlanContext(CompilationContext context, CHRRuleset ruleset, IVal storeVar) {
+    public PlanContext(CompilationContext context, CHRRuleset ruleset, IVal storeVar, IVal contextVar) {
         this.context = context;
         this.ruleset = ruleset;
         this.storeVar = storeVar;
+        this.contextVar = contextVar;
     }
 
     public abstract void nextOp(CodeWriter w);
 
     public IVal generateNewId(long location, CodeWriter w) {
         if(currentId == null)
-            currentId = w.apply(location, ruleset.readCurrentId, storeVar);
+            currentId = w.apply(location, ruleset.readCurrentId, contextVar);
         IVal result = currentId;
         currentId = w.apply(location, IncreaseByOne.INSTANCE, currentId);
         return result;