Skip to content
A system for creating fast, reusable parsers
Lua C Other
Find file
Latest commit a12a123 Jul 7, 2015 @haberman Bring repo into compliance with Google open-source policies.
- added AUTHORS, CONTRIBUTORS, and files.
- removed copyright notices from source files.
- rewrote tiny bit of information in BIBLIOGRAPHY that didn't
  have a CLA.
- removed third_party files from repo.


Gazelle: a system for building fast, reusable parsers



While Gazelle is getting quite usable, the language and the APIs are still quite
subject to change.

Still with me?  Great. :)


You need to have Lua installed to do anything interesting.  The C runtime
doesn't need Lua, but without Lua you can't compile any grammars.

Gazelle should build mostly out-of-the-box on UNIX-like systems if Lua 5.1 is
installed, but you may need to tweak the Makefile to point to your local Lua
installation.  Ubuntu Linux, Debian and Mac OS X are tested.  To install
dependencies on Ubuntu or Debian, type:

$ sudo aptitude install lua5.1 liblua5.1-0-dev

To build and install Gazelle, type:

$ make
$ make install

You can change the installation location as follows:

$ make PREFIX=/usr/local
$ make install PREFIX=/usr/local DESTDIR=/tmp

This will install Gazelle into /tmp/usr/local.

To build the documentation, you need to have asciidoc installed, as well
as graphviz if you want to see the graphics. 

$ make doc

Alternatively you can just read the manual on the Gazelle website.


  what parses the grammar, turns it into state machines, and dumps into bytcode
  compiler code that will not be needed once Gazelle is self-hosting
  wrappers around the C runtime, for high-level languages (currently only Lua)
  the tiny, fast, small-memory-footprint C runtime that actually does the parsing
  public header files for the runtime.
  code that is either half-written or for debugging-only
  unit tests (not very many at the moment)
  command-line utilities for doing useful things


For questions, comments, etc. please post to the gazelle-users group.  I read
and respond to posts on this list.

If you need to contact me directly, I am:
Joshua Haberman <>

Something went wrong with that request. Please try again.