aboutsummaryrefslogtreecommitdiffhomepage
path: root/lexlib/WordList.h
diff options
context:
space:
mode:
authornyamatongwe <unknown>2010-07-13 21:24:26 +1000
committernyamatongwe <unknown>2010-07-13 21:24:26 +1000
commitc0247be1cde4c927b987edff2243524cea28d547 (patch)
tree482fac70e504ac105d36898d359c5992cea8e4c8 /lexlib/WordList.h
parent27a22f2c85e3aa0f540c61a0a245a0d759e706a9 (diff)
downloadscintilla-mirror-c0247be1cde4c927b987edff2243524cea28d547.tar.gz
New files for new lexer implementation.
Diffstat (limited to 'lexlib/WordList.h')
-rw-r--r--lexlib/WordList.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/lexlib/WordList.h b/lexlib/WordList.h
new file mode 100644
index 000000000..ea5be1d55
--- /dev/null
+++ b/lexlib/WordList.h
@@ -0,0 +1,41 @@
+// Scintilla source code edit control
+/** @file WordList.h
+ ** Hold a list of words.
+ **/
+// Copyright 1998-2010 by Neil Hodgson <neilh@scintilla.org>
+// The License.txt file describes the conditions under which this software may be distributed.
+
+#ifndef WORDLIST_H
+#define WORDLIST_H
+
+#ifdef SCI_NAMESPACE
+namespace Scintilla {
+#endif
+
+/**
+ */
+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; }
+ bool operator!=(const WordList &other) const;
+ void Clear();
+ void Set(const char *s);
+ bool InList(const char *s) const;
+ bool InListAbbreviated(const char *s, const char marker) const;
+};
+
+#ifdef SCI_NAMESPACE
+}
+#endif
+
+#endif