// Copyright (c) 2010 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_TOOLS_CONVERT_DICT_DIC_READER_H__ #define CHROME_TOOLS_CONVERT_DICT_DIC_READER_H__ #include <stdio.h> #include <string> #include <vector> namespace base { class FilePath; } namespace convert_dict { class AffReader; // Reads Hunspell .dic files. class DicReader { public: // Associated with each word is a list of affix group IDs. This will typically // be only one long, but may be more if there are multiple groups of // independent affix rules for a base word. typedef std::pair<std::string, std::vector<int> > WordEntry; typedef std::vector<WordEntry> WordList; explicit DicReader(const base::FilePath& path); ~DicReader(); // Non-numeric affixes will be added to the given AffReader and converted into // indices. bool Read(AffReader* aff_reader); // Returns the words read by Read(). These will be in order. const WordList& words() const { return words_; } private: FILE* file_; FILE* additional_words_file_; // Contains all words and their corresponding affix index. WordList words_; }; } // namespace convert_dict #endif // CHROME_TOOLS_CONVERT_DICT_DIC_READER_H__