Whale Calf, a parser generator for Boolean grammars

Whale Calf is a research-level parser generator for Boolean grammars, which are context-free grammars augmented with Boolean operations. It is written by Alexander Okhotin in C++, and is mainly aimed at demonstrating different parsing algorithms, of which the most practically useful is the Generalized LR (GLR). The main development took place in 2000-2004, though (as of March 2010) some occasional corrections are still being made.

The tool consists of two distinct components: a parser generator that converts a text-based conjunctive grammar description into a set of C++ structures containing information necessary to parse the language, and a C++ class library that uses this information to do the actual parsing. The user has to write one or more grammar files; use the parser generator to translate them into C++ files; define a parser object within the main program, passing a grammar object to the constructor; use a parser class method to load a string into the parser; and finally call one more method to recognize the string.

It has to be stressed that this is not a production-level parser generator. Though algorithms are faithfully implemented, the interface to the programmer is extremely primitive. Though the author would be glad to implement these algoritms in a practical software, this wouldn't be a small project, and the author could not find any time for that for many years. Perhaps someday a software-oriented student will join my project, or any enthusiasts will emerge out of nowhere...

  1. Whale Calf 1.9.0, the latest release: source (compiles under g++).
  2. Outdated documentation: pdf.
  3. Presentation of Whale Calf at CIAA 2002 conference (Tours, France): the paper,
  4. Some examples of grammars.

E-mail: christian_name.family_name@utu.fi.

Last updated: 14 March, 2010.