aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/CharClassify.h
diff options
context:
space:
mode:
authornyamatongwe <devnull@localhost>2006-02-25 02:43:03 +0000
committernyamatongwe <devnull@localhost>2006-02-25 02:43:03 +0000
commit818cf866da84841e0f46c8f7b717b18926032f25 (patch)
tree2bdb32179d450bb6b0356d501eccb7bb978c5098 /src/CharClassify.h
parent89cb4070bf10f7143df9a40aed89693b029f7e2e (diff)
downloadscintilla-mirror-818cf866da84841e0f46c8f7b717b18926032f25.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