Finite state automaton