<language> An algorithm or program to determine the syntactic structure of ("to parse") a sentence or string of symbols in some language. A parser normally takes as input a sequence of tokens output by a lexical analyser. It may produce some kind of abstract syntax tree as output. A parser may be produced automatically from a grammar by a parser generator such as yacc.
A parser is normally part of some larger program, like a compiler, which takes the output of the parser and attempts to extract meaning from it in some way, e.g. translating it into another language.