In functional programming, a parser combinator is a higher-order function which accepts several parsers as input and returns a new parser as its output.