}
int outputWidth = 0;
Token[][] inputs = new Token[width][];
for (int i = 0; i < width; i++) {
if (input.hasToken(i)) {
ArrayToken token = (ArrayToken) input.get(i);
inputs[i] = token.arrayValue();
outputWidth += inputs[i].length;
}
}
Token[] array = new Token[outputWidth];
int runningPosition = 0;
for (int i = 0; i < width; i++) {
System.arraycopy(inputs[i], 0, array, runningPosition,
inputs[i].length);
runningPosition += inputs[i].length;
}
Type elementType = ((ArrayType) input.getType()).getElementType();
output.send(0, new ArrayToken(elementType, array));
}