The block has a vector of Boolean input signals u[nu] and a vector of (time varying) Boolean expressions expr[:]. The output signal y is set to expr[i], if i is the first element in the input vector u that is true. If all input signals are false, y is set to parameter "y_default" or to pre(y) depending on the parameter use_pre_as_default:
// Conceptual equation (not valid Modelica) i = 'first element of u[:] that is true'; y = if i==0 then if use_pre_as_default then pre(y) else y_default else expr[i];