]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/elaboration/transformations/TransformationBuilder.java
New type class MonadE and corresponding monad syntax with edo keyword
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / internal / elaboration / transformations / TransformationBuilder.java
index 6060315c4d3103f34933dc9e6fcee61ab2ea7233..a9d4c3e039710dcc22e3b4ea905bdf9384c90899 100644 (file)
@@ -18,6 +18,7 @@ import org.simantics.scl.compiler.elaboration.expressions.Expression;
 import org.simantics.scl.compiler.elaboration.expressions.Expressions;
 import org.simantics.scl.compiler.elaboration.expressions.Variable;
 import org.simantics.scl.compiler.elaboration.expressions.VariableProcedure;
+import org.simantics.scl.compiler.elaboration.expressions.block.BlockType;
 import org.simantics.scl.compiler.elaboration.expressions.block.GuardStatement;
 import org.simantics.scl.compiler.elaboration.expressions.block.LetStatement;
 import org.simantics.scl.compiler.elaboration.expressions.block.Statement;
@@ -109,7 +110,7 @@ public class TransformationBuilder {
     
     private static Expression statementsToExpression(EnvironmentalContext context, List<Statement> statements, Expression in) {
         for(int i=statements.size()-1;i>=0;--i)
-            in = statements.get(i).toExpression(context, false, in);
+            in = statements.get(i).toExpression(context, BlockType.Normal, in);
         return in;
     }
     
@@ -184,7 +185,7 @@ public class TransformationBuilder {
                 }
             };
             for(QMapping mapping : decomposed.targetMappings)
-                mapping.parameters[0].forVariables(check);
+                mapping.parameters[0].forVariableUses(check);
             sourceVariables = sourceVariableList.toArray(new Variable[sourceVariableList.size()]);
         }
         
@@ -220,7 +221,7 @@ public class TransformationBuilder {
             }
             else {
                 PatternAnalyzer analyzer = new PatternAnalyzer(variableSet, mappedVariableUseCount); 
-                expression.forVariables(analyzer);
+                expression.forVariableUses(analyzer);
 
                 if(analyzer.containsVariables)
                     semiopenMappings.add(mapping);