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%2Fcompilation%2FCodeGeneration.java;h=52abbc6d87b48542b60e26152d917d4b64eaa22a;hp=470b8e9f0701c0418fb08bf02757e0b4717616d5;hb=a8758de5bc19e5adb3f618d3038743a164f09912;hpb=12d9af17384d960b75d58c3935d2b7b46d93e87b diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/CodeGeneration.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/CodeGeneration.java index 470b8e9f0..52abbc6d8 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/CodeGeneration.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/CodeGeneration.java @@ -25,7 +25,6 @@ import org.simantics.scl.compiler.elaboration.modules.SCLValueProperty; import org.simantics.scl.compiler.elaboration.modules.TypeClass; import org.simantics.scl.compiler.elaboration.modules.TypeClassInstance; import org.simantics.scl.compiler.elaboration.modules.TypeClassMethod; -import org.simantics.scl.compiler.environment.Environment; import org.simantics.scl.compiler.errors.ErrorLog; import org.simantics.scl.compiler.internal.codegen.references.IVal; import org.simantics.scl.compiler.internal.codegen.references.Val; @@ -37,7 +36,6 @@ import org.simantics.scl.compiler.internal.codegen.utils.ClassBuilder; import org.simantics.scl.compiler.internal.codegen.utils.CodeBuilderUtils; import org.simantics.scl.compiler.internal.codegen.utils.CodeBuildingException; import org.simantics.scl.compiler.internal.codegen.utils.Constants; -import org.simantics.scl.compiler.internal.codegen.utils.JavaNamingPolicy; import org.simantics.scl.compiler.internal.codegen.utils.MethodBuilder; import org.simantics.scl.compiler.internal.codegen.utils.MethodBuilderBase; import org.simantics.scl.compiler.internal.codegen.utils.ModuleBuilder; @@ -61,10 +59,8 @@ public class CodeGeneration { public static final int OPTIMIZATION_PHASES = 2; + CompilationContext compilationContext; ErrorLog errorLog; - Environment environment; - JavaNamingPolicy namingPolicy; - JavaTypeTranslator javaTypeTranslator; JavaReferenceValidator validator; ConcreteModule module; ModuleBuilder moduleBuilder; @@ -75,28 +71,22 @@ public class CodeGeneration { Map classes; @SuppressWarnings("unchecked") - public CodeGeneration(ErrorLog errorLog, - Environment environment, - JavaNamingPolicy namingPolicy, JavaTypeTranslator javaTypeTranslator, + public CodeGeneration(CompilationContext compilationContext, JavaReferenceValidator javaReferenceValidator, - ConcreteModule module) { - this.errorLog = errorLog; - this.environment = environment; - this.namingPolicy = namingPolicy; - this.javaTypeTranslator = javaTypeTranslator; + ConcreteModule module) { + this.compilationContext = compilationContext; + this.errorLog = compilationContext.errorLog; this.module = module; this.validator = (JavaReferenceValidator) javaReferenceValidator; - moduleBuilder = new ModuleBuilder(namingPolicy, javaTypeTranslator); + moduleBuilder = new ModuleBuilder(compilationContext.namingPolicy, compilationContext.javaTypeTranslator); } public void simplifyValues() { //System.out.println("===== Simplify values ====="); Collection values = module.getValues(); - SimplificationContext simplificationContext = - new SimplificationContext(environment, errorLog, - javaTypeTranslator, validator); + SimplificationContext simplificationContext = new SimplificationContext(compilationContext, validator); //System.out.println("-----------------------------------------------"); SCLValue[] valueArray = values.toArray(new SCLValue[values.size()]); @@ -116,7 +106,7 @@ public class CodeGeneration { } public void convertToSSA() { - ModuleWriter mw = new ModuleWriter(namingPolicy.getModuleClassName()); + ModuleWriter mw = new ModuleWriter(compilationContext.namingPolicy.getModuleClassName()); for(SCLValue value : module.getValues()) { //System.out.println(value.getName().name + " :: " + value.getType()); Expression expression = value.getExpression(); @@ -124,8 +114,6 @@ public class CodeGeneration { continue; Name name = value.getName(); - DecomposedExpression decomposed = - DecomposedExpression.decompose(expression); SCLConstant constant = new SCLConstant(name, value.getType()); value.setValue(constant); @@ -177,7 +165,7 @@ public class CodeGeneration { IVal[] parameterVals = w.getParameters(); for(int i=0;i