Rune Caster
1.0.0
Modern C++ Text Processing Framework
Loading...
Searching...
No Matches
whitespace_tokenizer.cpp
Go to the documentation of this file.
1
#include "
rune_caster/spell_token.hpp
"
2
3
namespace
rune_caster
{
4
namespace
spell
{
5
namespace
core
{
6
7
WhitespaceTokenizer::output_type
WhitespaceTokenizer::operator()
(
const
input_type
& input)
const
{
8
output_type
tokens;
9
if
(input.
empty
())
return
tokens;
10
11
RuneSequence
current;
12
for
(
const
auto
& rune : input) {
13
if
(
unicode::is_whitespace
(rune.codepoint())) {
14
if
(!current.
empty
()) {
15
tokens.push_back(current);
16
current.
clear
();
17
}
18
}
else
{
19
current.
push_back
(rune);
20
}
21
}
22
if
(!current.
empty
()) tokens.push_back(current);
23
return
tokens;
24
}
25
26
}
// namespace core
27
}
// namespace spell
28
}
// namespace rune_caster
rune_caster::RuneString::empty
bool empty() const noexcept
Definition
rune_sequence.hpp:132
rune_caster::RuneString::push_back
void push_back(const Rune &rune)
Definition
rune_sequence.hpp:216
rune_caster::RuneString::clear
void clear() noexcept
Definition
rune_sequence.hpp:193
rune_caster::spell::core::WhitespaceTokenizer::input_type
RuneSequence input_type
Definition
spell_token.hpp:17
rune_caster::spell::core::WhitespaceTokenizer::operator()
output_type operator()(const input_type &input) const override
Apply the spell transformation.
Definition
whitespace_tokenizer.cpp:7
rune_caster::spell::core::WhitespaceTokenizer::output_type
std::vector< RuneSequence > output_type
Definition
spell_token.hpp:18
rune_caster::spell::core
Definition
spell_core.hpp:9
rune_caster::spell
Definition
spell.hpp:40
rune_caster::unicode::is_whitespace
constexpr bool is_whitespace(char32_t cp) noexcept
Definition
unicode.hpp:72
rune_caster
Definition
caster.hpp:9
rune_caster::RuneSequence
RuneString RuneSequence
Backward compatibility alias for RuneString.
Definition
rune_sequence.hpp:429
spell_token.hpp
src
spell
core
whitespace_tokenizer.cpp
Generated by
1.14.0