1 /* phonetic.c - generic replacement aglogithms for phonetic transformation 2 Copyright (C) 2000 Bjoern Jacke 3 4 This library is free software; you can redistribute it and/or 5 modify it under the terms of the GNU Lesser General Public 6 License version 2.1 as published by the Free Software Foundation; 7 8 This library is distributed in the hope that it will be useful, 9 but WITHOUT ANY WARRANTY; without even the implied warranty of 10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 Lesser General Public License for more details. 12 13 You should have received a copy of the GNU Lesser General Public 14 License along with this library; If not, see 15 <http://www.gnu.org/licenses/>. 16 17 Changelog: 18 19 2000-01-05 Bjoern Jacke <bjoern at j3e.de> 20 Initial Release insprired by the article about phonetic 21 transformations out of c't 25/1999 22 23 2007-07-26 Bjoern Jacke <bjoern at j3e.de> 24 Released under MPL/GPL/LGPL tri-license for Hunspell 25 26 2007-08-23 Laszlo Nemeth <nemeth at OOo> 27 Porting from Aspell to Hunspell using C-like structs 28 */ 29 30 #ifndef PHONET_HXX_ 31 #define PHONET_HXX_ 32 33 #define HASHSIZE 256 34 #define MAXPHONETLEN 256 35 #define MAXPHONETUTF8LEN (MAXPHONETLEN * 4) 36 37 #include "hunvisapi.h" 38 39 struct phonetable { 40 char utf8; 41 std::vector<std::string> rules; 42 int hash[HASHSIZE]; 43 }; 44 45 LIBHUNSPELL_DLL_EXPORTED void init_phonet_hash(phonetable& parms); 46 47 LIBHUNSPELL_DLL_EXPORTED std::string phonet(const std::string& inword, 48 phonetable& phone); 49 50 #endif 51