]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/CHRRulesetObject.java
(refs #7250) Refactoring CHR implementation
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / elaboration / chr / CHRRulesetObject.java
index f14cb0c6b10b4771f410fc0d1f8c45d5176fea49..a15e30e42638d6674a542478de4e3e8cd9aeaebb 100644 (file)
@@ -1,31 +1,31 @@
-package org.simantics.scl.compiler.elaboration.chr;\r
-\r
-import org.simantics.scl.compiler.constants.Constant;\r
-import org.simantics.scl.compiler.constants.JavaConstructor;\r
-import org.simantics.scl.compiler.internal.codegen.chr.CHRCodeGenerator;\r
-import org.simantics.scl.compiler.internal.codegen.references.BoundVar;\r
-import org.simantics.scl.compiler.internal.codegen.ssa.SSAObject;\r
-import org.simantics.scl.compiler.internal.codegen.utils.ModuleBuilder;\r
-import org.simantics.scl.compiler.types.Types;\r
-\r
-public class CHRRulesetObject extends SSAObject {\r
-    CHRRuleset ruleset;\r
-\r
-    public CHRRulesetObject(BoundVar target, CHRRuleset ruleset) {\r
-        super(ruleset.storeType);\r
-        this.setTarget(target);\r
-        this.ruleset = ruleset;\r
-    }\r
-    \r
-    @Override\r
-    public Constant liftClosure(BoundVar newTarget, BoundVar[] parameters) {\r
-        ruleset.this_ = newTarget;\r
-        ruleset.parameters = parameters;\r
-        return new JavaConstructor(ruleset.storeClassName, Types.PROC, ruleset.storeType, Types.getTypes(parameters));\r
-    }\r
-    \r
-    @Override\r
-    public void generateCode(ModuleBuilder moduleBuilder) {\r
-        CHRCodeGenerator.generateStore(moduleBuilder, ruleset);\r
-    }\r
-}\r
+package org.simantics.scl.compiler.elaboration.chr;
+
+import org.simantics.scl.compiler.constants.Constant;
+import org.simantics.scl.compiler.constants.JavaConstructor;
+import org.simantics.scl.compiler.internal.codegen.chr.CHRRuntimeRulesetCodeGenerator;
+import org.simantics.scl.compiler.internal.codegen.references.BoundVar;
+import org.simantics.scl.compiler.internal.codegen.ssa.SSAObject;
+import org.simantics.scl.compiler.internal.codegen.utils.ModuleBuilder;
+import org.simantics.scl.compiler.types.Types;
+
+public class CHRRulesetObject extends SSAObject {
+    CHRRuleset ruleset;
+
+    public CHRRulesetObject(BoundVar target, CHRRuleset ruleset) {
+        super(ruleset.runtimeRulesetType);
+        this.setTarget(target);
+        this.ruleset = ruleset;
+    }
+    
+    @Override
+    public Constant liftClosure(BoundVar newTarget, BoundVar[] parameters) {
+        ruleset.this_ = newTarget;
+        ruleset.parameters = parameters;
+        return new JavaConstructor(ruleset.runtimeRulesetName, Types.PROC, ruleset.runtimeRulesetType, Types.getTypes(parameters));
+    }
+    
+    @Override
+    public void generateCode(ModuleBuilder moduleBuilder) {
+        CHRRuntimeRulesetCodeGenerator.generateRuntimeRuleset(moduleBuilder, ruleset);
+    }
+}