buffalo is a canonical LR(1) and LALR(1) parser generator, a pure Common Lisp implementation of Knuth's original canonical method and the DeRemer/Pennello algorithm to compute lookahead sets, including yacc-compliant conflict resolution.

Buffalo is written in plain Common Lisp, using sparse sets, patricia tries and other scalable techniques internally while maintaing a "lispy" interface to the world. Parse table construction time of grammars like a C grammar can be small fractions of a second.

Buffalo implements all of the functionality and all of the user interface functions and macros of CL-Yacc (on which the front end is built). Software that runs with CL-Yacc should work with buffalo without modification.