A command line auto completion based on a configurable finite state machine