Merge pull request #3948 from techee/warning_fix2
[geany-mirror.git] / scintilla / src / CharClassify.h
blob9fc1be2980e63d754900587836f91488b76515f2
1 // Scintilla source code edit control
2 /** @file CharClassify.h
3 ** Character classifications used by Document and RESearch.
4 **/
5 // Copyright 2006-2009 by Neil Hodgson <neilh@scintilla.org>
6 // The License.txt file describes the conditions under which this software may be distributed.
8 #ifndef CHARCLASSIFY_H
9 #define CHARCLASSIFY_H
11 namespace Scintilla::Internal {
13 enum class CharacterClass : unsigned char { space, newLine, word, punctuation };
15 class CharClassify {
16 public:
17 CharClassify();
19 void SetDefaultCharClasses(bool includeWordClass);
20 void SetCharClasses(const unsigned char *chars, CharacterClass newCharClass);
21 int GetCharsOfClass(CharacterClass characterClass, unsigned char *buffer) const noexcept;
22 CharacterClass GetClass(unsigned char ch) const noexcept { return charClass[ch];}
23 bool IsWord(unsigned char ch) const noexcept { return charClass[ch] == CharacterClass::word;}
25 private:
26 static constexpr int maxChar=256;
27 CharacterClass charClass[maxChar];
32 #endif