61 d = 0x4c62066400000600,
62 D = 0x4c62066400000601,
63 w = 0x4c62066400000602,
64 W = 0x4c62066400000603,
65 s = 0x4c62066400000604,
66 S = 0x4c62066400000605,
107#define MIM_regex_NORMALIZER_IMPL \
108 void register_normalizers(Normalizers& normalizers) {\
109 normalizers[flags_t(Annex::Base<conj>)] = &normalize_conj; \
110 normalizers[flags_t(Annex::Base<disj>)] = &normalize_disj; \
111 normalizers[flags_t(Annex::Base<range>)] = &normalize_range; \
112 normalizers[flags_t(Annex::Base<not_>)] = &normalize_not; \
113 normalizers[flags_t(quant::optional)] = &normalize_quant<quant::optional>; \
114 normalizers[flags_t(quant::star)] = &normalize_quant<quant::star>; \
115 normalizers[flags_t(quant::plus)] = &normalize_quant<quant::plus>; \
155template<>
struct fe::is_bit_enum<
mim::plug::regex::cls> : std::true_type {};
156template<>
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 *callee, const Def *arg)
absl::flat_hash_map< flags_t, NormalizeFn > Normalizers
static constexpr size_t Num
Number of Axm::subtags.
static constexpr flags_t Base