11#include "SimpleAnalysisDictionaryIterators.h"
12#include "SimpleAnalysisDictionary.h"
14#include "common/misc/strwstrtools.h"
21namespace LinguisticProcessing
26SimpleAnalysisDictionarySubWordIterator::SimpleAnalysisDictionarySubWordIterator(
28 const SimpleAnalysisDictionary& dico,
31 ClonableDictionarySubWordIterator(),
38SimpleAnalysisDictionarySubWordIterator::SimpleAnalysisDictionarySubWordIterator(
const SimpleAnalysisDictionarySubWordIterator& source) :
39ClonableDictionarySubWordIterator(),
40 m_accessItr(source.m_accessItr),
41 m_dico(source.m_dico),
43 m_offset(source.m_offset)
46SimpleAnalysisDictionarySubWordIterator::~SimpleAnalysisDictionarySubWordIterator() {}
48const std::pair<int,Dictionary::DictionaryEntry>
49SimpleAnalysisDictionarySubWordIterator::operator*()
const
53 LDEBUG <<
"SimpleAnalysisDictionarySubWordIterator::operator*()";
55 const std::pair<int,int64_t> pos =
59 LDEBUG <<
"SimpleAnalysisDictionarySubWordIterator::operator*(): m_access=("
60 << pos.first <<
"," << pos.second <<
")"
64 int offset = pos.first;
68 LimaString word(m_key, m_offset, offset - m_offset);
69 string word8 = Common::Misc::limastring2utf8stdstring(word);
72 int dataOffset = m_dico.m_index2Data[pos.second-1];
73LDEBUG <<
"SimpleAnalysisDictionarySubWordIterator::operator*(): word=" << word8
74 <<
", index =" << pos.second
75 <<
", dataOffset =" << dataOffset;
78 return std::pair<int, Dictionary::DictionaryEntry>
79 (offset, Dictionary::DictionaryEntry(
80 word, m_dico.m_stringStartAddr, m_dico.m_lingPropertiesStartAddr, m_dico.m_data+m_dico.m_index2Data[pos.second]));
84SimpleAnalysisDictionarySuperWordIterator::SimpleAnalysisDictionarySuperWordIterator(
90SimpleAnalysisDictionarySuperWordIterator::SimpleAnalysisDictionarySuperWordIterator(
const SimpleAnalysisDictionarySuperWordIterator& source) :
91 ClonableDictionarySuperWordIterator(),
92 m_accessItr(source.m_accessItr)
95SimpleAnalysisDictionarySuperWordIterator::~SimpleAnalysisDictionarySuperWordIterator()
#define ANALYSISDICTLOGINIT