aboutsummaryrefslogtreecommitdiffhomepage
path: root/lexlib
diff options
context:
space:
mode:
Diffstat (limited to 'lexlib')
-rw-r--r--lexlib/WordList.cxx21
-rw-r--r--lexlib/WordList.h12
2 files changed, 27 insertions, 6 deletions
diff --git a/lexlib/WordList.cxx b/lexlib/WordList.cxx
index 07ca015e3..049bf6ec0 100644
--- a/lexlib/WordList.cxx
+++ b/lexlib/WordList.cxx
@@ -64,6 +64,18 @@ static char **ArrayFromWordList(char *wordlist, int *len, bool onlyLineEnds = fa
return keywords;
}
+WordList::WordList(bool onlyLineEnds_) :
+ words(0), list(0), len(0), onlyLineEnds(onlyLineEnds_) {
+}
+
+WordList::~WordList() {
+ Clear();
+}
+
+WordList::operator bool() const {
+ return len ? true : false;
+}
+
bool WordList::operator!=(const WordList &other) const {
if (len != other.len)
return true;
@@ -74,6 +86,10 @@ bool WordList::operator!=(const WordList &other) const {
return false;
}
+int WordList::Length() const {
+ return len;
+}
+
void WordList::Clear() {
if (words) {
delete []list;
@@ -213,3 +229,8 @@ bool WordList::InListAbbreviated(const char *s, const char marker) const {
}
return false;
}
+
+const char *WordList::WordAt(int n) const {
+ return words[n];
+}
+
diff --git a/lexlib/WordList.h b/lexlib/WordList.h
index ea5be1d55..9c8285ece 100644
--- a/lexlib/WordList.h
+++ b/lexlib/WordList.h
@@ -15,23 +15,23 @@ namespace Scintilla {
/**
*/
class WordList {
-public:
// Each word contains at least one character - a empty word acts as sentinel at the end.
char **words;
char *list;
int len;
bool onlyLineEnds; ///< Delimited by any white space or only line ends
int starts[256];
- WordList(bool onlyLineEnds_ = false) :
- words(0), list(0), len(0), onlyLineEnds(onlyLineEnds_)
- {}
- ~WordList() { Clear(); }
- operator bool() const { return len ? true : false; }
+public:
+ WordList(bool onlyLineEnds_ = false);
+ ~WordList();
+ operator bool() const;
bool operator!=(const WordList &other) const;
+ int Length() const;
void Clear();
void Set(const char *s);
bool InList(const char *s) const;
bool InListAbbreviated(const char *s, const char marker) const;
+ const char *WordAt(int n) const;
};
#ifdef SCI_NAMESPACE