Constructor of Useful Parsers (CUP), a system for generating LALR
parsers from simple specifications.  It serves the same role as the
widely-used program `yacc', and in fact offers most of the features of
`yacc'; however, CUP is written in Java, uses specifications including
embedded Java code, and produces parsers with are implemented in Java.
