X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Fenvironment%2FAbstractLocalEnvironment.java;h=7e469affe9ba990f877779fc69e28d1745a5507c;hb=84b211a0aa05c956d33e038a1106bb0464ce373a;hp=98e2467fa6d637fd1ffae602569d85723c2d0142;hpb=9a175feb652b2b7bba7afa540831b9076be3c10e;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/environment/AbstractLocalEnvironment.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/environment/AbstractLocalEnvironment.java index 98e2467fa..7e469affe 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/environment/AbstractLocalEnvironment.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/environment/AbstractLocalEnvironment.java @@ -1,44 +1,44 @@ -package org.simantics.scl.compiler.environment; - -import org.simantics.scl.compiler.elaboration.expressions.ESimpleLambda; -import org.simantics.scl.compiler.elaboration.expressions.Expression; -import org.simantics.scl.compiler.elaboration.expressions.Variable; -import org.simantics.scl.compiler.types.Type; -import org.simantics.scl.compiler.types.util.ProcedureType; - -import gnu.trove.procedure.TObjectProcedure; - -public abstract class AbstractLocalEnvironment implements LocalEnvironment { - - @Override - public void forNames(TObjectProcedure proc) { - } - - protected Variable[] getContextVariables() { - return Variable.EMPTY_ARRAY; - } - - @Override - public Expression preDecorateExpression(Expression expression) { - return expression; - } - - @Override - public Expression postDecorateExpression(Expression expression) { - Variable[] contextVariables = getContextVariables(); - for(int i=contextVariables.length-1;i>=0;--i) - expression = new ESimpleLambda(contextVariables[i], expression); - return expression; - } - - @Override - public ProcedureType decorateExpectedType(Type expectedType, Type expectedEffect) { - /*Variable[] contextVariables = getContextVariables(); - for(int i=contextVariables.length-1;i>=0;--i) { - expectedType = Types.functionE(contextVariables[i].getType(), expectedEffect, expectedType); - expectedEffect = Types.NO_EFFECTS; - }*/ - return new ProcedureType(expectedType, expectedEffect); - } - -} +package org.simantics.scl.compiler.environment; + +import org.simantics.scl.compiler.elaboration.expressions.ESimpleLambda; +import org.simantics.scl.compiler.elaboration.expressions.Expression; +import org.simantics.scl.compiler.elaboration.expressions.Variable; +import org.simantics.scl.compiler.types.Type; +import org.simantics.scl.compiler.types.util.ProcedureType; + +import gnu.trove.procedure.TObjectProcedure; + +public abstract class AbstractLocalEnvironment implements LocalEnvironment { + + @Override + public void forNames(TObjectProcedure proc) { + } + + protected Variable[] getContextVariables() { + return Variable.EMPTY_ARRAY; + } + + @Override + public Expression preDecorateExpression(Expression expression) { + return expression; + } + + @Override + public Expression postDecorateExpression(Expression expression) { + Variable[] contextVariables = getContextVariables(); + for(int i=contextVariables.length-1;i>=0;--i) + expression = new ESimpleLambda(contextVariables[i], expression); + return expression; + } + + @Override + public ProcedureType decorateExpectedType(Type expectedType, Type expectedEffect) { + /*Variable[] contextVariables = getContextVariables(); + for(int i=contextVariables.length-1;i>=0;--i) { + expectedType = Types.functionE(contextVariables[i].getType(), expectedEffect, expectedType); + expectedEffect = Types.NO_EFFECTS; + }*/ + return new ProcedureType(expectedType, expectedEffect); + } + +}