- | (1, _, _) -> "construct_bit"
- | ((2|3|4|5|6|7|8), _, false) -> "construct_char_unsigned"
- | ((2|3|4|5|6|7|8), _, true) -> "construct_char_signed"
- | (i, BigEndian, false) when i <= 31 -> "construct_int_be_unsigned"
- | (i, BigEndian, true) when i <= 31 -> "construct_int_be_signed"
- | (i, LittleEndian, false) when i <= 31 -> "construct_int_le_unsigned"
- | (i, LittleEndian, true) when i <= 31 -> "construct_int_le_signed"
- | (i, NativeEndian, false) when i <= 31 -> "construct_int_ne_unsigned"
- | (i, NativeEndian, true) when i <= 31 -> "construct_int_ne_signed"
- | (32, BigEndian, false) -> "construct_int32_be_unsigned"
- | (32, BigEndian, true) -> "construct_int32_be_signed"
- | (32, LittleEndian, false) -> "construct_int32_le_unsigned"
- | (32, LittleEndian, true) -> "construct_int32_le_signed"
- | (32, NativeEndian, false) -> "construct_int32_ne_unsigned"
- | (32, NativeEndian, true) -> "construct_int32_ne_signed"
- | (_, BigEndian, false) -> "construct_int64_be_unsigned"
- | (_, BigEndian, true) -> "construct_int64_be_signed"
- | (_, LittleEndian, false) -> "construct_int64_le_unsigned"
- | (_, LittleEndian, true) -> "construct_int64_le_signed"
- | (_, NativeEndian, false) -> "construct_int64_ne_unsigned"
- | (_, NativeEndian, true) -> "construct_int64_ne_signed"
+ | (1, _, _) ->
+ <:expr<Bitmatch.construct_bit>>
+ | ((2|3|4|5|6|7|8), _, false) ->
+ <:expr<Bitmatch.construct_char_unsigned>>
+ | ((2|3|4|5|6|7|8), _, true) ->
+ <:expr<Bitmatch.construct_char_signed>>
+ | (i, P.ConstantEndian BigEndian, false) when i <= 31 ->
+ <:expr<Bitmatch.construct_int_be_unsigned>>
+ | (i, P.ConstantEndian BigEndian, true) when i <= 31 ->
+ <:expr<Bitmatch.construct_int_be_signed>>
+ | (i, P.ConstantEndian LittleEndian, false) when i <= 31 ->
+ <:expr<Bitmatch.construct_int_le_unsigned>>
+ | (i, P.ConstantEndian LittleEndian, true) when i <= 31 ->
+ <:expr<Bitmatch.construct_int_le_signed>>
+ | (i, P.ConstantEndian NativeEndian, false) when i <= 31 ->
+ <:expr<Bitmatch.construct_int_ne_unsigned>>
+ | (i, P.ConstantEndian NativeEndian, true) when i <= 31 ->
+ <:expr<Bitmatch.construct_int_ne_signed>>
+ | (i, P.EndianExpr expr, false) when i <= 31 ->
+ <:expr<Bitmatch.construct_int_ee_unsigned $expr$>>
+ | (i, P.EndianExpr expr, true) when i <= 31 ->
+ <:expr<Bitmatch.construct_int_ee_signed $expr$>>
+ | (32, P.ConstantEndian BigEndian, false) ->
+ <:expr<Bitmatch.construct_int32_be_unsigned>>
+ | (32, P.ConstantEndian BigEndian, true) ->
+ <:expr<Bitmatch.construct_int32_be_signed>>
+ | (32, P.ConstantEndian LittleEndian, false) ->
+ <:expr<Bitmatch.construct_int32_le_unsigned>>
+ | (32, P.ConstantEndian LittleEndian, true) ->
+ <:expr<Bitmatch.construct_int32_le_signed>>
+ | (32, P.ConstantEndian NativeEndian, false) ->
+ <:expr<Bitmatch.construct_int32_ne_unsigned>>
+ | (32, P.ConstantEndian NativeEndian, true) ->
+ <:expr<Bitmatch.construct_int32_ne_signed>>
+ | (32, P.EndianExpr expr, false) ->
+ <:expr<Bitmatch.construct_int32_ee_unsigned $expr$>>
+ | (32, P.EndianExpr expr, true) ->
+ <:expr<Bitmatch.construct_int32_ee_signed $expr$>>
+ | (_, P.ConstantEndian BigEndian, false) ->
+ <:expr<Bitmatch.construct_int64_be_unsigned>>
+ | (_, P.ConstantEndian BigEndian, true) ->
+ <:expr<Bitmatch.construct_int64_be_signed>>
+ | (_, P.ConstantEndian LittleEndian, false) ->
+ <:expr<Bitmatch.construct_int64_le_unsigned>>
+ | (_, P.ConstantEndian LittleEndian, true) ->
+ <:expr<Bitmatch.construct_int64_le_signed>>
+ | (_, P.ConstantEndian NativeEndian, false) ->
+ <:expr<Bitmatch.construct_int64_ne_unsigned>>
+ | (_, P.ConstantEndian NativeEndian, true) ->
+ <:expr<Bitmatch.construct_int64_ne_signed>>
+ | (_, P.EndianExpr expr, false) ->
+ <:expr<Bitmatch.construct_int64_ee_unsigned $expr$>>
+ | (_, P.EndianExpr expr, true) ->
+ <:expr<Bitmatch.construct_int64_ee_signed $expr$>>