]>
Commit | Line | Data |
---|---|---|
1dcf666d RD |
1 | // Scintilla source code edit control |
2 | /** @file LexerBase.h | |
3 | ** A simple lexer with no state. | |
4 | **/ | |
5 | // Copyright 1998-2010 by Neil Hodgson <neilh@scintilla.org> | |
6 | // The License.txt file describes the conditions under which this software may be distributed. | |
7 | ||
8 | #ifndef LEXERBASE_H | |
9 | #define LEXERBASE_H | |
10 | ||
11 | #ifdef SCI_NAMESPACE | |
12 | namespace Scintilla { | |
13 | #endif | |
14 | ||
15 | // A simple lexer with no state | |
16 | class LexerBase : public ILexer { | |
17 | protected: | |
18 | PropSetSimple props; | |
19 | enum {numWordLists=KEYWORDSET_MAX+1}; | |
20 | WordList *keyWordLists[numWordLists+1]; | |
21 | public: | |
22 | LexerBase(); | |
23 | virtual ~LexerBase(); | |
24 | void SCI_METHOD Release(); | |
25 | int SCI_METHOD Version() const; | |
26 | const char * SCI_METHOD PropertyNames(); | |
27 | int SCI_METHOD PropertyType(const char *name); | |
28 | const char * SCI_METHOD DescribeProperty(const char *name); | |
29 | int SCI_METHOD PropertySet(const char *key, const char *val); | |
30 | const char * SCI_METHOD DescribeWordListSets(); | |
31 | int SCI_METHOD WordListSet(int n, const char *wl); | |
32 | void SCI_METHOD Lex(unsigned int startPos, int lengthDoc, int initStyle, IDocument *pAccess) = 0; | |
33 | void SCI_METHOD Fold(unsigned int startPos, int lengthDoc, int initStyle, IDocument *pAccess) = 0; | |
34 | void * SCI_METHOD PrivateCall(int operation, void *pointer); | |
35 | }; | |
36 | ||
37 | #ifdef SCI_NAMESPACE | |
38 | } | |
39 | #endif | |
40 | ||
41 | #endif |