ANTLR
ANTLR (ANother Tool for Language Recognition) is a tool that permits the specification of the grammatic rules of a language and produces source code to recognize that language. The most common programming language used for this purpose is Java.