Example:

0   c
1   ac
2   ace
3   a*/b*
4   ac/efg
5   ac/bcd

    
DFA for INITIAL
----------------------------------------------
     1  2  3   4  5  6   7   F             A  
     a  b  c   d  e  f   g
    ------------------------------------------
  0  1  2  3                 3                
  1  4  2  5                 3                
  2     2                    3         3:++1  
  3                          0                
  4  4  2                    3                
  5     6         7          1   4:++0,5:++0  
  6        8                                  
  7                  9       2                
  8           10                              
  9                     11                    
 10                          5                
 11                          4                
----------------------------------------------


    int const ScannerBase::s_dfa[][12] =
    {
        // INITIAL
        //   a  b  c  d  e  f  g
        {-1, 1, 2, 3,-1,-1,-1,-1,-1,-1,   0, 1},  // 0
         { 3, 0,-1, 0},
        {-1, 4, 2, 5,-1,-1,-1,-1,-1,-1,   1, 2},  // 1
         { 3, 0,-1, 0},
        {-1,-1, 2,-1,-1,-1,-1,-1,-1,-1,   2, 3},  // 2
         { 3,-1, 1, 1},
        {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,   3, 4},  // 3
         { 0, 0,-1, 0},
        {-1, 4, 2,-1,-1,-1,-1,-1,-1,-1,   4, 5},  // 4
         { 3, 0,-1, 0},
        {-1,-1, 6,-1,-1, 7,-1,-1,-1,-1,   5, 8},  // 5
         { 4,-2, 0, 1},
         { 5,-2, 0, 1},
         { 1, 0,-1, 0},
        {-1,-1,-1, 8,-1,-1,-1,-1,-1,-1,   8, 8},  // 6
        {-1,-1,-1,-1,-1,-1, 9,-1,-1,-1,   8, 9},  // 7
         { 2, 0,-1, 0},
        {-1,-1,-1,-1,10,-1,-1,-1,-1,-1,   9, 9},  // 8
        {-1,-1,-1,-1,-1,-1,-1,11,-1,-1,   9, 9},  // 9
        {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,   9,10},  // 10
         { 5, 0,-1, 0},
        {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,  10,11},  // 11
         { 4, 0,-1, 0},
    };

    // The first value is the rule index
    // The second value is the final indicator:
    //  -2: not a final state, -1: final state, matching all text
    //  >= 0: final state, the value is the LA tail length.
    // The third value indicates other LA uses:
    //  -1: Not a LA state tail length,
    //  >=0: LA tail on transit FROM this state.
    // The fourth value indicates an incrementing (1) tail:
    // the tail length is incremented at each subsequent transition
    //
    FinAc const ScannerBase::s_finAcInfo[] =
    {
           R  F  T  I
         { 3, 0,-1, 0},
         { 3, 0,-1, 0},
         { 3,-1, 1, 1},
         { 0, 0,-1, 0},
         { 3, 0,-1, 0},
         { 4,-2, 0, 1},
         { 5,-2, 0, 1},
         { 1, 0,-1, 0},
         { 2, 0,-1, 0},
         { 5, 0,-1, 0},
         { 4, 0,-1, 0},
    };
