aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/CharClassify.h
diff options
context:
space:
mode:
authornyamatongwe <unknown>2006-02-25 02:43:03 +0000
committernyamatongwe <unknown>2006-02-25 02:43:03 +0000
commitf6994eeda16b695b2abcb9654e704749b28a85b1 (patch)
tree2bdb32179d450bb6b0356d501eccb7bb978c5098 /src/CharClassify.h
parent08a99417d3d6239c5b3ee701dae9d51dfa023097 (diff)
downloadscintilla-mirror-f6994eeda16b695b2abcb9654e704749b28a85b1.tar.gz
Patch from Greg Smith with further modifications moved character
classification from Document into a separate CharClassify class and file and uses this from RESearch for regular expression word end \< and \> instead of built-in table.
Diffstat (limited to 'src/CharClassify.h')
-rw-r--r--src/CharClassify.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/CharClassify.h b/src/CharClassify.h
new file mode 100644
index 000000000..881d3a114
--- /dev/null
+++ b/src/CharClassify.h
@@ -0,0 +1,25 @@
+// Scintilla source code edit control
+/** @file CharClassify.h
+ ** Character classifications used by Document and RESearch.
+ **/
+// Copyright 2006 by Neil Hodgson <neilh@scintilla.org>
+// The License.txt file describes the conditions under which this software may be distributed.
+
+#ifndef CHARCLASSIFY_H
+#define CHARCLASSIFY_H
+
+class CharClassify {
+public:
+ CharClassify();
+
+ enum cc { ccSpace, ccNewLine, ccWord, ccPunctuation };
+ void SetDefaultCharClasses(bool includeWordClass);
+ void SetCharClasses(const unsigned char *chars, cc newCharClass);
+ cc GetClass(unsigned char ch) const { return static_cast<cc>(charClass[ch]);}
+ bool IsWord(unsigned char ch) const { return static_cast<cc>(charClass[ch]) == ccWord;}
+
+private:
+ enum { maxChar=256 };
+ unsigned char charClass[maxChar]; // not type cc to save space
+};
+#endif