- | (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, Bitmatch.BigEndian, false) when i <= 31 ->
- "construct_int_be_unsigned"
- | (i, Bitmatch.BigEndian, true) when i <= 31 ->
- "construct_int_be_signed"
- | (i, Bitmatch.LittleEndian, false) when i <= 31 ->
- "construct_int_le_unsigned"
- | (i, Bitmatch.LittleEndian, true) when i <= 31 ->
- "construct_int_le_signed"
- | (i, Bitmatch.NativeEndian, false) when i <= 31 ->
- "construct_int_ne_unsigned"
- | (i, Bitmatch.NativeEndian, true) when i <= 31 ->
- "construct_int_ne_signed"
- | (32, Bitmatch.BigEndian, false) -> "construct_int32_be_unsigned"
- | (32, Bitmatch.BigEndian, true) -> "construct_int32_be_signed"
- | (32, Bitmatch.LittleEndian, false) -> "construct_int32_le_unsigned"
- | (32, Bitmatch.LittleEndian, true) -> "construct_int32_le_signed"
- | (32, Bitmatch.NativeEndian, false) -> "construct_int32_ne_unsigned"
- | (32, Bitmatch.NativeEndian, true) -> "construct_int32_ne_signed"
- | (_, Bitmatch.BigEndian, false) -> "construct_int64_be_unsigned"
- | (_, Bitmatch.BigEndian, true) -> "construct_int64_be_signed"
- | (_, Bitmatch.LittleEndian, false) -> "construct_int64_le_unsigned"
- | (_, Bitmatch.LittleEndian, true) -> "construct_int64_le_signed"
- | (_, Bitmatch.NativeEndian, false) -> "construct_int64_ne_unsigned"
- | (_, Bitmatch.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$>>