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=d2379d7c01c591879e44a0510b65f836ecd8d6a0;hb=a2df536f7fc878982c6c960a79ed49f350cddc6f;hp=befcfdd5b99f6e44414256533281acc507e99b99;hpb=ca40974f87c9db00eb77aaf1acc1e9937b37261b;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..d2379d7c0 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,51 @@ -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