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.
COMPILING UNDER CYGWIN
If compiling under Cygwin see Damir Cavar's instructions at
http://cavar.me/damir/compiling-thrax-on-linux-mac-osx-and-windows-with-cygwin/.
This fix has been incorporated as of Thrax 1.2.3.
DOCUMENTATION:
See
www.opengrm.org for general documentation.
See
./NEWS for updates since the last release.