54 d = 0x4c62066400000500,
55 D = 0x4c62066400000501,
56 w = 0x4c62066400000502,
57 W = 0x4c62066400000503,
58 s = 0x4c62066400000504,
59 S = 0x4c62066400000505,
75 star = 0x4c62066400000701,
76 plus = 0x4c62066400000702,
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>; \
126template<>
struct Axiom::Match<plug::regex::lit> {
using type =
Axiom; };
127template<>
struct Axiom::Match<plug::regex::cls> {
using type =
Axiom; };
128template<>
struct Axiom::Match<plug::regex::lower_regex> {
using type =
Axiom; };
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 {};
Helper class to retrieve Infer::arg if present.
Ref normalize_range(Ref type, Ref callee, Ref arg)
Ref normalize_not(Ref type, Ref callee, Ref arg)
Ref normalize_quant(Ref type, Ref callee, Ref arg)
static constexpr plugin_t Plugin_Id
void register_normalizers(Normalizers &normalizers)
Ref normalize_disj(Ref type, Ref, Ref arg)
Ref normalize_conj(Ref type, Ref callee, Ref arg)
absl::flat_hash_map< flags_t, NormalizeFn > Normalizers
static constexpr size_t Num
static constexpr flags_t Base