Finite-state automaton