X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Felaboration%2Fchr%2Fplanning%2Fitems%2FGenericPrePlanItem.java;h=9dceb106ec2dee7d52e91056c255afe008cdaf8a;hb=21eae91e860f9f3cdb9cd0ee6fded24cdb8ca2f5;hp=fcf42ee607eedac354970a96a292f6e45283bf34;hpb=cb5fc8d606d8b322563e9345c441eecfa7f01753;p=simantics%2Fplatform.git 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..9dceb106e 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