Objects of the class tt(State) describe one single state of a RE
link(pattern)(PATTERNS). A tt(State) contains/offers:
    itemization(
    itt(d_type): the type represented by the State (EMPTY, FINAL, CHARSET,
        BOL), the internally used tt(UNDETERMINED_) and tt(EOF_) types, or
        (initially) the ascii-value of a single character. Once the character
        ranges have been determined (see section ref(RANGES)), which happens
        in ./main.cc `ranges.determineSubsets()' the type contains the
        (0-based) range index, and states representing character sets also
        contain the set of character range-indices that apply to those sets
        (this is implemented in ./main.cc's line ranges.finalizeStates()').
        No other type may occur (if another type is encountered flc() contains
        an internal logic error and the program terminates in a fatal
        exception).
    itt(d_rule): an index into the link(Rules)(RULES) object to the
        link(rule)(RULE) object defining the pattern;
    it() A shared pointer to tt(StateData). The class tt(StateData) contains
        two indices: the tt(State) indices of the states following the current
        tt(State) (or 0 if this state represents a final state). The second
        index (tt(d_next2)) may be 0, indicating that there is no second
        continuation state. It is unequal 0 when the
        em(alternate) operator (tt('|')) is used in a RE.
    )

Starting from a pattern's initial state all its subsequent states can
therefore be reached by visiting  the indices stored in
tt(StateData). 

    figure(images/state)(The State class)(STATEFIG)
