]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/elaboration/matching2/Row2.java
Merge "List the unsatisfied dependencies in CanvasContext"
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / internal / elaboration / matching2 / Row2.java
1 package org.simantics.scl.compiler.internal.elaboration.matching2;\r
2 \r
3 \r
4 import java.util.Arrays;\r
5 \r
6 import org.simantics.scl.compiler.elaboration.expressions.Expression;\r
7 import org.simantics.scl.compiler.internal.codegen.continuations.ICont;\r
8 \r
9 public class Row2 {\r
10     Expression[] patterns;\r
11     ICont continuation;\r
12     \r
13     public Row2(Expression[] patterns,ICont continuation) {\r
14         this.patterns = patterns;\r
15         this.continuation = continuation;\r
16     }\r
17     \r
18     public Row2 replace(int columnToReplace, Expression[] substitution) {\r
19         Expression[] newPatterns = new Expression[patterns.length-1+substitution.length];\r
20         int j=0;\r
21         for(int i=0;i<columnToReplace;++i)\r
22             newPatterns[j++] = patterns[i];\r
23         for(int i=0;i<substitution.length;++i)\r
24             newPatterns[j++] = substitution[i];\r
25         for(int i=columnToReplace+1;i<patterns.length;++i)\r
26             newPatterns[j++] = patterns[i];\r
27         return new Row2(newPatterns, continuation);\r
28     }\r
29     \r
30     @Override\r
31     public String toString() {\r
32         return Arrays.toString(patterns);\r
33     }\r
34 }\r