--- /dev/null
+package org.simantics.scl.compiler.internal.codegen.utils;\r
+\r
+import org.simantics.scl.compiler.common.names.Name;\r
+import org.simantics.scl.compiler.constants.SCLConstant;\r
+import org.simantics.scl.compiler.errors.ErrorLog;\r
+import org.simantics.scl.compiler.internal.codegen.ssa.SSAModule;\r
+\r
+public class SSALambdaLiftingContext {\r
+ SSAModule module;\r
+ Name parentName;\r
+ int count;\r
+ ErrorLog errorLog;\r
+ \r
+ public SSALambdaLiftingContext(SSAModule module, ErrorLog errorLog) {\r
+ this.module = module;\r
+ this.errorLog = errorLog;\r
+ }\r
+\r
+ public void setParentName(Name parentName) {\r
+ this.parentName = parentName;\r
+ this.count = 0;\r
+ }\r
+ \r
+ public Name createName() {\r
+ return Name.create(parentName.module, parentName.name + "$" + (++count));\r
+ }\r
+ \r
+ public void addConstant(SCLConstant constant) {\r
+ module.put(constant.getName(), constant); \r
+ }\r
+\r
+ public void validate() {\r
+ module.validate(); \r
+ }\r
+ \r
+ public ErrorLog getErrorLog() {\r
+ return errorLog;\r
+ }\r
+}\r