ANTLR,
ANother Tool for Language Recognition,
is a language tool that provides a framework for constructing
recognizers, interpreters, compilers, and translators
from grammatical descriptions containing actions in a variety of target languages.
ANTLR provides excellent support for
tree construction, tree walking, translation, error recovery, and error reporting.