The member tt(ScannerBase::knownFinalState) (implemented in tt(ScannerBase.h)
returns
        verb(
    (d_atBOL && available(d_final.atBOL.rule)) 
    || 
    available(d_final.notAtBOL.rule);
        )
    only if this is true, tt(ScannerBase::actionType_) returns
tt(ActionType_::MATCH).

Three variables are used here, resulting in 8 possibilities:
    center(
    table(6)(cccccl)(
    rowline()
    row(cells(3)() cells(2)(available rule))
                    columnline(4)(5)
    row(cell(nr)cell()cell(d_atBOL)cells(1)(std)cells(1)(bol)cell(action))
    rowline()
    row(cell(1)cell()cells(1)(0)cells(1)(0)cells(1)(0)
                                cell(prevented by knownFinalState))
    row(cell(2)cell()cells(1)(0)cells(1)(0)cells(1)(1)
                                cell(prevented by knownFinalState))
    row()
    row(cell(3)cell()cells(1)(0)cells(1)(1)cells(1)(0)cell(use the std. rule))
    row(cell(4)cell()cells(1)(0)cells(1)(1)cells(1)(1)cell(use the std. rule))
    row()
    row(cell(5)cell()cells(1)(1)cells(1)(0)cells(1)(0)
                                cell(prevented by knownFinalState))
    row(cell(6)cell()cells(1)(1)cells(1)(0)cells(1)(1)cell(use the BOL rule))
    row()
    row(cell(7)cell()cells(1)(1)cells(1)(1)cells(1)(0)cell(use the std rule))
    row(cell(8)cell()cells(1)(1)cells(1)(1)cells(1)(1)
                                cell(different match lengths: use))
    row(cells(5)()cell(the rule matching the longest text;))
    row(cells(5)()cell(equal match lengths: use the earlier rule.))
    rowline()
    )
    )
    The numbers in this table are referred to by tt(skeleton/flexc++.cc's)
 member tt(matched_).
