X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Finternal%2Fcodegen%2Fwriter%2FRecursiveDefinitionWriter.java;h=6a17ed2c2cdeca9dafccf5ea6b42321622eb7e60;hp=7e95885bb4fce01f7ffdab6714f45ea6abc6ce74;hb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;hpb=24e2b34260f219f0d1644ca7a138894980e25b14 diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/writer/RecursiveDefinitionWriter.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/writer/RecursiveDefinitionWriter.java index 7e95885bb..6a17ed2c2 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/writer/RecursiveDefinitionWriter.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/writer/RecursiveDefinitionWriter.java @@ -1,33 +1,33 @@ -package org.simantics.scl.compiler.internal.codegen.writer; - -import org.simantics.scl.compiler.internal.codegen.references.BoundVar; -import org.simantics.scl.compiler.internal.codegen.ssa.SSABlock; -import org.simantics.scl.compiler.internal.codegen.ssa.SSAFunction; -import org.simantics.scl.compiler.internal.codegen.ssa.statements.LetFunctions; -import org.simantics.scl.compiler.types.TVar; -import org.simantics.scl.compiler.types.Type; - -public class RecursiveDefinitionWriter { - ModuleWriter moduleWriter; - LetFunctions let; - - public RecursiveDefinitionWriter(ModuleWriter moduleWriter, LetFunctions let) { - this.moduleWriter = moduleWriter; - this.let = let; - } - - public CodeWriter createFunction(BoundVar target, TVar[] typeParameters, Type effect, Type returnType, Type[] parameterTypes) { - SSAFunction function = new SSAFunction(typeParameters, effect, returnType); - SSABlock block = new SSABlock(parameterTypes); - function.addBlock(block); - function.setTarget(target); - - let.addClosure(function); - - return new CodeWriter(moduleWriter, block); - } - - public void setLocation(long loc) { - let.setRecursiveGroupLocation(loc); - } -} +package org.simantics.scl.compiler.internal.codegen.writer; + +import org.simantics.scl.compiler.internal.codegen.references.BoundVar; +import org.simantics.scl.compiler.internal.codegen.ssa.SSABlock; +import org.simantics.scl.compiler.internal.codegen.ssa.SSAFunction; +import org.simantics.scl.compiler.internal.codegen.ssa.statements.LetFunctions; +import org.simantics.scl.compiler.types.TVar; +import org.simantics.scl.compiler.types.Type; + +public class RecursiveDefinitionWriter { + ModuleWriter moduleWriter; + LetFunctions let; + + public RecursiveDefinitionWriter(ModuleWriter moduleWriter, LetFunctions let) { + this.moduleWriter = moduleWriter; + this.let = let; + } + + public CodeWriter createFunction(BoundVar target, TVar[] typeParameters, Type effect, Type returnType, Type[] parameterTypes) { + SSAFunction function = new SSAFunction(typeParameters, effect, returnType); + SSABlock block = new SSABlock(parameterTypes); + function.addBlock(block); + function.setTarget(target); + + let.addClosure(function); + + return new CodeWriter(moduleWriter, block); + } + + public void setLocation(long loc) { + let.setRecursiveGroupLocation(loc); + } +}