1*8af74909SZhong Yang // Scintilla source code edit control 2*8af74909SZhong Yang /** @file WordList.h 3*8af74909SZhong Yang ** Hold a list of words. 4*8af74909SZhong Yang **/ 5*8af74909SZhong Yang // Copyright 1998-2010 by Neil Hodgson <[email protected]> 6*8af74909SZhong Yang // The License.txt file describes the conditions under which this software may be distributed. 7*8af74909SZhong Yang 8*8af74909SZhong Yang #ifndef WORDLIST_H 9*8af74909SZhong Yang #define WORDLIST_H 10*8af74909SZhong Yang 11*8af74909SZhong Yang namespace Scintilla { 12*8af74909SZhong Yang 13*8af74909SZhong Yang /** 14*8af74909SZhong Yang */ 15*8af74909SZhong Yang class WordList { 16*8af74909SZhong Yang // Each word contains at least one character - a empty word acts as sentinel at the end. 17*8af74909SZhong Yang char **words; 18*8af74909SZhong Yang char *list; 19*8af74909SZhong Yang int len; 20*8af74909SZhong Yang bool onlyLineEnds; ///< Delimited by any white space or only line ends 21*8af74909SZhong Yang int starts[256]; 22*8af74909SZhong Yang public: 23*8af74909SZhong Yang explicit WordList(bool onlyLineEnds_ = false); 24*8af74909SZhong Yang ~WordList(); 25*8af74909SZhong Yang operator bool() const noexcept; 26*8af74909SZhong Yang bool operator!=(const WordList &other) const noexcept; 27*8af74909SZhong Yang int Length() const noexcept; 28*8af74909SZhong Yang void Clear() noexcept; 29*8af74909SZhong Yang bool Set(const char *s); 30*8af74909SZhong Yang bool InList(const char *s) const noexcept; 31*8af74909SZhong Yang bool InListAbbreviated(const char *s, const char marker) const noexcept; 32*8af74909SZhong Yang bool InListAbridged(const char *s, const char marker) const noexcept; 33*8af74909SZhong Yang const char *WordAt(int n) const noexcept; 34*8af74909SZhong Yang }; 35*8af74909SZhong Yang 36*8af74909SZhong Yang } 37*8af74909SZhong Yang 38*8af74909SZhong Yang #endif 39