A Parser is a tool for reading data. Two widely used forms of Parser are the RecursiveDescentParser and FiniteStateMachines such as Bison.

Parsers are usually the first phase of a ProgrammingLanguage Compiler, but are also used to parse non-ProgrammingLanguage data (such as RTF or XML) and in the field of NaturalLanguageParsing.