Thrax README

Thrax - Release 1.2

Thrax is a toolkit for compiling grammars based on regular expressions and
context-dependent rewrite rules into weighted finite-state transducers
(FSTs). The FST representation uses OpenFst.

REQUIREMENTS:

This version is known to work under Linux using
g++ (≥ 4.6) and MacOS X using XCode 5. Expected to work wherever adequate POSIX (dlopen, ssize_t, basename), c99 (snprintf, strtoll, <stdint.h>), and C++11 (<ordered_set>, <ordered_map>, <forward_list>) support are available. Requires bison.

It is assumed you have OpenFst (www.openfst.org) 1.6.0 or higher and have installed it.
MAKE SURE YOU CONFIGURE OpenFst WITH THE --enable-far, --enable-pdt AND --enable-mpdt flags. Starting with OpenFst 1.6.0, you can also just use --enable-grm.

INSTALLATION:

Follow the generic GNU build system instructions in ./INSTALL. We recommend configuring with --enable-static=no for faster compiles.

Configuring with --enable-bin=no gives very fast compiles, but excludes the command line utilities.

If you have GNU readline (or NetBSD readline on Mac OS X), you can also configure Thrax with the --enable-readline flag: this will enable inline editing and saving of history in thraxrewrite-tester.

Compiling with -Wall -Wno-sign-compare under g++ should give no warnings from this library.

NOTE: In some versions of Mac OS-X we have noticed a problem with configure whereby it fails to find fst.h. If this occurs, try configuring as follows:

CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib ./configure

USAGE:

Assuming you've installed under the default /usr/local, the GRM binaries are found on /usr/local/bin. Headers will be in /usr/local/include/thrax, and libraries in /usr/local/lib.

Auxiliary data files -- provided grammars -- are under /usr/local/share/thrax. Syntax highlighters (for vi and emacs) and other useful tools are under /usr/local/share/utils.

To use in your own programs you will need to include <thrax/thrax.h>.
The compiler must support C++11 (for g++ add the flag "-std=c++0x").
Compile with '-I /usr/local/include' and link against /usr/local/lib/libfst.so,
/usr/local/lib/fst/libfstfar.so and /usr/local/lib/libthrax.so.

The linking is, by default, dynamic so that the Fst and Arc type DSO extensions can be used correctly if desired.