ANTLR, ANother Tool for Language Recognition, formerly known as PCCTS, is a language tool that provides a framework for constructing recognizers, compilers, and translators from grammatical descriptions containing actions in a variety of target languages. ANTLR automates the construction of language recognizers. From a formal grammar, ANTLR generates a program that determines whether sentences conform to that language. In other words, it's a program that writes other programs. By adding code snippets to the grammar, the recognizer becomes a translator or interpreter. ANTLR provides excellent support for intermediate-form tree construction, tree walking, translation and provides sophisticated automatic error recovery and reporting.
Grammatica is a C# and Java parser generator (compiler compiler). It improves upon simlar tools (like yacc and ANTLR) by creating well-commented and readable source code, by having automatic error recovery and detailed error messages, and by support for testing and debugging grammars without generating source code.