final ExpressionNode matchNode;
final Function matchFun = (indexNode instanceof ExpressionNodeForConstantValue) ? INTERNAL_MATCH_INT : MATCH;
if (_fun.cardinality() >= 4) {
final ExpressionNode typeNode = _fun.argument( 3 );
matchNode = new ExpressionNodeForFunction( matchFun, valueNode, lookupArrayNode, typeNode );
}
else {
matchNode = new ExpressionNodeForFunction( matchFun, valueNode, lookupArrayNode );
}
if (indexNode instanceof ExpressionNodeForConstantValue) {
final ExpressionNodeForConstantValue constIndex = (ExpressionNodeForConstantValue) indexNode;
final int index = this.numericType.toInt( constIndex.value(), -1 ) - 1;