--- /dev/null
+package org.simantics.scl.compiler.internal.elaboration.matching2;\r
+\r
+\r
+import java.util.Arrays;\r
+\r
+import org.simantics.scl.compiler.elaboration.expressions.Expression;\r
+import org.simantics.scl.compiler.internal.codegen.continuations.ICont;\r
+\r
+public class Row2 {\r
+ Expression[] patterns;\r
+ ICont continuation;\r
+ \r
+ public Row2(Expression[] patterns,ICont continuation) {\r
+ this.patterns = patterns;\r
+ this.continuation = continuation;\r
+ }\r
+ \r
+ public Row2 replace(int columnToReplace, Expression[] substitution) {\r
+ Expression[] newPatterns = new Expression[patterns.length-1+substitution.length];\r
+ int j=0;\r
+ for(int i=0;i<columnToReplace;++i)\r
+ newPatterns[j++] = patterns[i];\r
+ for(int i=0;i<substitution.length;++i)\r
+ newPatterns[j++] = substitution[i];\r
+ for(int i=columnToReplace+1;i<patterns.length;++i)\r
+ newPatterns[j++] = patterns[i];\r
+ return new Row2(newPatterns, continuation);\r
+ }\r
+ \r
+ @Override\r
+ public String toString() {\r
+ return Arrays.toString(patterns);\r
+ }\r
+}\r