00001 #pragma once
00002
00003 #include <vector>
00004
00005 #include "moses/Syntax/S2T/PChart.h"
00006
00007 #include "PatternApplicationTrie.h"
00008 #include "SymbolRange.h"
00009 #include "TailLattice.h"
00010
00011 namespace Moses
00012 {
00013 namespace Syntax
00014 {
00015 namespace S2T
00016 {
00017
00018 class TailLatticeBuilder
00019 {
00020 public:
00021 TailLatticeBuilder(PChart &chart) : m_chart(chart) {}
00022
00023
00024
00025 void Build(const std::vector<const PatternApplicationTrie *> &,
00026 const std::vector<SymbolRange> &,
00027 TailLattice &, std::vector<std::vector<bool> > &);
00028
00029 private:
00030
00031
00032 void ExtendAndClear(const std::vector<const PatternApplicationTrie *> &,
00033 const std::vector<SymbolRange> &,
00034 TailLattice &, std::vector<std::vector<bool> > &);
00035
00036 PChart &m_chart;
00037 };
00038
00039 }
00040 }
00041 }