[][src]Module nifty::make_dfa

Macro make_dfa! creates a DFA using the DFABuilder.

  1. make_dfa! must take states{...} first.
  2. make_dfa! may take any of start{...}, accept{...}, dead{...}, goal{...} in any order.
  3. make_dfa! may take any of transitions{...}, 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 }"
    }
};