A compiler-compiler or compiler generator is a program that generates the source code of a parser, interpreter, or compiler from a programming language description. In the most general case, it takes a full machine-independent syntactic and semantic description of a programming language, along with a full language-independent description of a target instruction set architecture, and generates a compiler. In practice, most compiler generators are more or less elaborate parser generators which handle neither semantics nor target architecture.
See more at Wikipedia.org...
A program which takes a formal description of a grammar (e.g. in BNF) and outputs source code for a parser which will recognise valid strings obeying that grammar and perform associated actions. Unix's yacc is a well known example.