X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Felaboration%2Fchr%2Fplanning%2Fitems%2FGenericPrePlanItem.java;fp=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Felaboration%2Fchr%2Fplanning%2Fitems%2FGenericPrePlanItem.java;h=cbd63c5e6c8e23657fca86f64560e0a0805d89b5;hp=fcf42ee607eedac354970a96a292f6e45283bf34;hb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;hpb=24e2b34260f219f0d1644ca7a138894980e25b14 diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/planning/items/GenericPrePlanItem.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/planning/items/GenericPrePlanItem.java index fcf42ee60..cbd63c5e6 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/planning/items/GenericPrePlanItem.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/planning/items/GenericPrePlanItem.java @@ -1,128 +1,128 @@ -package org.simantics.scl.compiler.elaboration.chr.planning.items; - -import org.simantics.scl.compiler.common.exceptions.InternalCompilerError; -import org.simantics.scl.compiler.elaboration.chr.CHRLiteral; -import org.simantics.scl.compiler.elaboration.chr.CHRRelation; -import org.simantics.scl.compiler.elaboration.chr.plan.CheckOp; -import org.simantics.scl.compiler.elaboration.chr.plan.IterateConstraintOp; -import org.simantics.scl.compiler.elaboration.chr.plan.IterateRelationOp; -import org.simantics.scl.compiler.elaboration.chr.planning.PrePlanItem; -import org.simantics.scl.compiler.elaboration.chr.planning.QueryPlanningContext; -import org.simantics.scl.compiler.elaboration.chr.relations.CHRConstraint; -import org.simantics.scl.compiler.elaboration.chr.relations.ExternalCHRRelation; -import org.simantics.scl.compiler.elaboration.expressions.EApply; -import org.simantics.scl.compiler.elaboration.expressions.EConstant; -import org.simantics.scl.compiler.elaboration.expressions.EVariable; -import org.simantics.scl.compiler.elaboration.expressions.Expression; -import org.simantics.scl.compiler.elaboration.expressions.Variable; -import org.simantics.scl.compiler.elaboration.java.Builtins; -import org.simantics.scl.compiler.elaboration.relations.SCLRelation; - -import gnu.trove.set.hash.THashSet; -import gnu.trove.set.hash.TIntHashSet; - -public class GenericPrePlanItem extends PrePlanItem { - public CHRLiteral literal; - public CHRRelation relation; - public Expression[] expressions; - public TIntHashSet[] variableSets; - TIntHashSet allVars; - - public GenericPrePlanItem(CHRLiteral literal, CHRRelation relation, Expression[] expressions, - TIntHashSet[] variableSets, int secondaryPriority) { - super(secondaryPriority); - this.literal = literal; - this.relation = relation; - this.expressions = expressions; - this.variableSets = variableSets; - allVars = new TIntHashSet(); - for(TIntHashSet variableSet : variableSets) - allVars.addAll(variableSet); - updatePrimaryPriority(); - } - - private void updatePrimaryPriority() { - int boundCount = 0; - int boundMask = 0; - for(int i=0;i 1) { - THashSet usedVariables = new THashSet(freeVariableCount); - for(int i=0;i 1) { + THashSet usedVariables = new THashSet(freeVariableCount); + for(int i=0;i