-package org.simantics.scl.compiler.environment;\r
-\r
-import gnu.trove.procedure.TObjectProcedure;\r
-\r
-import org.simantics.scl.compiler.elaboration.expressions.ESimpleLambda;\r
-import org.simantics.scl.compiler.elaboration.expressions.Expression;\r
-import org.simantics.scl.compiler.elaboration.expressions.Variable;\r
-import org.simantics.scl.compiler.types.Type;\r
-import org.simantics.scl.compiler.types.Types;\r
-import org.simantics.scl.compiler.types.util.ProcedureType;\r
-\r
-public abstract class AbstractLocalEnvironment implements LocalEnvironment {\r
-\r
- @Override\r
- public void forNames(TObjectProcedure<String> proc) {\r
- }\r
-\r
- protected Variable[] getContextVariables() {\r
- return Variable.EMPTY_ARRAY;\r
- }\r
- \r
- @Override\r
- public Expression preDecorateExpression(Expression expression) {\r
- return expression;\r
- }\r
- \r
- @Override\r
- public Expression postDecorateExpression(Expression expression) {\r
- Variable[] contextVariables = getContextVariables();\r
- for(int i=contextVariables.length-1;i>=0;--i)\r
- expression = new ESimpleLambda(contextVariables[i], expression);\r
- return expression;\r
- }\r
-\r
- @Override\r
- public ProcedureType decorateExpectedType(Type expectedType, Type expectedEffect) {\r
- /*Variable[] contextVariables = getContextVariables();\r
- for(int i=contextVariables.length-1;i>=0;--i) {\r
- expectedType = Types.functionE(contextVariables[i].getType(), expectedEffect, expectedType);\r
- expectedEffect = Types.NO_EFFECTS;\r
- }*/\r
- return new ProcedureType(expectedType, expectedEffect);\r
- }\r
-\r
-}\r
+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<String> 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);
+ }
+
+}