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.5.1 and have installed it.
Make sure you configure it with the
--enable-far
,
--enable-pdt
and
--enable-mpdt
flags.
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.
DOCUMENTATION:
See
www.opengrm.org for general documentation.
See
./NEWS for updates since the last release.
-- --
RichardSproat - 25 Mar 2012