]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/plan/PlanRealizer.java
(refs #7250) Refactoring CHR implementation
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / elaboration / chr / plan / PlanRealizer.java
1 package org.simantics.scl.compiler.elaboration.chr.plan;
2
3 import java.util.List;
4
5 import org.simantics.scl.compiler.compilation.CompilationContext;
6 import org.simantics.scl.compiler.elaboration.chr.CHRRuleset;
7 import org.simantics.scl.compiler.internal.codegen.references.IVal;
8 import org.simantics.scl.compiler.internal.codegen.writer.CodeWriter;
9
10 public class PlanRealizer extends PlanContext {
11     List<PlanOp> ops;
12     int id = 0;
13
14     public PlanRealizer(CompilationContext context, CHRRuleset ruleset, IVal storeVar, IVal contextVar, List<PlanOp> ops) {
15         super(context, ruleset, storeVar, contextVar);
16         this.ops = ops;
17     }
18
19     @Override
20     public void nextOp(CodeWriter w) {
21         PlanOp planOp = ops.get(id);
22         ++id;
23         planOp.generateCode(context, this, w);
24     }
25     
26 }