1 package org.simantics.scl.compiler.internal.codegen.utils;
\r
3 import org.simantics.scl.compiler.common.names.Name;
\r
4 import org.simantics.scl.compiler.constants.SCLConstant;
\r
5 import org.simantics.scl.compiler.errors.ErrorLog;
\r
6 import org.simantics.scl.compiler.internal.codegen.ssa.SSAClosure;
\r
7 import org.simantics.scl.compiler.internal.codegen.ssa.SSAModule;
\r
9 public class SSALambdaLiftingContext {
\r
15 public SSALambdaLiftingContext(SSAModule module, ErrorLog errorLog) {
\r
16 this.module = module;
\r
17 this.errorLog = errorLog;
\r
20 public void setParentName(Name parentName) {
\r
21 this.parentName = parentName;
\r
25 public Name createName() {
\r
26 return Name.create(parentName.module, parentName.name + "$" + (++count));
\r
29 public void addConstant(SCLConstant constant) {
\r
30 module.put(constant.getName(), constant);
\r
33 public void validate() {
\r
37 public ErrorLog getErrorLog() {
\r
41 public void addClosure(SSAClosure closure) {
\r
42 module.closuresToGenerate.add(closure);
\r