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