#include <algorithm>
#include <iterator>
#include <numeric>
#include <ranges>
#include <vector>
#include <automaton/range_helper.h>
#include <fe/assert.h>
#include "mim/axiom.h"
#include "mim/def.h"
#include "mim/tuple.h"
#include "mim/world.h"
#include "mim/util/log.h"
#include "mim/plug/regex/regex.h"
Go to the source code of this file.
|
template<class ConjOrDisj > |
void | mim::plug::regex::flatten_in_arg (Ref arg, DefVec &new_args) |
|
template<class ConjOrDisj > |
DefVec | mim::plug::regex::flatten_in_arg (Ref arg) |
|
template<class ConjOrDisj > |
Ref | mim::plug::regex::make_binary_tree (Ref type, Defs args) |
|
bool | mim::plug::regex::compare_re (const Def *lhs, const Def *rhs) |
|
void | mim::plug::regex::make_vector_unique (DefVec &args) |
|
bool | mim::plug::regex::is_in_range (Range range, nat_t needle) |
|
auto | mim::plug::regex::get_range (const Def *rng) -> Range |
|
void | mim::plug::regex::merge_ranges (DefVec &args) |
|
template<cls A, cls B> |
bool | mim::plug::regex::equals_any (const Def *cls0, const Def *cls1) |
|
bool | mim::plug::regex::equals_any (const Def *lhs, const Def *rhs) |
|
bool | mim::plug::regex::equals_any (Defs lhs, Defs rhs) |
|
|
template<quant id> |
Ref | mim::plug::regex::normalize_quant (Ref type, Ref callee, Ref arg) |
|
|
Ref | mim::plug::regex::normalize_conj (Ref type, Ref callee, Ref arg) |
|
|
Ref | mim::plug::regex::normalize_disj (Ref type, Ref, Ref arg) |
|
|
Ref | mim::plug::regex::normalize_range (Ref type, Ref callee, Ref arg) |
|
|
Ref | mim::plug::regex::normalize_not (Ref type, Ref callee, Ref arg) |
|
◆ Ranges