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%2Fplan%2FAccessFactOp.java;h=ab37d253a50dbcfdf709553a13230f9f1f89fe54;hb=6f11a60dee43d620d500c0cf5af34a1d91c80a8b;hp=befcfdd5b99f6e44414256533281acc507e99b99;hpb=a8758de5bc19e5adb3f618d3038743a164f09912;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/plan/AccessFactOp.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/plan/AccessFactOp.java index befcfdd5b..ab37d253a 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/plan/AccessFactOp.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/plan/AccessFactOp.java @@ -1,51 +1,50 @@ -package org.simantics.scl.compiler.elaboration.chr.plan; - -import org.simantics.scl.compiler.compilation.CompilationContext; -import org.simantics.scl.compiler.constants.BooleanConstant; -import org.simantics.scl.compiler.elaboration.chr.relations.CHRConstraint; -import org.simantics.scl.compiler.elaboration.expressions.Expression; -import org.simantics.scl.compiler.elaboration.expressions.Variable; -import org.simantics.scl.compiler.internal.codegen.references.IVal; -import org.simantics.scl.compiler.internal.codegen.writer.CodeWriter; - -public class AccessFactOp extends PlanOp { - - Expression inputFact; - CHRConstraint constraint; - Variable[] variables; - boolean killAfterMatch; - - public AccessFactOp(long location, Expression inputFact, CHRConstraint constraint, Variable[] variables, - boolean killAfterMatch) { - super(location); - this.inputFact = inputFact; - this.constraint = constraint; - this.variables = variables; - this.killAfterMatch = killAfterMatch; - } - - @Override - public void toString(StringBuilder b) { - b.append("ACCESS "); - if(killAfterMatch) - b.append("- "); - b.append(constraint); - for(Variable variable : variables) - b.append(' ').append(variable); - b.append(" = ").append(inputFact); - } - - @Override - public void generateCode(CompilationContext context, PlanContext planContext, CodeWriter w) { - IVal inputVal = inputFact.toVal(context.environment, w); - for(int i=0;i