MimIR 0.1
MimIR is my Intermediate Representation
|
Classes | |
class | AutomatonBase |
class | DFA |
class | DFANode |
class | NFA |
class | NFANode |
struct | RangeCompare |
Typedefs | |
template<class To > | |
using | DFAMap = absl::flat_hash_map<const DFANode*, To> |
using | Range = std::pair<std::uint64_t, std::uint64_t> |
Functions | |
template<class NodeType , class PrintCharF > | |
std::ostream & | print_node (std::ostream &os, const NodeType &node, PrintCharF &&print_char) |
std::unique_ptr< DFA > | minimize_dfa (const DFA &dfa) |
std::unique_ptr< DFA > | nfa2dfa (const NFA &nfa) |
std::optional< Range > | merge_ranges (Range a, Range b) noexcept |
template<class Vec , class LogF > | |
Vec | merge_ranges (const Vec &old_ranges, LogF &&log) |
template<class Vec > | |
auto | merge_ranges (const Vec &old_ranges) |
std::ostream & | operator<< (std::ostream &os, const DFANode &node) |
std::ostream & | operator<< (std::ostream &os, const NFANode &node) |
std::set< const NFANode * > | epsilonClosure (const std::set< const NFANode * > &states) |
std::set< const NFANode * > | epsilonClosure (const NFANode *state) |
using automaton::DFAMap = absl::flat_hash_map<const DFANode*, To> |
using automaton::Range = std::pair<std::uint64_t, std::uint64_t> |
Definition at line 10 of file range_helper.h.
Definition at line 28 of file nfa2dfa.cpp.
References epsilonClosure().
Definition at line 11 of file nfa2dfa.cpp.
References automaton::NFA::EPSILON.
Referenced by epsilonClosure(), and nfa2dfa().
auto automaton::merge_ranges | ( | const Vec & | old_ranges | ) |
Definition at line 52 of file range_helper.h.
References merge_ranges().
Vec automaton::merge_ranges | ( | const Vec & | old_ranges, |
LogF && | log ) |
Definition at line 26 of file range_helper.h.
References merge_ranges().
Definition at line 16 of file range_helper.h.
Referenced by merge_ranges(), merge_ranges(), mim::plug::regex::merge_ranges(), and print_node().
Definition at line 114 of file dfamin.cpp.
References automaton::AutomatonBase< NodeType >::get_reachable_states(), and automaton::AutomatonBase< NodeType >::get_start().
Referenced by mim::plug::regex::LowerRegex::rewrite().
Definition at line 33 of file nfa2dfa.cpp.
References automaton::NFA::EPSILON, epsilonClosure(), and automaton::AutomatonBase< NodeType >::get_start().
Referenced by mim::plug::regex::LowerRegex::rewrite().
std::ostream & automaton::operator<< | ( | std::ostream & | os, |
const DFANode & | node ) |
std::ostream & automaton::operator<< | ( | std::ostream & | os, |
const NFANode & | node ) |
std::ostream & automaton::print_node | ( | std::ostream & | os, |
const NodeType & | node, | ||
PrintCharF && | print_char ) |
Definition at line 67 of file automaton.h.
References merge_ranges().