summaryrefslogtreecommitdiff
path: root/rst_parser/arc_ff.h
diff options
context:
space:
mode:
Diffstat (limited to 'rst_parser/arc_ff.h')
-rw-r--r--rst_parser/arc_ff.h35
1 files changed, 10 insertions, 25 deletions
diff --git a/rst_parser/arc_ff.h b/rst_parser/arc_ff.h
index bc51fef4..52f311d2 100644
--- a/rst_parser/arc_ff.h
+++ b/rst_parser/arc_ff.h
@@ -7,37 +7,22 @@
#include "arc_factored.h"
struct TaggedSentence;
-class ArcFeatureFunction {
+struct ArcFFImpl;
+class ArcFeatureFunctions {
public:
- virtual ~ArcFeatureFunction();
+ ArcFeatureFunctions();
+ ~ArcFeatureFunctions();
// called once, per input, before any calls to EdgeFeatures
// used to initialize sentence-specific data structures
- virtual void PrepareForInput(const TaggedSentence& sentence);
+ void PrepareForInput(const TaggedSentence& sentence);
- inline void EgdeFeatures(const TaggedSentence& sentence,
- short h,
- short m,
- SparseVector<weight_t>* features) const {
- EdgeFeaturesImpl(sentence, h, m, features);
- }
- protected:
- virtual void EdgeFeaturesImpl(const TaggedSentence& sentence,
- short h,
- short m,
- SparseVector<weight_t>* features) const = 0;
-};
-
-class DistancePenalty : public ArcFeatureFunction {
- public:
- DistancePenalty(const std::string& param);
- protected:
- virtual void EdgeFeaturesImpl(const TaggedSentence& sentence,
- short h,
- short m,
- SparseVector<weight_t>* features) const;
+ void EdgeFeatures(const TaggedSentence& sentence,
+ short h,
+ short m,
+ SparseVector<weight_t>* features) const;
private:
- const int fidw_, fidr_;
+ ArcFFImpl* pimpl;
};
#endif