]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/plan/PreCommitOp.java
Merged changes from feature/scl to master.
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / elaboration / chr / plan / PreCommitOp.java
1 package org.simantics.scl.compiler.elaboration.chr.plan;\r
2 \r
3 import org.simantics.scl.compiler.compilation.CompilationContext;\r
4 import org.simantics.scl.compiler.internal.codegen.writer.CodeWriter;\r
5 \r
6 public class PreCommitOp extends PlanOp {\r
7     public PreCommitOp(long location) {\r
8         super(location);\r
9     }\r
10 \r
11     @Override\r
12     public void toString(StringBuilder b) {\r
13         b.append("PRE_COMMIT");\r
14     }\r
15 \r
16     @Override\r
17     public void generateCode(CompilationContext context, PlanContext planContext, CodeWriter w) {\r
18         for(PartnerFact activeFact : planContext.partnerFacts) {\r
19             if(activeFact.killAfterMatch)\r
20                 w.apply(location, activeFact.constraint.removeProcedure, planContext.storeVar, activeFact.factVar);\r
21         }\r
22         planContext.nextOp(w);\r
23     }\r
24 \r
25 }\r