Boost.Locale
types.hpp
1 //
2 // Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)
3 //
4 // Distributed under the Boost Software License, Version 1.0.
5 // https://www.boost.org/LICENSE_1_0.txt
6 
7 #ifndef BOOST_LOCALE_BOUNDARY_TYPES_HPP_INCLUDED
8 #define BOOST_LOCALE_BOUNDARY_TYPES_HPP_INCLUDED
9 
10 #include <boost/locale/config.hpp>
11 #include <boost/assert.hpp>
12 #include <boost/cstdint.hpp>
13 
14 #ifdef BOOST_MSVC
15 # pragma warning(push)
16 # pragma warning(disable : 4275 4251 4231 4660)
17 #endif
18 
19 namespace boost {
20 
21  namespace locale {
22 
26  namespace boundary {
34 
40  word,
43  };
44 
50  typedef uint32_t rule_type;
51 
56  static const rule_type
57  word_none = 0x0000F,
58  word_number = 0x000F0,
59  word_letter = 0x00F00,
60  word_kana = 0x0F000,
61  word_ideo = 0xF0000,
62  word_any = 0xFFFF0,
63  word_letters = 0xFFF00,
64  word_kana_ideo = 0xFF000,
65  word_mask = 0xFFFFF;
66 
72  static const rule_type
73  line_soft = 0x0F,
74  line_hard = 0xF0,
75  line_any = 0xFF,
76  line_mask = 0xFF;
77 
79 
85  static const rule_type
86  sentence_term = 0x0F,
87  sentence_sep = 0xF0,
89  sentence_any = 0xFF,
91  sentence_mask = 0xFF;
92 
94 
101  static const rule_type
104 
106 
111  {
112  switch(t) {
113  case character: return character_mask;
114  case word: return word_mask;
115  case sentence: return sentence_mask;
116  case line: return line_mask;
117  default: return 0;
118  }
119  }
120 
124 
125  } // boundary
126  } // locale
127 } // boost
128 
129 
130 #ifdef BOOST_MSVC
131 #pragma warning(pop)
132 #endif
133 
134 #endif
boundary_type
Definition: types.hpp:38
static const rule_type character_any
Not in use, just for consistency.
Definition: types.hpp:102
Analyse the text for positions suitable for line breaks.
Definition: types.hpp:42
static const rule_type sentence_sep
The sentence does not contain terminator like ".", "!" but ended with hard separator like CR,...
Definition: types.hpp:88
static const rule_type word_letter
Word that contains letters, excluding kana and ideographic characters.
Definition: types.hpp:59
static const rule_type word_any
Any word including numbers, 0 is special flag, equivalent to 15.
Definition: types.hpp:62
static const rule_type line_any
Soft or Hard line break.
Definition: types.hpp:75
uint32_t rule_type
Flags used with word boundary analysis – the type of the word, line or sentence boundary found.
Definition: types.hpp:50
static const rule_type line_hard
Hard line break: like break is required (as per CR/LF)
Definition: types.hpp:74
static const rule_type sentence_term
The sentence was terminated with a sentence terminator like ".", "!" possible followed by hard separa...
Definition: types.hpp:86
static const rule_type line_mask
Select all types of line breaks.
Definition: types.hpp:76
static const rule_type word_ideo
Word that contains ideographic characters.
Definition: types.hpp:61
static const rule_type word_letters
Any word, excluding numbers but including letters, kana and ideograms.
Definition: types.hpp:63
rule_type boundary_rule(boundary_type t)
Definition: types.hpp:110
static const rule_type sentence_mask
Select all sentence breaking points.
Definition: types.hpp:91
Analyse the text for character boundaries.
Definition: types.hpp:39
static const rule_type word_number
Word that appear to be a number.
Definition: types.hpp:58
static const rule_type line_soft
Soft line break: optional but not required.
Definition: types.hpp:73
static const rule_type word_kana
Word that contains kana characters.
Definition: types.hpp:60
Analyse the text for Find sentence boundaries.
Definition: types.hpp:41
static const rule_type word_none
Not a word, like white space or punctuation mark.
Definition: types.hpp:57
static const rule_type character_mask
Select all character breaking points.
Definition: types.hpp:103
Analyse the text for word boundaries.
Definition: types.hpp:40
static const rule_type word_mask
Full word mask - select all possible variants.
Definition: types.hpp:65
static const rule_type word_kana_ideo
Word that includes kana or ideographic characters.
Definition: types.hpp:64
static const rule_type sentence_any
Either first or second sentence break type;.
Definition: types.hpp:90