diff options
Diffstat (limited to 'src/extensions/far')
-rw-r--r-- | src/extensions/far/Makefile.am | 7 | ||||
-rw-r--r-- | src/extensions/far/Makefile.in | 32 | ||||
-rw-r--r-- | src/extensions/far/farcompilestrings.cc | 34 | ||||
-rw-r--r-- | src/extensions/far/farcreate.cc | 22 | ||||
-rw-r--r-- | src/extensions/far/farequal.cc | 57 | ||||
-rw-r--r-- | src/extensions/far/farextract.cc | 12 | ||||
-rw-r--r-- | src/extensions/far/farinfo.cc | 13 | ||||
-rw-r--r-- | src/extensions/far/farprintstrings.cc | 21 | ||||
-rw-r--r-- | src/extensions/far/farscript.cc | 28 | ||||
-rw-r--r-- | src/extensions/far/main.cc | 18 | ||||
-rw-r--r-- | src/extensions/far/strings.cc (renamed from src/extensions/far/compile-strings.cc) | 4 |
11 files changed, 168 insertions, 80 deletions
diff --git a/src/extensions/far/Makefile.am b/src/extensions/far/Makefile.am index 61f7cc8..a7c2fff 100644 --- a/src/extensions/far/Makefile.am +++ b/src/extensions/far/Makefile.am @@ -12,12 +12,13 @@ libfstfar_la_SOURCES = sttable.cc stlist.cc libfstfar_la_LDFLAGS = -version-info 0:0:0 if HAVE_SCRIPT -libfstfarscript_la_SOURCES = farscript.cc compile-strings.cc main.cc +libfstfarscript_la_SOURCES = farscript.cc strings.cc main.cc libfstfarscript_la_LDFLAGS = -version-info 0:0:0 endif if HAVE_BIN -bin_PROGRAMS = farcompilestrings farcreate farextract farinfo farprintstrings +bin_PROGRAMS = farcompilestrings farcreate farequal farextract farinfo \ + farprintstrings LDADD = libfstfarscript.la libfstfar.la ../../script/libfstscript.la \ ../../lib/libfst.la -lm -ldl @@ -26,6 +27,8 @@ farcompilestrings_SOURCES = farcompilestrings.cc farcreate_SOURCES = farcreate.cc +farequal_SOURCES = farequal.cc + farextract_SOURCES = farextract.cc farinfo_SOURCES = farinfo.cc diff --git a/src/extensions/far/Makefile.in b/src/extensions/far/Makefile.in index 8e05cab..0635556 100644 --- a/src/extensions/far/Makefile.in +++ b/src/extensions/far/Makefile.in @@ -36,8 +36,9 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @HAVE_BIN_TRUE@bin_PROGRAMS = farcompilestrings$(EXEEXT) \ -@HAVE_BIN_TRUE@ farcreate$(EXEEXT) farextract$(EXEEXT) \ -@HAVE_BIN_TRUE@ farinfo$(EXEEXT) farprintstrings$(EXEEXT) +@HAVE_BIN_TRUE@ farcreate$(EXEEXT) farequal$(EXEEXT) \ +@HAVE_BIN_TRUE@ farextract$(EXEEXT) farinfo$(EXEEXT) \ +@HAVE_BIN_TRUE@ farprintstrings$(EXEEXT) subdir = src/extensions/far DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 @@ -84,10 +85,9 @@ libfstfar_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ @HAVE_SCRIPT_FALSE@am_libfstfar_la_rpath = -rpath $(libfstdir) @HAVE_SCRIPT_TRUE@am_libfstfar_la_rpath = -rpath $(libfstdir) libfstfarscript_la_LIBADD = -am__libfstfarscript_la_SOURCES_DIST = farscript.cc compile-strings.cc \ - main.cc +am__libfstfarscript_la_SOURCES_DIST = farscript.cc strings.cc main.cc @HAVE_SCRIPT_TRUE@am_libfstfarscript_la_OBJECTS = farscript.lo \ -@HAVE_SCRIPT_TRUE@ compile-strings.lo main.lo +@HAVE_SCRIPT_TRUE@ strings.lo main.lo libfstfarscript_la_OBJECTS = $(am_libfstfarscript_la_OBJECTS) libfstfarscript_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ @@ -109,6 +109,13 @@ farcreate_LDADD = $(LDADD) @HAVE_BIN_TRUE@farcreate_DEPENDENCIES = libfstfarscript.la \ @HAVE_BIN_TRUE@ libfstfar.la ../../script/libfstscript.la \ @HAVE_BIN_TRUE@ ../../lib/libfst.la +am__farequal_SOURCES_DIST = farequal.cc +@HAVE_BIN_TRUE@am_farequal_OBJECTS = farequal.$(OBJEXT) +farequal_OBJECTS = $(am_farequal_OBJECTS) +farequal_LDADD = $(LDADD) +@HAVE_BIN_TRUE@farequal_DEPENDENCIES = libfstfarscript.la libfstfar.la \ +@HAVE_BIN_TRUE@ ../../script/libfstscript.la \ +@HAVE_BIN_TRUE@ ../../lib/libfst.la am__farextract_SOURCES_DIST = farextract.cc @HAVE_BIN_TRUE@am_farextract_OBJECTS = farextract.$(OBJEXT) farextract_OBJECTS = $(am_farextract_OBJECTS) @@ -145,13 +152,13 @@ CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libfstfar_la_SOURCES) $(libfstfarscript_la_SOURCES) \ $(farcompilestrings_SOURCES) $(farcreate_SOURCES) \ - $(farextract_SOURCES) $(farinfo_SOURCES) \ + $(farequal_SOURCES) $(farextract_SOURCES) $(farinfo_SOURCES) \ $(farprintstrings_SOURCES) DIST_SOURCES = $(libfstfar_la_SOURCES) \ $(am__libfstfarscript_la_SOURCES_DIST) \ $(am__farcompilestrings_SOURCES_DIST) \ - $(am__farcreate_SOURCES_DIST) $(am__farextract_SOURCES_DIST) \ - $(am__farinfo_SOURCES_DIST) \ + $(am__farcreate_SOURCES_DIST) $(am__farequal_SOURCES_DIST) \ + $(am__farextract_SOURCES_DIST) $(am__farinfo_SOURCES_DIST) \ $(am__farprintstrings_SOURCES_DIST) ETAGS = etags CTAGS = ctags @@ -283,13 +290,14 @@ AM_CPPFLAGS = -I$(srcdir)/../../include $(ICU_CPPFLAGS) @HAVE_SCRIPT_TRUE@libfst_LTLIBRARIES = libfstfarscript.la libfstfar.la libfstfar_la_SOURCES = sttable.cc stlist.cc libfstfar_la_LDFLAGS = -version-info 0:0:0 -@HAVE_SCRIPT_TRUE@libfstfarscript_la_SOURCES = farscript.cc compile-strings.cc main.cc +@HAVE_SCRIPT_TRUE@libfstfarscript_la_SOURCES = farscript.cc strings.cc main.cc @HAVE_SCRIPT_TRUE@libfstfarscript_la_LDFLAGS = -version-info 0:0:0 @HAVE_BIN_TRUE@LDADD = libfstfarscript.la libfstfar.la ../../script/libfstscript.la \ @HAVE_BIN_TRUE@ ../../lib/libfst.la -lm -ldl @HAVE_BIN_TRUE@farcompilestrings_SOURCES = farcompilestrings.cc @HAVE_BIN_TRUE@farcreate_SOURCES = farcreate.cc +@HAVE_BIN_TRUE@farequal_SOURCES = farequal.cc @HAVE_BIN_TRUE@farextract_SOURCES = farextract.cc @HAVE_BIN_TRUE@farinfo_SOURCES = farinfo.cc @HAVE_BIN_TRUE@farprintstrings_SOURCES = farprintstrings.cc @@ -411,6 +419,9 @@ farcompilestrings$(EXEEXT): $(farcompilestrings_OBJECTS) $(farcompilestrings_DEP farcreate$(EXEEXT): $(farcreate_OBJECTS) $(farcreate_DEPENDENCIES) @rm -f farcreate$(EXEEXT) $(CXXLINK) $(farcreate_OBJECTS) $(farcreate_LDADD) $(LIBS) +farequal$(EXEEXT): $(farequal_OBJECTS) $(farequal_DEPENDENCIES) + @rm -f farequal$(EXEEXT) + $(CXXLINK) $(farequal_OBJECTS) $(farequal_LDADD) $(LIBS) farextract$(EXEEXT): $(farextract_OBJECTS) $(farextract_DEPENDENCIES) @rm -f farextract$(EXEEXT) $(CXXLINK) $(farextract_OBJECTS) $(farextract_LDADD) $(LIBS) @@ -427,15 +438,16 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/compile-strings.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/farcompilestrings.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/farcreate.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/farequal.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/farextract.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/farinfo.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/farprintstrings.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/farscript.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stlist.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strings.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sttable.Plo@am__quote@ .cc.o: diff --git a/src/extensions/far/farcompilestrings.cc b/src/extensions/far/farcompilestrings.cc index 0c9b352..765b908 100644 --- a/src/extensions/far/farcompilestrings.cc +++ b/src/extensions/far/farcompilestrings.cc @@ -25,12 +25,15 @@ #include <fst/extensions/far/main.h> #include <iostream> #include <fstream> +#include <sstream> DEFINE_string(key_prefix, "", "Prefix to append to keys"); DEFINE_string(key_suffix, "", "Suffix to append to keys"); DEFINE_int32(generate_keys, 0, "Generate N digit numeric keys (def: use file basenames)"); -DEFINE_string(far_type, "default", "FAR file format type: one of: "); +DEFINE_string(far_type, "default", + "FAR file format type: one of: \"default\", \"fst\"" + "\"stlist\", \"sttable\""); DEFINE_bool(allow_negative_labels, false, "Allow negative labels (not recommended; may cause conflicts)"); DEFINE_string(arc_type, "standard", "Output arc type"); @@ -43,7 +46,11 @@ DEFINE_string(symbols, "", "Label symbol table"); DEFINE_string(unknown_symbol, "", ""); DEFINE_bool(file_list_input, false, "Each input files contains a list of files to be processed"); - +DEFINE_bool(keep_symbols, false, + "Store symbol table in Far file"); +DEFINE_bool(initial_symbols, true, + "When keep_symbols==true, stores symbol table only for the first" + " Fst in archive."); int main(int argc, char **argv) { namespace s = fst::script; @@ -51,23 +58,19 @@ int main(int argc, char **argv) { string usage = "Compiles a set of strings as FSTs and stores them in"; usage += " a finite-state archive.\n\n Usage:"; usage += argv[0]; - usage += " in1.txt [in2.txt ...] out.far\n"; + usage += " [in1.txt [[in2.txt ...] out.far]]\n"; std::set_new_handler(FailedNewHandler); - SetFlags(usage.c_str(), &argc, &argv, true); - - if (argc < 3) { - ShowUsage(); - return 1; - } - - vector<string> in_fnames(argc - 2); + SET_FLAGS(usage.c_str(), &argc, &argv, true); - for (unsigned i = 1; i < argc - 1; ++i) { - in_fnames[i - 1] = argv[i]; - } + vector<string> in_fnames; + for (unsigned i = 1; i < argc - 1; ++i) + in_fnames.push_back(strcmp(argv[i], "") != 0 ? argv[i] : ""); + if (in_fnames.empty()) + in_fnames.push_back(argc == 2 && strcmp(argv[1], "-") != 0 ? argv[1] : ""); - string out_fname = argv[argc - 1]; + string out_fname = + argc > 2 && strcmp(argv[argc - 1], "-") != 0 ? argv[argc - 1] : ""; fst::FarEntryType fet = fst::StringToFarEntryType(FLAGS_entry_type); fst::FarTokenType ftt = fst::StringToFarTokenType(FLAGS_token_type); @@ -76,6 +79,7 @@ int main(int argc, char **argv) { s::FarCompileStrings(in_fnames, out_fname, FLAGS_arc_type, FLAGS_fst_type, far_type, FLAGS_generate_keys, fet, ftt, FLAGS_symbols, FLAGS_unknown_symbol, + FLAGS_keep_symbols, FLAGS_initial_symbols, FLAGS_allow_negative_labels, FLAGS_file_list_input, FLAGS_key_prefix, FLAGS_key_suffix); diff --git a/src/extensions/far/farcreate.cc b/src/extensions/far/farcreate.cc index 009fc34..9ddbec3 100644 --- a/src/extensions/far/farcreate.cc +++ b/src/extensions/far/farcreate.cc @@ -29,7 +29,8 @@ DEFINE_string(key_suffix, "", "Suffix to append to keys"); DEFINE_int32(generate_keys, 0, "Generate N digit numeric keys (def: use file basenames)"); DEFINE_string(far_type, "default", - "FAR file format type: one of: \"default\", \"stlist\", \"sstable\", \"sttable\""); + "FAR file format type: one of: \"default\", " + "\"stlist\", \"sttable\""); DEFINE_bool(file_list_input, false, "Each input files contains a list of files to be processed"); @@ -38,21 +39,20 @@ int main(int argc, char **argv) { string usage = "Creates a finite-state archive from input FSTs.\n\n Usage:"; usage += argv[0]; - usage += " in1.fst [in2.fst ...] out.far\n"; + usage += " [in1.fst [[in2.fst ...] out.far]]\n"; std::set_new_handler(FailedNewHandler); - SetFlags(usage.c_str(), &argc, &argv, true); - - if (argc < 3) { - ShowUsage(); - return 1; - } + SET_FLAGS(usage.c_str(), &argc, &argv, true); vector<string> in_fnames; - for (int i = 1; i < argc - 1; ++i) - in_fnames.push_back(argv[i]); + for (unsigned i = 1; i < argc - 1; ++i) + in_fnames.push_back(strcmp(argv[i], "") != 0 ? argv[i] : ""); + if (in_fnames.empty()) + in_fnames.push_back(argc == 2 && strcmp(argv[1], "-") != 0 ? argv[1] : ""); + + string out_fname = + argc > 2 && strcmp(argv[argc - 1], "-") != 0 ? argv[argc - 1] : ""; - string out_fname = argv[argc - 1]; string arc_type = fst::LoadArcTypeFromFst(in_fnames[0]); fst::FarType far_type = fst::FarTypeFromString(FLAGS_far_type); diff --git a/src/extensions/far/farequal.cc b/src/extensions/far/farequal.cc new file mode 100644 index 0000000..94e607c --- /dev/null +++ b/src/extensions/far/farequal.cc @@ -0,0 +1,57 @@ +// farequal.cc + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Copyright 2005-2010 Google, Inc. +// Author: allauzen@google.com (Cyril Allauzen) +// +// \file +// Tests if two Far files contains the same (key,fst) pairs. + +#include <fst/extensions/far/main.h> +#include <fst/extensions/far/farscript.h> + +DEFINE_string(begin_key, "", + "First key to extract (def: first key in archive)"); +DEFINE_string(end_key, "", + "Last key to extract (def: last key in archive)"); +DEFINE_double(delta, fst::kDelta, "Comparison/quantization delta"); + +int main(int argc, char **argv) { + namespace s = fst::script; + + string usage = "Prints some basic information about the FSTs in an FST "; + usage += "archive.\n\n Usage:"; + usage += argv[0]; + usage += " in1.far in2.far\n"; + usage += " Flags: begin_key end_key"; + + std::set_new_handler(FailedNewHandler); + SET_FLAGS(usage.c_str(), &argc, &argv, true); + + if (argc != 3) { + ShowUsage(); + return 1; + } + + string filename1(argv[1]), filename2(argv[2]); + + bool result = s::FarEqual( + filename1, filename2, fst::LoadArcTypeFromFar(filename1), + FLAGS_delta, FLAGS_begin_key, FLAGS_end_key); + + if (!result) + VLOG(1) << "FARs are not equal."; + + return result ? 0 : 2; +} diff --git a/src/extensions/far/farextract.cc b/src/extensions/far/farextract.cc index 72b2d15..66b7840 100644 --- a/src/extensions/far/farextract.cc +++ b/src/extensions/far/farextract.cc @@ -38,19 +38,15 @@ int main(int argc, char **argv) { string usage = "Extracts FSTs from a finite-state archive.\n\n Usage:"; usage += argv[0]; - usage += " in1.far [in2.far...]\n"; + usage += " [in1.far in2.far...]\n"; std::set_new_handler(FailedNewHandler); - SetFlags(usage.c_str(), &argc, &argv, true); - - if (argc < 2) { - ShowUsage(); - return 1; - } + SET_FLAGS(usage.c_str(), &argc, &argv, true); vector<string> ifilenames; for (int i = 1; i < argc; ++i) - ifilenames.push_back(argv[i]); + ifilenames.push_back(strcmp(argv[i], "") != 0 ? argv[i] : ""); + if (ifilenames.empty()) ifilenames.push_back(""); const string &arc_type = fst::LoadArcTypeFromFar(ifilenames[0]); diff --git a/src/extensions/far/farinfo.cc b/src/extensions/far/farinfo.cc index e8036a9..2665141 100644 --- a/src/extensions/far/farinfo.cc +++ b/src/extensions/far/farinfo.cc @@ -36,20 +36,17 @@ int main(int argc, char **argv) { string usage = "Prints some basic information about the FSTs in an FST "; usage += "archive.\n\n Usage:"; usage += argv[0]; - usage += " in1.far [in2.far...]\n"; + usage += " [in1.far in2.far...]\n"; usage += " Flags: begin_key end_key list_fsts"; std::set_new_handler(FailedNewHandler); - SetFlags(usage.c_str(), &argc, &argv, true); - - if (argc < 2) { - ShowUsage(); - return 1; - } + SET_FLAGS(usage.c_str(), &argc, &argv, true); vector<string> filenames; for (int i = 1; i < argc; ++i) - filenames.push_back(argv[i]); + filenames.push_back(strcmp(argv[i], "") != 0 ? argv[i] : ""); + if (filenames.empty()) + filenames.push_back(""); s::FarInfo(filenames, fst::LoadArcTypeFromFar(filenames[0]), FLAGS_begin_key, FLAGS_end_key, FLAGS_list_fsts); diff --git a/src/extensions/far/farprintstrings.cc b/src/extensions/far/farprintstrings.cc index ab7d52b..0204ab7 100644 --- a/src/extensions/far/farprintstrings.cc +++ b/src/extensions/far/farprintstrings.cc @@ -31,11 +31,14 @@ DEFINE_string(end_key, "", "Last key to extract (def: last key in archive)"); // PrintStringsMain specific flag definitions. DEFINE_bool(print_key, false, "Prefix each string by its key"); +DEFINE_bool(print_weight, false, "Suffix each string by its weight"); DEFINE_string(entry_type, "line", "Entry type: one of : " "\"file\" (one FST per file), \"line\" (one FST per line)"); DEFINE_string(token_type, "symbol", "Token type: one of : " "\"symbol\", \"byte\", \"utf8\""); DEFINE_string(symbols, "", "Label symbol table"); +DEFINE_bool(initial_symbols, true, + "Uses symbol table from the first Fst in archive for all entries."); int main(int argc, char **argv) { @@ -43,27 +46,25 @@ int main(int argc, char **argv) { string usage = "Print as string the string FSTs in an archive.\n\n Usage:"; usage += argv[0]; - usage += " in1.far [in2.far ...]\n"; + usage += " [in1.far in2.far ...]\n"; std::set_new_handler(FailedNewHandler); - SetFlags(usage.c_str(), &argc, &argv, true); - - if (argc < 2) { - ShowUsage(); - return 1; - } + SET_FLAGS(usage.c_str(), &argc, &argv, true); vector<string> ifilenames; for (int i = 1; i < argc; ++i) - ifilenames.push_back(argv[i]); + ifilenames.push_back(strcmp(argv[i], "") != 0 ? argv[i] : ""); + if (ifilenames.empty()) ifilenames.push_back(""); string arc_type = fst::LoadArcTypeFromFar(ifilenames[0]); s::FarPrintStrings(ifilenames, arc_type, fst::StringToFarEntryType(FLAGS_entry_type), fst::StringToFarTokenType(FLAGS_token_type), - FLAGS_begin_key, FLAGS_end_key, FLAGS_print_key, - FLAGS_symbols, FLAGS_generate_filenames, + FLAGS_begin_key, FLAGS_end_key, + FLAGS_print_key, FLAGS_print_weight, + FLAGS_symbols, FLAGS_initial_symbols, + FLAGS_generate_filenames, FLAGS_filename_prefix, FLAGS_filename_suffix); return 0; diff --git a/src/extensions/far/farscript.cc b/src/extensions/far/farscript.cc index a04645d..bc4ad0e 100644 --- a/src/extensions/far/farscript.cc +++ b/src/extensions/far/farscript.cc @@ -34,14 +34,17 @@ void FarCompileStrings(const vector<string> &in_fnames, FarTokenType tt, const string &symbols_fname, const string &unknown_symbol, + bool keep_symbols, + bool initial_symbols, bool allow_negative_labels, bool file_list_input, const string &key_prefix, const string &key_suffix) { FarCompileStringsArgs args(in_fnames, out_fname, fst_type, far_type, generate_keys, fet, tt, symbols_fname, - unknown_symbol, allow_negative_labels, - file_list_input, key_prefix, key_suffix); + unknown_symbol, keep_symbols, initial_symbols, + allow_negative_labels, file_list_input, + key_prefix, key_suffix); Apply<Operation<FarCompileStringsArgs> >("FarCompileStrings", arc_type, &args); @@ -61,6 +64,16 @@ void FarCreate(const vector<string> &in_fnames, Apply<Operation<FarCreateArgs> >("FarCreate", arc_type, &args); } +bool FarEqual(const string &filename1, const string &filename2, + const string &arc_type, float delta, + const string &begin_key, const string &end_key) { + FarEqualInnerArgs args(filename1, filename2, delta, begin_key, end_key); + FarEqualArgs args_with_retval(args); + + Apply<Operation<FarEqualArgs> >("FarEqual", arc_type, &args_with_retval); + return args_with_retval.retval; +} + void FarExtract(const vector<string> &ifilenames, const string &arc_type, int32 generate_filenames, const string &begin_key, @@ -89,15 +102,16 @@ void FarPrintStrings(const vector<string> &ifilenames, const string &begin_key, const string &end_key, const bool print_key, + const bool print_weight, const string &symbols_fname, + const bool initial_symbols, const int32 generate_filenames, const string &filename_prefix, const string &filename_suffix) { - FarPrintStringsArgs args(ifilenames, entry_type, token_type, begin_key, - end_key, print_key, symbols_fname, - generate_filenames, - filename_prefix, - filename_suffix); + FarPrintStringsArgs args(ifilenames, entry_type, token_type, + begin_key, end_key, print_key, print_weight, + symbols_fname, initial_symbols, generate_filenames, + filename_prefix, filename_suffix); Apply<Operation<FarPrintStringsArgs> >("FarPrintStrings", arc_type, &args); diff --git a/src/extensions/far/main.cc b/src/extensions/far/main.cc index b01d639..855def6 100644 --- a/src/extensions/far/main.cc +++ b/src/extensions/far/main.cc @@ -26,6 +26,7 @@ using std::vector; #include <iostream> #include <fstream> +#include <sstream> #include <fst/extensions/far/main.h> namespace fst { @@ -33,7 +34,9 @@ namespace fst { // Return the 'FarType' value corresponding to a far type name. FarType FarTypeFromString(const string &str) { FarType type = FAR_DEFAULT; - if (str == "stlist") + if (str == "fst") + type = FAR_FST; + else if (str == "stlist") type = FAR_STLIST; else if (str == "sttable") type = FAR_STTABLE; @@ -46,6 +49,8 @@ FarType FarTypeFromString(const string &str) { // Return the textual name corresponding to a 'FarType;. string FarTypeToString(FarType type) { switch (type) { + case FAR_FST: + return "fst"; case FAR_STLIST: return "stlist"; case FAR_STTABLE: @@ -85,19 +90,14 @@ FarTokenType StringToFarTokenType(const string &s) { string LoadArcTypeFromFar(const string &far_fname) { FarHeader hdr; - if (far_fname.empty()) { - LOG(ERROR) << "Reading FAR from standard in not supported"; - return ""; - } - if (!hdr.Read(far_fname)) { - LOG(ERROR) << "Error reading FAR: " << far_fname; + FSTERROR() << "Error reading FAR: " << far_fname; return ""; } string atype = hdr.ArcType(); if (atype == "unknown") { - LOG(ERROR) << "Empty FST archive: " << far_fname; + FSTERROR() << "Empty FST archive: " << far_fname; return ""; } @@ -108,7 +108,7 @@ string LoadArcTypeFromFst(const string &fst_fname) { FstHeader hdr; ifstream in(fst_fname.c_str(), ifstream::in | ifstream::binary); if (!hdr.Read(in, fst_fname)) { - LOG(ERROR) << "Error reading FST: " << fst_fname; + FSTERROR() << "Error reading FST: " << fst_fname; return ""; } diff --git a/src/extensions/far/compile-strings.cc b/src/extensions/far/strings.cc index e8a99cc..c62a45b 100644 --- a/src/extensions/far/compile-strings.cc +++ b/src/extensions/far/strings.cc @@ -17,6 +17,10 @@ #include <fst/extensions/far/compile-strings.h> #include <iostream> #include <fstream> +#include <sstream> + +DEFINE_string(far_field_separator, "\t", + "Set of characters used as a separator between printed fields"); namespace fst { |