19 #ifndef NUSPELL_AFF_DATA_HXX
20 #define NUSPELL_AFF_DATA_HXX
22 #include "nuspell_export.h"
23 #include "structures.hxx"
26 #include <unicode/locid.h>
29 NUSPELL_BEGIN_INLINE_NAMESPACE
34 NUSPELL_EXPORT
auto normalize_name() -> void;
37 enum Enc_Type { SINGLEBYTE =
false, UTF8 =
true };
40 explicit Encoding(
const std::string& e) : name(e) { normalize_name(); }
41 explicit Encoding(std::string&& e) : name(move(e)) { normalize_name(); }
42 explicit Encoding(
const char* e) : name(e) { normalize_name(); }
43 auto& operator=(
const std::string& e)
49 auto& operator=(std::string&& e)
55 auto& operator=(
const char* e)
61 auto empty()
const {
return name.empty(); }
62 auto& value()
const {
return name; }
63 auto is_utf8()
const {
return name ==
"UTF-8"; }
64 auto value_or_default()
const -> std::string
71 operator Enc_Type()
const {
return is_utf8() ? UTF8 : SINGLEBYTE; }
74 enum class Flag_Type { SINGLE_CHAR, DOUBLE_CHAR, NUMBER, UTF8 };
86 using Word_List = Hash_Multimap<std::string, Flag_Set>;
89 static constexpr
auto HIDDEN_HOMONYM_FLAG = char16_t(-1);
90 static constexpr
auto MAX_SUGGESTIONS = size_t(16);
97 bool complex_prefixes;
101 char16_t compound_onlyin_flag;
102 char16_t circumfix_flag;
103 char16_t forbiddenword_flag;
104 char16_t keepcase_flag;
105 char16_t need_affix_flag;
109 char16_t compound_flag;
110 char16_t compound_begin_flag;
111 char16_t compound_last_flag;
112 char16_t compound_middle_flag;
118 std::string ignored_chars;
119 icu::Locale icu_locale;
124 std::vector<Similarity_Group> similarities;
125 std::string keyboard_closeness;
126 std::string try_chars;
129 char16_t nosuggest_flag;
130 char16_t substandard_flag;
131 unsigned short max_compound_suggestions;
132 unsigned short max_ngram_suggestions;
133 unsigned short max_diff_factor;
135 bool no_split_suggestions;
136 bool suggest_with_dots;
139 unsigned short compound_min_length;
140 unsigned short compound_max_word_count;
141 char16_t compound_permit_flag;
142 char16_t compound_forbid_flag;
143 char16_t compound_root_flag;
144 char16_t compound_force_uppercase;
145 bool compound_more_suffixes;
146 bool compound_check_duplicate;
147 bool compound_check_rep;
148 bool compound_check_case;
149 bool compound_check_triple;
150 bool compound_simplified_triple;
151 bool compound_syllable_num;
152 unsigned short compound_syllable_max;
153 std::string compound_syllable_vowels;
154 std::vector<Compound_Pattern> compound_patterns;
159 std::vector<Flag_Set> flag_aliases;
160 std::string wordchars;
162 auto parse_aff(std::istream& in, std::ostream& err_msg) -> bool;
163 auto parse_dic(std::istream& in, std::ostream& err_msg) -> bool;
164 auto parse_aff_dic(std::istream& aff, std::istream& dic,
165 std::ostream& err_msg)
167 if (parse_aff(aff, err_msg))
168 return parse_dic(dic, err_msg);
172 NUSPELL_END_INLINE_NAMESPACE
Definition: structures.hxx:440
Definition: structures.hxx:1382
Definition: aff_data.hxx:31
Definition: structures.hxx:1227
Definition: structures.hxx:1520
Definition: structures.hxx:315
Definition: structures.hxx:1279
Library main namespace.
Definition: aff_data.cxx:33
Definition: aff_data.hxx:88