diff options
author | nyamatongwe <unknown> | 2007-06-02 05:54:42 +0000 |
---|---|---|
committer | nyamatongwe <unknown> | 2007-06-02 05:54:42 +0000 |
commit | a15c959f9db8fd6be09d492f48c40fc0f37480c2 (patch) | |
tree | 2898280ae6e6f94ab835f4bc30906470a38ee520 /src/LexCPP.cxx | |
parent | d3894b8d3d1f1421acecd89fde81e21627552075 (diff) | |
download | scintilla-mirror-a15c959f9db8fd6be09d492f48c40fc0f37480c2.tar.gz |
Moving CharacterSet class into own header so can be used by more
lexers.
Updated LexCPP to match changes.
Added use of CharacterSet to LexHTML.
Diffstat (limited to 'src/LexCPP.cxx')
-rw-r--r-- | src/LexCPP.cxx | 48 |
1 files changed, 5 insertions, 43 deletions
diff --git a/src/LexCPP.cxx b/src/LexCPP.cxx index bc3177cb3..8c00acb7b 100644 --- a/src/LexCPP.cxx +++ b/src/LexCPP.cxx @@ -19,50 +19,12 @@ #include "KeyWords.h" #include "Scintilla.h" #include "SciLexer.h" +#include "CharacterSet.h" #ifdef SCI_NAMESPACE using namespace Scintilla; #endif -#define SET_LOWER "abcdefghijklmnopqrstuvwxyz" -#define SET_UPPER "ABCDEFGHIJKLMNOPQRSTUVWXYZ" -#define SET_DIGITS "0123456789" - -class SetOfCharacters { - int size; - bool valueAfter; - bool *bset; -public: - SetOfCharacters(const char *setOfCharacters, int size_=0x80, bool valueAfter_=false) { - size = size_; - valueAfter = valueAfter_; - bset = new bool[size]; - for (int i=0; i < size; i++) { - bset[i] = false; - } - for (const char *cp=setOfCharacters; *cp; cp++) { - int val = static_cast<unsigned char>(*cp); - PLATFORM_ASSERT(val >= 0); - PLATFORM_ASSERT(val < size); - bset[val] = true; - } - } - ~SetOfCharacters() { - delete []bset; - bset = 0; - size = 0; - } - void Add(int val) { - PLATFORM_ASSERT(val >= 0); - PLATFORM_ASSERT(val < size); - bset[val] = true; - } - bool Contains(int val) { - PLATFORM_ASSERT(val >= 0); - return (val < size) ? bset[val] : valueAfter; - } -}; - static bool IsSpaceEquiv(int state) { return (state <= SCE_C_COMMENTDOC) || // including SCE_C_DEFAULT, SCE_C_COMMENT, SCE_C_COMMENTLINE @@ -80,12 +42,12 @@ static void ColouriseCppDoc(unsigned int startPos, int length, int initStyle, Wo bool stylingWithinPreprocessor = styler.GetPropertyInt("styling.within.preprocessor") != 0; - SetOfCharacters setOKBeforeRE("(=,"); + CharacterSet setOKBeforeRE(CharacterSet::setNone, "(=,"); - SetOfCharacters setDoxygen("$@\\&<>#{}[]" SET_LOWER); + CharacterSet setDoxygen(CharacterSet::setLower, "$@\\&<>#{}[]"); - SetOfCharacters setWordStart("_" SET_LOWER SET_UPPER, 0x80, true); - SetOfCharacters setWord("._" SET_LOWER SET_UPPER SET_DIGITS, 0x80, true); + CharacterSet setWordStart(CharacterSet::setAlpha, "_", 0x80, true); + CharacterSet setWord(CharacterSet::setAlphaNum, "._", 0x80, true); if (styler.GetPropertyInt("lexer.cpp.allow.dollars", 1) != 0) { setWordStart.Add('$'); setWord.Add('$'); |