18template<>
struct std::formatter<
automaton::DFA> : fe::ostream_formatter {};
19template<>
struct std::formatter<
automaton::NFA> : fe::ostream_formatter {};
31 auto callee = app->
callee();
38 DLOG(
"nfa: {}", *nfa);
41 DLOG(
"dfa: {}", *dfa);
47 return RWPhase::rewrite_imm_App(app);
const Def * callee() const
static auto isa(const Def *def)
World & new_world()
Create new Defs into this.
bool is_bootstrapping() const
Returns whether we are currently bootstrapping (rewriting annexes).
virtual const Def * rewrite(const Def *)
const Def * rewrite_imm_App(const App *) final
const mim::Def * dfa2matcher(mim::World &, const automaton::DFA &, const mim::Def *)
You can dl::get this function.
#define DLOG(...)
Vaporizes to nothingness in Debug build.
std::unique_ptr< DFA > minimize_dfa(const DFA &dfa)
std::unique_ptr< DFA > nfa2dfa(const NFA &nfa)
const Def * op_cps2ds_dep(const Def *k)
std::unique_ptr< automaton::NFA > regex2nfa(const Def *regex)