$ cat > test.lexc
Multichar_Symbols
%<prn%>
LEXICON Root
al% žaktar%<prn%>:al% žaktar # ;
================================================================================
$ hfst-lexc test.lexc -o test.hfst
Root...1
Building lexicon...
Determinizing...
Minimizing...
Done!
568 bytes. 11 states, 10 arcs, 1 path.
Writing to file test.hfst.
Writing AT&T file: test.hfst.att
Using default output format OpenFst with tropical weight class
Reading from test.hfst.att, writing to test.hfst
Using OpenFst's tropical weights as output
Reading transducer table...
================================================================================
$ hfst-invert test.hfst | hfst-fst2fst -w -o test.hfst.ol
================================================================================
$ echo "al žaktar" | hfst-proc test.hfst.ol
^al žaktar/al žaktar<prn>$
$ echo "al žaktare" | hfst-proc test.hfst.ol
^al/*al$
================================================================================
The correct output would be either:
$ echo "al žaktare" | hfst-proc test.hfst.ol
^al/al$ ^žaktare/žaktare$
or
$ echo "al žaktare" | hfst-proc test.hfst.ol
^al žaktare/*al žaktare$
I think the former is better.
Fixed in SVN along the latter suggestion, better control over it can be implemented later.