1 package org.simantics.scl.compiler.internal.elaboration.matching;
\r
4 import java.util.Arrays;
\r
6 import org.simantics.scl.compiler.elaboration.expressions.Expression;
\r
9 Expression[] patterns;
\r
12 public Row(Expression[] patterns, Expression value) {
\r
13 this.patterns = patterns;
\r
17 public Row replace(int columnToReplace, Expression[] substitution) {
\r
18 Expression[] newPatterns = new Expression[patterns.length-1+substitution.length];
\r
20 for(int i=0;i<columnToReplace;++i)
\r
21 newPatterns[j++] = patterns[i];
\r
22 for(int i=0;i<substitution.length;++i)
\r
23 newPatterns[j++] = substitution[i];
\r
24 for(int i=columnToReplace+1;i<patterns.length;++i)
\r
25 newPatterns[j++] = patterns[i];
\r
26 return new Row(newPatterns, value);
\r
30 public String toString() {
\r
31 return Arrays.toString(patterns) + " -> " + value;
\r