bool BilingualDynSuffixArray::ExtractPhrases(const int& sntIndex, const int& wordIndex, const int& sourceSize, std::vector<PhrasePair*>& phrasePairs, bool trg2Src) const { /* ExtractPhrases() can extract the matching phrases for both directions by using the trg2Src * parameter */ SentenceAlignment curSnt = GetSentenceAlignment(sntIndex, trg2Src); // get span of phrase in source sentence int beginSentence = m_srcSntBreaks[sntIndex]; int rightIdx = wordIndex - beginSentence ,leftIdx = rightIdx - sourceSize + 1; return curSnt.Extract(m_maxPhraseLength, phrasePairs, leftIdx, rightIdx); // extract all phrase Alignments in sentence }