The Essence Parser Generator

Essence is a generator for LR(k) and SLR(k) parsers in R5RS or R6RS Scheme. The generated parsers perform error recovery, and are highly efficient. Testing and debugging a parser does not require an edit-generate-compile-test cycle. Rather, the parser generator results from a general parser which takes the input grammar as a parameter; no generation and recompilation is necessary to try out changes to a grammar. The generated parsers result from the general parser by an automatic program transformation called partial evaluation. This guarantees consistency and ensures correctness. However, no specific knowledge of partial evaluation is required to use Essence.

Authors: Michael Sperber, Peter Thiemann

Essence has been developed using the PGG system.