pub struct Dfa {
pub states: Vec<DfaState>,
}
Fields§
§states: Vec<DfaState>
Implementations§
Source§impl Dfa
impl Dfa
Sourcepub fn render_to<W: Write>(&self, w: &mut W) -> Result<()>
pub fn render_to<W: Write>(&self, w: &mut W) -> Result<()>
get the dot file.
use regex_dfa_gen::ast::AstNode;
use regex_dfa_gen::nfa::Nfa;
use regex_dfa_gen::dfa::{ DfaBuilder, Dfa };
use std::fs::File;
let ast : AstNode = r"([A-Z]*|A[a-z]*?)H".parse::<AstNode>().unwrap();
let nfa = Nfa::from_ast(&ast);
let dfa = DfaBuilder::from_nfa(&nfa).to_dfa();
let mut f = File::create("dfa.dot").unwrap();
dfa.render_to(&mut f).expect("msg");
pub fn from_nfa(nfa: &Nfa) -> Dfa
pub fn replace(self, pair: HashMap<usize, usize>) -> Dfa
pub fn opt(self) -> Dfa
Trait Implementations§
Source§impl<'a> GraphWalk<'a, (usize, Option<usize>), (usize, usize, Range<char>, bool)> for Dfa
impl<'a> GraphWalk<'a, (usize, Option<usize>), (usize, usize, Range<char>, bool)> for Dfa
Source§impl<'a> Labeller<'a, (usize, Option<usize>), (usize, usize, Range<char>, bool)> for Dfa
impl<'a> Labeller<'a, (usize, Option<usize>), (usize, usize, Range<char>, bool)> for Dfa
Source§fn node_id(&'a self, n: &(usize, Option<usize>)) -> Id<'a>
fn node_id(&'a self, n: &(usize, Option<usize>)) -> Id<'a>
Maps
n
to a unique identifier with respect to self
. The
implementer is responsible for ensuring that the returned name
is a valid DOT identifier.Source§fn node_label<'b>(&'b self, n: &(usize, Option<usize>)) -> LabelText<'b>
fn node_label<'b>(&'b self, n: &(usize, Option<usize>)) -> LabelText<'b>
Maps
n
to a label that will be used in the rendered output.
The label need not be unique, and may be the empty string; the
default is just the output from node_id
.Source§fn edge_label<'b>(
&'b self,
(_, _, ch, _): &(usize, usize, CharRange, bool),
) -> LabelText<'b>
fn edge_label<'b>( &'b self, (_, _, ch, _): &(usize, usize, CharRange, bool), ) -> LabelText<'b>
Maps
e
to a label that will be used in the rendered output.
The label need not be unique, and may be the empty string; the
default is in fact the empty string.Source§fn edge_color<'b>(
&'b self,
(_, _, _, is_greedy): &(usize, usize, CharRange, bool),
) -> Option<LabelText<'b>>
fn edge_color<'b>( &'b self, (_, _, _, is_greedy): &(usize, usize, CharRange, bool), ) -> Option<LabelText<'b>>
Source§fn node_style(&'a self, _n: &N) -> Style
fn node_style(&'a self, _n: &N) -> Style
Maps
n
to a style that will be used in the rendered output.Source§fn edge_end_arrow(&'a self, _e: &E) -> Arrow
fn edge_end_arrow(&'a self, _e: &E) -> Arrow
Maps
e
to arrow style that will be used on the end of an edge.
Defaults to default arrow style.Source§fn edge_start_arrow(&'a self, _e: &E) -> Arrow
fn edge_start_arrow(&'a self, _e: &E) -> Arrow
Maps
e
to arrow style that will be used on the end of an edge.
Defaults to default arrow style.Source§fn edge_style(&'a self, _e: &E) -> Style
fn edge_style(&'a self, _e: &E) -> Style
Maps
e
to a style that will be used in the rendered output.Auto Trait Implementations§
impl Freeze for Dfa
impl RefUnwindSafe for Dfa
impl Send for Dfa
impl Sync for Dfa
impl Unpin for Dfa
impl UnwindSafe for Dfa
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more