54 d = 0x4c62066400000500,
55 D = 0x4c62066400000501,
56 w = 0x4c62066400000502,
57 W = 0x4c62066400000503,
58 s = 0x4c62066400000504,
59 S = 0x4c62066400000505,
93#define MIM_regex_NORMALIZER_IMPL \
94 void register_normalizers(Normalizers& normalizers) {\
95 normalizers[flags_t(Annex::Base<conj>)] = &normalize_conj; \
96 normalizers[flags_t(Annex::Base<disj>)] = &normalize_disj; \
97 normalizers[flags_t(Annex::Base<range>)] = &normalize_range; \
98 normalizers[flags_t(Annex::Base<not_>)] = &normalize_not; \
99 normalizers[flags_t(quant::optional)] = &normalize_quant<quant::optional>; \
100 normalizers[flags_t(quant::star)] = &normalize_quant<quant::star>; \
101 normalizers[flags_t(quant::plus)] = &normalize_quant<quant::plus>; \
135template<>
struct fe::is_bit_enum<
mim::plug::regex::cls> : std::true_type {};
136template<>
struct fe::is_bit_enum<
mim::plug::regex::quant> : std::true_type {};
const Def * normalize_conj(const Def *type, const Def *callee, const Def *arg)
static constexpr plugin_t Plugin_Id
const Def * normalize_range(const Def *type, const Def *callee, const Def *arg)
void register_normalizers(Normalizers &normalizers)
const Def * normalize_disj(const Def *type, const Def *, const Def *arg)
const Def * normalize_quant(const Def *type, const Def *callee, const Def *arg)
const Def * normalize_not(const Def *, const Def *, const Def *)
absl::flat_hash_map< flags_t, NormalizeFn > Normalizers
static constexpr size_t Num
static constexpr flags_t Base