@@ -2,13 +2,13 @@ Hammer is a parsing library. Like many modern parsing libraries, it provides a p
...
@@ -2,13 +2,13 @@ Hammer is a parsing library. Like many modern parsing libraries, it provides a p
Hammer is written in C, but will provide bindings for other languages. If you don't see a language you're interested in on the list, just ask.
Hammer is written in C, but will provide bindings for other languages. If you don't see a language you're interested in on the list, just ask.
Hammer currently builds under Linux and OSX. (Windows is coming.)
Hammer currently builds under Linux. (Windows and OSX are coming.)
Features
Features
========
========
* Bit-oriented -- grammars can include single-bit flags or multi-bit constructs that span character boundaries, with no hassle
* Bit-oriented -- grammars can include single-bit flags or multi-bit constructs that span character boundaries, with no hassle
* Thread-safe, reentrant
* Thread-safe, reentrant
* Benchmarking for parsing backends -- determine empirically which backend will be most time/space-efficient for your grammar
* Benchmarking for parsing backends -- determine empirically which backend will be most time-efficient for your grammar
* Parsing backends:
* Parsing backends:
* Packrat parsing
* Packrat parsing
* LL(k) (not yet implemented)
* LL(k) (not yet implemented)
...
@@ -28,10 +28,14 @@ Features
...
@@ -28,10 +28,14 @@ Features
Installing
Installing
==========
==========
### Prerequisites
### Prerequisites
* pkg-config
* glib-2.0 (for the test suite; everything else will build without glib)
* make
* make
### Optional Dependencies
* doxygen (for `make doc`)
* pkg-config (for `make test`)
* glib-2.0 (for `make test`)
* glib-2.0-dev (for `make test`)
To install, type `make`. To run the built-in test suite, type `make test`.
To install, type `make`. To run the built-in test suite, type `make test`.
There is not currently a `make install` target; to make Hammer available system-wide, copy `libhammer.a` to `/usr/lib/` (or `/usr/local/lib/`, or wherever ld will find it) and `hammer.h` to `/usr/include/`.
There is not currently a `make install` target; to make Hammer available system-wide, copy `libhammer.a` to `/usr/lib/` (or `/usr/local/lib/`, or wherever ld will find it) and `hammer.h` to `/usr/include/`.