summaryrefslogtreecommitdiff
path: root/decoder/apply_fsa_models.h
diff options
context:
space:
mode:
Diffstat (limited to 'decoder/apply_fsa_models.h')
-rwxr-xr-xdecoder/apply_fsa_models.h27
1 files changed, 19 insertions, 8 deletions
diff --git a/decoder/apply_fsa_models.h b/decoder/apply_fsa_models.h
index 5120fb4e..6561c70c 100755
--- a/decoder/apply_fsa_models.h
+++ b/decoder/apply_fsa_models.h
@@ -4,25 +4,36 @@
#include <string>
#include <iostream>
#include "feature_vector.h"
+#include "named_enum.h"
struct FsaFeatureFunction;
struct Hypergraph;
struct SentenceMetadata;
struct HgCFG;
+
+#define FSA_BY(X,t) \
+ X(t,BU_CUBE,) \
+ X(t,BU_FULL,) \
+ X(t,EARLEY,) \
+
+#define FSA_BY_TYPE FsaBy
+
+DECLARE_NAMED_ENUM(FSA_BY)
+
struct ApplyFsaBy {
- enum {
- BU_CUBE,
- BU_FULL,
- EARLEY,
- N_ALGORITHMS
- };
+/*enum {
+ BU_CUBE,
+ BU_FULL,
+ EARLEY,
+ N_ALGORITHMS
+ };*/
int pop_limit; // only applies to BU_FULL so far
bool IsBottomUp() const {
return algorithm==BU_FULL || algorithm==BU_CUBE;
}
int BottomUpAlgorithm() const;
- int algorithm;
+ FsaBy algorithm;
std::string name() const;
friend inline std::ostream &operator << (std::ostream &o,ApplyFsaBy const& c) {
o << c.name();
@@ -30,7 +41,7 @@ struct ApplyFsaBy {
o << "("<<c.pop_limit<<")";
return o;
}
- explicit ApplyFsaBy(int alg, int poplimit=200);
+ explicit ApplyFsaBy(FsaBy alg, int poplimit=200);
ApplyFsaBy(std::string const& name, int poplimit=200);
ApplyFsaBy(const ApplyFsaBy &o) : algorithm(o.algorithm) { }
static std::string all_names(); // space separated