OMeta is a new object-oriented language for pattern matching.
It is based on a variant of Parsing Expression Grammars (PEGs) which we have
extended to handle arbitrary data types.
OMeta's general-purpose pattern matching facilities provide a natural and
convenient way for programmers to implement tokenizers, parsers, visitors,
and tree transformers, all of which can be extended in interesting ways
using familiar object-oriented mechanisms.