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...
Last updated: 14 March, 2010.