Classes | |
| class | AutomatonBase |
| class | DFA |
| class | DFANode |
| class | NFA |
| class | NFANode |
| struct | RangeCompare |
Typedefs | |
| template<class To> | |
| using | DFAMap = std::map<const DFANode*, To, DFANode::Lt> |
| using | DFASet = std::set<const DFANode*, DFANode::Lt> |
| using | NFASet = std::set<const NFANode*, NFANode::Lt> |
| using | Range = std::pair<std::uint64_t, std::uint64_t> |
Functions | |
| template<class NodeType> | |
| void | print_node (std::ostream &os, const NodeType &node, std::invocable< std::uint64_t > auto 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> | |
| Vec | merge_ranges (const Vec &old_ranges, std::invocable< std::string_view > auto log) |
| template<class Vec> | |
| auto | merge_ranges (const Vec &old_ranges) |
| using automaton::DFAMap = std::map<const DFANode*, To, DFANode::Lt> |
| using automaton::DFASet = std::set<const DFANode*, DFANode::Lt> |
| using automaton::NFASet = std::set<const NFANode*, NFANode::Lt> |
| using automaton::Range = std::pair<std::uint64_t, std::uint64_t> |
Definition at line 13 of file range_helper.h.
| auto automaton::merge_ranges | ( | const Vec & | old_ranges | ) |
Definition at line 46 of file range_helper.h.
References merge_ranges().
| Vec automaton::merge_ranges | ( | const Vec & | old_ranges, |
| std::invocable< std::string_view > auto | log ) |
Definition at line 30 of file range_helper.h.
References merge_ranges().
Definition at line 19 of file range_helper.h.
References merge_ranges().
Referenced by merge_ranges(), merge_ranges(), merge_ranges(), mim::plug::regex::merge_ranges(), and print_node().
Definition at line 102 of file dfamin.cpp.
References automaton::AutomatonBase< NodeType >::get_reachable_states(), automaton::AutomatonBase< NodeType >::get_start(), and minimize_dfa().
Referenced by minimize_dfa(), and mim::plug::regex::LowerRegex::rewrite_imm_App().
Definition at line 39 of file nfa2dfa.cpp.
References automaton::NFA::EPSILON, automaton::AutomatonBase< NodeType >::get_start(), and nfa2dfa().
Referenced by nfa2dfa(), and mim::plug::regex::LowerRegex::rewrite_imm_App().
| void automaton::print_node | ( | std::ostream & | os, |
| const NodeType & | node, | ||
| std::invocable< std::uint64_t > auto | print_char ) |
Definition at line 79 of file automaton.h.
References merge_ranges(), and print_node().
Referenced by automaton::DFANode::print(), automaton::NFANode::print(), and print_node().