final int nArrays = (fun == HLOOKUP) ? desc.numberOfRows() : desc.numberOfColumns();
final ExpressionNodeForSwitchCase[] caseNodes = new ExpressionNodeForSwitchCase[ nArrays ];
for (int iArray = 0; iArray < nArrays; iArray++) {
final ExpressionNode valueArrayNode = getHVLookupSubArray( fun, arrayNode, iArray );
final ExpressionNode lookupNode = fun( INDEX, valueArrayNode, matchRefNode );
caseNodes[ iArray ] = new ExpressionNodeForSwitchCase( lookupNode, iArray + 1 );
}
final ExpressionNode switchNode = new ExpressionNodeForSwitch( selectorNode, defaultNode, caseNodes );
final ExpressionNode matchLetNode = letByName( matchRefName, matchNode, switchNode );
return matchLetNode;
}