use std::collections::{BTreeMap, BTreeSet, VecDeque}; use proc_macro2::TokenStream; use quote::{quote, ToTokens}; use super::nfa::{Range, NFA}; /// A nondeterministic finite automaton. /// By convention, always starts in state 0. pub struct DFA { transition_table: BTreeMap>, accept_states: BTreeSet, } struct LabeledDFA { start_state: Label, transition_table: BTreeMap>, accept_states: BTreeSet