00001 #pragma once
00002 #ifndef EXTRACT_GHKM_STSG_RULE_WRITER_H_
00003 #define EXTRACT_GHKM_STSG_RULE_WRITER_H_
00004
00005 #include <ostream>
00006
00007 #include "Subgraph.h"
00008
00009 namespace MosesTraining
00010 {
00011 namespace Syntax
00012 {
00013 namespace GHKM
00014 {
00015
00016 struct Options;
00017 class StsgRule;
00018 class Symbol;
00019
00020 class StsgRuleWriter
00021 {
00022 public:
00023 StsgRuleWriter(std::ostream &fwd, std::ostream &inv, const Options &options)
00024 : m_fwd(fwd)
00025 , m_inv(inv)
00026 , m_options(options) {}
00027
00028 void Write(const StsgRule &rule);
00029
00030 private:
00031
00032 StsgRuleWriter(const StsgRuleWriter &);
00033 StsgRuleWriter &operator=(const StsgRuleWriter &);
00034
00035 std::ostream &m_fwd;
00036 std::ostream &m_inv;
00037 const Options &m_options;
00038 };
00039
00040 }
00041 }
00042 }
00043
00044 #endif