LLgen is a tool for generating an efficient recursive descent parser from an ELL(1) grammar. The grammar may be ambiguous or more general than ELL(1): there are both static and dynamic facilities to resolve the ambiguities. LLgen is a part of the Amsterdam Compiler Kit, used all the way in it for parsing C, Pascal, Modula etc.