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;
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;