MetaCC is an annotation based lexer (scanner) and
parser generator suitable for processing a wide
range of languages, from small domain-specific
languages to big ones like Java. Actions may be
written directly as annotated Java methods. It
contains examples of an expression language and
Java 5 grammar.