ChartParser::ChartParser(InputType const &source, ChartCellCollectionBase &cells) : m_decodeGraphList(StaticData::Instance().GetDecodeGraphs()), m_source(source) { const StaticData &staticData = StaticData::Instance(); staticData.InitializeForInput(source); CreateInputPaths(m_source); const std::vector<PhraseDictionary*> &dictionaries = PhraseDictionary::GetColl(); assert(dictionaries.size() == m_decodeGraphList.size()); m_ruleLookupManagers.reserve(dictionaries.size()); for (std::size_t i = 0; i < dictionaries.size(); ++i) { const PhraseDictionary *dict = dictionaries[i]; PhraseDictionary *nonConstDict = const_cast<PhraseDictionary*>(dict); std::size_t maxChartSpan = m_decodeGraphList[i]->GetMaxChartSpan(); ChartRuleLookupManager *lookupMgr = nonConstDict->CreateRuleLookupManager(*this, cells, maxChartSpan); m_ruleLookupManagers.push_back(lookupMgr); } }
ChartParser::ChartParser(InputType const &source, ChartCellCollectionBase &cells) : m_decodeGraphList(StaticData::Instance().GetDecodeGraphs()), m_source(source) { const StaticData &staticData = StaticData::Instance(); staticData.InitializeForInput(source); CreateInputPaths(m_source); const std::vector<PhraseDictionary*> &dictionaries = PhraseDictionary::GetColl(); m_ruleLookupManagers.reserve(dictionaries.size()); for (std::vector<PhraseDictionary*>::const_iterator p = dictionaries.begin(); p != dictionaries.end(); ++p) { const PhraseDictionary *dict = *p; PhraseDictionary *nonConstDict = const_cast<PhraseDictionary*>(dict); ChartRuleLookupManager *lookupMgr = nonConstDict->CreateRuleLookupManager(*this, cells); m_ruleLookupManagers.push_back(lookupMgr); } }