[−][src]Macro nifty::make_dfa
macro_rules! make_dfa { ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} recognizes { $description:expr } ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} transitions {$( $edge:expr => ($from:expr, $to:expr) )*} ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} dead{$( $dead:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} accept {$( $accept:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} start { $start:expr } ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} accept {$( $accept:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } accept {$( $accept:expr ),*} goal{$( $goal:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} goal{$( $goal:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} dead{$( $dead:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} start { $start:expr } ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } dead{$( $dead:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} start { $start:expr } ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } goal{$( $goal:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} dead{$( $dead:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} start { $start:expr } ) => { ... }; ( states {$( $state:expr ),*} goal{$( $goal:expr ),*} ) => { ... }; ( states {$( $state:expr ),*} ) => { ... }; }
Creates a DFA using the DFABuilder.
make_dfa!
must takestates{...}
first.make_dfa!
may take any ofstart{...}
,accept{...}
,dead{...}
,goal{...}
in any order.make_dfa!
may take any oftransitions{...}
,recognizes{...}
in any order.
Example
Code
use nifty::make_dfa; let q0 = "Seen { }"; let q1 = "Seen { b }"; let q2 = "Seen { ba }"; let q3 = "Seen { bab }"; let mut dfa = make_dfa! { states { q0, q1, q2, q3 } start { q0 } goal { q3 } transitions { 'a' => (q0, q0) 'a' => (q1, q2) 'a' => (q2, q0) 'b' => (q0, q1) 'b' => (q1, q1) 'b' => (q2, q3) } recognizes { "contains { bab }" } };