X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Finternal%2Fcodegen%2Futils%2FSSALambdaLiftingContext.java;fp=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Finternal%2Fcodegen%2Futils%2FSSALambdaLiftingContext.java;h=9b556ee7a4759e561695d0ca689d37d6c42b86d8;hb=969bd23cab98a79ca9101af33334000879fb60c5;hp=0000000000000000000000000000000000000000;hpb=866dba5cd5a3929bbeae85991796acb212338a08;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/utils/SSALambdaLiftingContext.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/utils/SSALambdaLiftingContext.java new file mode 100644 index 000000000..9b556ee7a --- /dev/null +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/utils/SSALambdaLiftingContext.java @@ -0,0 +1,39 @@ +package org.simantics.scl.compiler.internal.codegen.utils; + +import org.simantics.scl.compiler.common.names.Name; +import org.simantics.scl.compiler.constants.SCLConstant; +import org.simantics.scl.compiler.errors.ErrorLog; +import org.simantics.scl.compiler.internal.codegen.ssa.SSAModule; + +public class SSALambdaLiftingContext { + SSAModule module; + Name parentName; + int count; + ErrorLog errorLog; + + public SSALambdaLiftingContext(SSAModule module, ErrorLog errorLog) { + this.module = module; + this.errorLog = errorLog; + } + + public void setParentName(Name parentName) { + this.parentName = parentName; + this.count = 0; + } + + public Name createName() { + return Name.create(parentName.module, parentName.name + "$" + (++count)); + } + + public void addConstant(SCLConstant constant) { + module.put(constant.getName(), constant); + } + + public void validate() { + module.validate(); + } + + public ErrorLog getErrorLog() { + return errorLog; + } +}