diff options
author | nyamatongwe <unknown> | 2010-07-13 21:24:26 +1000 |
---|---|---|
committer | nyamatongwe <unknown> | 2010-07-13 21:24:26 +1000 |
commit | c0247be1cde4c927b987edff2243524cea28d547 (patch) | |
tree | 482fac70e504ac105d36898d359c5992cea8e4c8 /lexlib/WordList.h | |
parent | 27a22f2c85e3aa0f540c61a0a245a0d759e706a9 (diff) | |
download | scintilla-mirror-c0247be1cde4c927b987edff2243524cea28d547.tar.gz |
New files for new lexer implementation.
Diffstat (limited to 'lexlib/WordList.h')
-rw-r--r-- | lexlib/WordList.h | 41 |
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 |