Using CUP involves creating a simple specification based on the grammar for which a parser is needed, along with construction of a scanner capable of breaking characters up into meaningful tokens (such as keywords, numbers, and special symbols).
CUP is designed to fill the same role as the well known YACC parser generator system, but is written in and operates entirely with Java code rather than C or C++.
CUP was originally written by Scott Hudson, in August of 1995.