aboutsummaryrefslogtreecommitdiffhomepage
path: root/lexlib/StyleContext.h
diff options
context:
space:
mode:
authornyamatongwe <devnull@localhost>2010-07-13 21:31:10 +1000
committernyamatongwe <devnull@localhost>2010-07-13 21:31:10 +1000
commitc6f21af4f42c480d20729ce0d285cee6e94ffcbb (patch)
tree728b10068a0dda0a55e156bee2113d0752718c79 /lexlib/StyleContext.h
parent253d170b5b6d2625b6f7edb0aa1a57907909add2 (diff)
downloadscintilla-mirror-c6f21af4f42c480d20729ce0d285cee6e94ffcbb.tar.gz
Changed files for new lexer design.
Diffstat (limited to 'lexlib/StyleContext.h')
-rw-r--r--lexlib/StyleContext.h42
1 files changed, 16 insertions, 26 deletions
diff --git a/lexlib/StyleContext.h b/lexlib/StyleContext.h
index 4e175bc29..8b1345432 100644
--- a/lexlib/StyleContext.h
+++ b/lexlib/StyleContext.h
@@ -5,16 +5,26 @@
// Copyright 1998-2004 by Neil Hodgson <neilh@scintilla.org>
// This file is in the public domain.
+#ifndef STYLECONTEXT_H
+#define STYLECONTEXT_H
+
#ifdef SCI_NAMESPACE
namespace Scintilla {
#endif
+static inline int MakeLowerCase(int ch) {
+ if (ch < 'A' || ch > 'Z')
+ return ch;
+ else
+ return ch - 'A' + 'a';
+}
+
// All languages handled so far can treat all characters >= 0x80 as one class
// which just continues the current token or starts an identifier if in default.
// DBCS treated specially as the second character can be < 0x80 and hence
// syntactically significant. UTF-8 avoids this as all trail bytes are >= 0x80
class StyleContext {
- Accessor &styler;
+ LexAccessor &styler;
unsigned int endPos;
StyleContext &operator=(const StyleContext &);
void GetNextChar(unsigned int pos) {
@@ -41,7 +51,7 @@ public:
int chNext;
StyleContext(unsigned int startPos, unsigned int length,
- int initStyle, Accessor &styler_, char chMask=31) :
+ int initStyle, LexAccessor &styler_, char chMask=31) :
styler(styler_),
endPos(startPos + length),
currentPos(startPos),
@@ -131,15 +141,15 @@ public:
return true;
}
bool MatchIgnoreCase(const char *s) {
- if (tolower(ch) != static_cast<unsigned char>(*s))
+ if (MakeLowerCase(ch) != static_cast<unsigned char>(*s))
return false;
s++;
- if (tolower(chNext) != static_cast<unsigned char>(*s))
+ if (MakeLowerCase(chNext) != static_cast<unsigned char>(*s))
return false;
s++;
for (int n=2; *s; n++) {
if (static_cast<unsigned char>(*s) !=
- tolower(static_cast<unsigned char>(styler.SafeGetCharAt(currentPos+n))))
+ MakeLowerCase(static_cast<unsigned char>(styler.SafeGetCharAt(currentPos+n))))
return false;
s++;
}
@@ -154,24 +164,4 @@ public:
}
#endif
-inline bool IsASpace(unsigned int ch) {
- return (ch == ' ') || ((ch >= 0x09) && (ch <= 0x0d));
-}
-
-inline bool IsASpaceOrTab(unsigned int ch) {
- return (ch == ' ') || (ch == '\t');
-}
-
-inline bool IsADigit(unsigned int ch) {
- return (ch >= '0') && (ch <= '9');
-}
-
-inline bool IsADigit(unsigned int ch, unsigned int base) {
- if (base <= 10) {
- return (ch >= '0') && (ch < '0' + base);
- } else {
- return ((ch >= '0') && (ch <= '9')) ||
- ((ch >= 'A') && (ch < 'A' + base - 10)) ||
- ((ch >= 'a') && (ch < 'a' + base - 10));
- }
-}
+#endif