A functional parser generator
This article describes FPG, a functional parser generator. It is functional both in the sense that it is written in, and in the sense that it generates code for, a functional language, in this case LML. The lazy semantics, of the underlying language makes it possible for FPG to accept very general classes of attribute grammars, without the difficulties normally associated with such grammars. these aspects are discussed in the article. The implementation of the parser is also described.