From c0247be1cde4c927b987edff2243524cea28d547 Mon Sep 17 00:00:00 2001 From: nyamatongwe Date: Tue, 13 Jul 2010 21:24:26 +1000 Subject: New files for new lexer implementation. --- lexlib/WordList.h | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 lexlib/WordList.h (limited to 'lexlib/WordList.h') 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 +// 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 -- cgit v1.2.3